Using Questions That Guide Mathematical Thinking to Think Computationally
In this episode I discuss some example questions we can ask to encourage kids to think deeper about computer science and computational thinking by unpacking two papers on using guiding questions in mathematics education. The first paper paper by Way (2014) is titled “Using questioning to stimulate mathematical thinking” and the second paper by Pennant (2018) is titled “Developing a classroom culture that supports a problem-solving approach to mathematics.”
-
Welcome back to another episode of the CSK8 podcast.
My name is Jared O'Leary.
Each episode of this podcast alternates between an interview with a guest
or multiple guests and a solo episode where I unpack some scholarship.
In the interview that released right before this with Phil Bag.
Bill mentioned wanting to learn more about questions and questioning techniques,
so I include some resources in the show notes.
One of the resources that I included was an article that we discussed at Boot Up,
which was on using a process called Cognitive Guided Inquiry
to stimulate mathematical thinking,
not the way that we talked about it internally, about
how can we take these kinds of questions and apply them to think computationally.
So what I'm going to do today, instead of unpacking an article
is I'm going to actually unpack two different articles
that are related to cognitive guided inquiry and talk about
how you could use these kinds of questions to think computationally.
Now, as always in the show notes,
you can find direct links to the articles that I am mentioning,
and these articles are free.
So if you click on the title in the show
notes, it will take you directly to the article so you can check these out.
Also in the show notes are links to the other podcast
episodes that I've done that are related to questioning techniques,
and those also include more resources and questions that can assist
with thinking computationally.
So make sure you check those out by going to the link
that's in the description for the app.
You're listening to this on or by simply going to Gerard O'Leary dot com.
Now on the website
make sure to check out the other links on there
because there are hundreds of resources for computer science educators
as well as percussionists.
If you happen to play the drums, including a link to the free curriculum
that I create for scratch and scratch Junior at boot up,
if you haven't checked that out yet, I highly recommend doing so.
All right.
So the first article that I want to talk about is by Jenny Wei,
and it is titled Using Questioning to Stimulate Mathematical Thinking.
So the author poses four different types of questions
that can assist with mathematical thinking.
So the first one being starter questions,
an excellent being questions to stimulate mathematical thinking.
The next one is assessment questions and then final discussion questions.
So what I've done is I've gone in and read through the questions in there
and reframe them in a way
that would make sense for computer science or computational thinking.
But I didn't reframe all of them.
So make sure you actually check out the article,
which is again linked to in the show notes.
All right. So the first set of questions, starter questions.
So here are some examples of some questions
that you might be able to use in a coding or computer science class.
One question might be how many ways can we solve this bug or problem?
Now the question could be what happens if we reverse the order of this algorithm?
And another question might be What kind of project
can we create with conditionals?
Now, similar to the Question podcast that I've done in the past,
unlike, like open, guided and closed questions,
these are more guided or open questions to kind of stimulate dialog
and to think through different possibilities.
In other words, to think through what could be or what might happen or what if.
So the next set of questions, questions to stimulate computational thinking.
Here are some examples when looking at two different projects or chunks of code.
What's the same?
What's different? What patterns do you notice?
If you were to break this down into different pieces,
how would you group or label each part of the code?
What do you think comes next in the code and why?
What do you think comes before this code and why?
Not only is it beneficial to think about what would come
next and like how to expand upon things, build off of things,
but is also to think through, Oh, what would need to happen before
this algorithm or function in order to make it actually work?
So these questions really dive deeper into analyzing what's going on
and better understanding what is there and what could be or what came before it.
Now, the next set of questions is the assessment questions.
So some examples.
These are directly from the article.
Ah, what have you discovered?
How did you find that out?
Why do you think that and what made you decide to do it that way?
Two These are excellent assessment questions.
Now, if you go to the show notes, you'll find the other podcasts
that I've done where I've talked about other different types of assessment
questions that I encourage in the lessons that I create for good up to every single
one of the lesson plans I put up, which is like 100 of them, includes
formative assessments, summative assessments and IPSA assessments.
So if you're not familiar with each of those three or like some examples of them,
make sure you check out the show notes or check out the lesson plans at boot up,
or as they all include examples of each of those three.
And they all link to a document that specifically unpacks assessment,
questions and more. All right.
So in this article, the next step is the final discussion questions.
So these kind of questions might be posed as like a form of reflection
at the close or near the close of a project or class.
And they include questions like who solved the bug or problem in a similar way,
who has a different solution or algorithm?
Do we all have the same code?
Why or why not?
Are there other ways to solve this bug or problem?
How do you know there are or are not?
How is or isn't your solution The best solution?
What is it the best at?
And what do other algorithms do better than the one that you chose?
So these are all excellent ways of reflecting
on thinking through and evaluating code, but it could certainly apply to computer
science and other topics relevant, not just to programing.
Right.
So the next section of this article talks about levels of mathematical thinking.
So I'm going to translate it into levels of computational thinking.
And so these seven levels are memory, translation,
interpretation, application, analysis, synthesis and evaluation.
So while the author poses four different categories of questions,
these are different types of questions
that can be used similar to the previous podcast that I did
that was talking about like judicial questions.
So this is very similar in terms of the thinking that's involved with this,
but instead of being for music
and translating in computer science, this is for mathematics
and we're translating it to computer science. Right?
So the first level is memory, which is what the student
recalls or has memorized for information.
So a question that you might ask is like, what projects or code have you previously
worked on that might assist with this bug problem or project?
Asking a question like that helps them recall prior things that they worked on
and might assist with what they're about to work on next.
So the next one Translation.
So this is when you translate the information into a different form
or a different language.
So for example, translating the code into something
that somebody won't understand who hasn't learned how to code yet.
So some questions you might ask would be something like
without showing your code to someone, how would you explain how this works?
Or you could ask, How would you explain it
if the other person didn't know how to code
but wanted to understand how your code worked to
the next level is interpretation.
So this is where students will basically understand the different relationships
that exist between their code and other code.
So for example, you might ask questions
like when looking at another person's algorithm and you explain
what's similar and different between your algorithm and theirs.
What patterns do you notice?
How could you group your code or functions differently?
So questions like that get them to compare not only code with other people's code,
but also their own code, and thinking through different ways of grouping things
like different functions or different chunks of code or whatever.
All right. So the next level is application.
So this is basically being able to identify
a problem and finding a way to solve that problem.
So applying the understanding to solve something or create something.
So, for example, you could ask questions like how does your code solve
the bug or problem?
You could also ask what code should come next and why.
So that not only gets them to think about application in the current context,
but also future contexts for So what's next?
So the next level of computational thinking is analysis.
So this is basically when you are thinking through and trying to understand
how you learned how to solve that problem and what you learn from it.
So some example questions might be
what did you discover or learn in this algorithm?
Or how did you figure that out?
Or why do you think that?
Or what made you decide to order your algorithm that way?
And another way?
These all get kids to analyze what they're doing
and what they're creating through code.
The next level is synthesis.
This is basically when you combine your understandings in creative
or original ways, you synthesize to solve a problem or create something.
And so questions might be who has a different solution
to the bug or problem?
And are their answers the same as yours?
Why or why not?
Or asking questions like How did your understandings
from prior projects or bugs inform your code for this project problem or bug?
So getting kids to think through how their prior understandings
kind of work together or synthesize to solve this current
their problem, or to create something new and interesting.
And then the last level is the evaluation.
So this is where you are making
some judgments on what is good or best or right or wrong
according to whatever kind of measure or standard you're going with.
So some example questions you might ask is how we found all the possible solutions
to the bug or problem. How do we know if we have?
Are there other ways to solve the bug or problem?
What is this solution the best at and what is it not the best app?
For example, this algorithm might be really good at sorting something
and coming to a I don't know, large to small sorting,
but it takes a very long time, so it's really bad at that,
but the result is great.
So thinking through and evaluating, well, what is this good at, what is this
not good at?
And really helps kids to kind of understand their code
or what they are creating.
All right.
So that's a lot of example questions.
And in the Senate, I include your questions on there just to kind of help
translate the mathematical thinking into the computational thinking
to make sure you check out the show notes to see the questions written there.
You don't have to listen to this over and over.
You can just literally copy and paste these and use them as a cheat sheet.
Now, the other article by Jenny Pennant, it's titled Developing a Classroom Culture
that Supports a Problem Solving Approach to Mathematics.
So rather than just providing a bunch of different questions
to think through and types of questions, it's actually thinking
about the overall process that you use with questioning techniques in your class.
The for example, it begins with the discussion on
who does all the talking in whole class parts of the lesson.
So a great thing to do would be to like record yourself,
maybe just the audio, maybe the video as well,
and to analyze how your own teaching is so thinking through
how much time am I spending talking and how much time are kids able to speak?
What about a specific individual?
So if you were to to watch a single student
through the entire recording and try and analyze the amount of time
that they spent speaking compared to their peers and compared to you,
it'd be really good way
to potentially realize, oh, wow, I'm talking a whole lot more than I thought.
Or, Oh wow, these kids are not very engaged as much as I think they were.
And when you are analyzing your own speech,
trying to analyze how many times you're actually responding
with a direct answer or when you're responding with a question.
As I mentioned before, I tended to respond to questions with questions
because I didn't want to give an answer.
I wanted kids to think through and kind of uncover or discover
the answer through some guided questioning techniques that I talk about.
Another episode and some of the questions that I even mentioned earlier
in this podcast.
Now, when you are asking questions, the next aspect that the author recommends
is to think through what kind of questions do you ask? So
that previous questions that I mentioned would be really helpful for this.
So for example, thinking through the different stages,
this author also mentions those stages as well,
and then also thinking through the different levels of thinking,
which the author also mentions as well in this particular article.
So make sure you check out this
second article so you can see even more examples of different questions
or the different levels and the different types of questions
that I already mentioned.
All right.
So the next
aspect that the author recommends looking at as who answers the questions.
So thinking through the full range of is it one kid who's answering?
Is it everybody's answering?
How many voices are able to speak at the same time, etc..
If it's a full group discussion
and only one person gets to talk at a time and maybe you have 30 kids in the class.
Odds are you're not going to go to have it so that everybody's able to share
their understanding and answer or ask questions.
But if you are doing like think pair share, maybe
there are more opportunities for kids to answer the questions to a neighbor.
And the author provides
some examples of how you can encourage this or things to try.
When it comes to
who is answering the questions, make sure to check out the actual article.
All right.
So the fourth aspect to consider is how well do I listen to
the students answers and seek to understand what they are saying?
So the author recommends approaching this from a curiosity
and to even ask clarifying questions like So it sounds like you're saying
blah, blah, blah, or even asking kids to talk to a partner
and have that partner relay back what they think they heard.
Now, sometimes when a kid provides an answer,
they might have some gaps in their understanding, and it's not safe
to assume necessarily what that gap is and whether they understand
that missing information,
to ask some clarifying questions, to really understand,
oh, do they understand that piece of information that they left out?
Do they leave it out because they know it
really well and don't need to think about it?
Or do they leave it out
because they're actually not thinking about it and don't understand it fully,
but they just happen to get a correct answer
and don't even assume about an incorrect answer.
So the author provides a really good example of how a student
solved a question in correctly a mathematical equation.
And when asking follow up questions, they realize that the student solved
an answer correctly.
It was just the wrong question or problem that they were solving.
So I highly recommend actually reading out the little transcript
that they provide in there,
because sometimes a student might listen to your question and go, Oh,
I think what they're asking is this, and they'll provide an answer to that.
And the answer might be correct,
but you're really asking for something else
that comes across as if they don't understand what you're asking.
So aspect five is what do I do with the students answers?
So rather than immediately responding to a an answer and saying,
Yeah, that was great or no, that was incorrect,
you can ask questions of
the other students or just simply be quiet and see how other people respond to it.
If you are going to respond, you can thank for the contribution to it,
but then follow up with more questions.
Are you sure or can you convince me or tell me how you know that, etc.
to really get kids to think through their answers and not just guess randomly?
All right.
So aspect six is how do I facilitate the learning?
Now, the author provides a couple of links to some other suggestions
on how to facilitate,
including like peer teaching or peer feedback from another colleague
deciding on areas that you want to improve with your own teaching or facilitating
and doing so in relation to the actual structure of the lesson
or the overall goal or point.
So in this section, the author provides some more suggestions for the prep work
during the work and the reflection time at the end or diving deeper.
So I highly recommend taking a look at the tips in there.
All right.
So Aspect seven is how confident
are the students to take a risk, try out ideas and make mistakes.
So the author provides some suggestions for how to actually dive deeper into this
and feel safe by exploring alternatives or different ideas
that they might not have thought of if they weren't encouraged to do so.
So instead of trying to find the right answer and avoiding the wrong answers,
think through what are some other ways or other possibilities?
Even if I end up failing, my project ends up not working.
What can I learn through this process and go, Oh,
that's not how I want to animate a Sprite in scratch or something like that.
Instead, I want to do it this other way.
Sometimes it's good to learn what not to do
as it will inform what you do in future projects.
So encouraging that problem
solving and debugging and iteration and failure, etc.
and learning from all those experiences.
Then the last aspect
that the author mentions is What does my body language communicate?
This is something that I realized when I started working with kids
and videotaping my own teaching is I just naturally look really angry.
I don't know if it's all the years on Drumline
or the fact that I tend to think really hard very often.
But my thinking face, my resting face looks upset.
So I realized that I had to engage in ways with kids that made it very clear,
No, I'm not mad. I'm just thinking.
And so I would be extra goofy.
Now, with the adults that I meet, I seriously like in the Zoom conferences
that I need to run, I first meet somebody and I know
it's going to be like a conversation where I'll be thinking like,
I'll have to give a disclaimer like, Hey, just FYI, I might look upset.
I promise. I'm just thinking.
Being aware of that can make a huge difference.
And sometimes when I forget to mention that
I've had kids come up to me and be like, Are you okay?
Are you upset?
And then I usually have just laughed it off and go, No, I promise.
I'm just thinking I'm great.
So if you haven't videotaped yourself, turn off the sound
and maybe even watch it in fast forward
as it really kind of exaggerates the emotions.
And just watch yourself how are you communicating non-verbally?
It's something that I learned a lot from and I highly recommend.
And the author also highly recommends as well.
So that's a very quick overview of the two different articles
that are related to cognitive guided inquiry.
And I applied it to computational thinking or computer science.
Again, I highly recommend checking on both these articles.
All right.
So at the end of each of these
unpacking scholarship episodes, I'd love to share
some of my lingering questions or thoughts.
I have two questions for this particular one.
So one of them is what levels or types of computational thinking questions
are different than the mathematical thinking discussed in this article.
So what was missing?
While it's clear to me that the different levels of thinking
are very applicable to computational thinking,
but I'm wondering what is unique to computational
thinking that might not have been evident in the levels of mathematical thinking,
and I genuinely don't know.
So if you do, feel free to reach out.
Another question that I have is
what other question types, levels or techniques from other disciplines
might inform the kinds of questions we ask in a computer science class.
So the previous unpacking scholarship episode that I did titled Talking
about Computer Science Better Questions, Better Discussions.
That one was based off of a music education article.
The articles that I just kind of briefly talked about today were from mathematics.
So what other disciplines might inform
computer science or computational thinking questions that we could ask?
For example, what could we learn from language arts?
What can we learn from social studies?
Like we learn from the fine arts, etc.?
And if you have some suggestions on some articles that I could read,
feel free to press the Contact Me button on my website.
Let me know. I'll happy unpack it here.
All right.
So that's a very quick overview of two articles
and some of my lingering questions and thoughts.
Again, you can find the show notes by going to Geritol or Ecom
clicking on the podcast tab
or simply going to the link in the app that you're listening to this on,
where you'll find links to the other podcasts that I mentioned
on questioning techniques.
And you will find all the questions that I write off
listed at the bottom in the show notes.
If you found this episode useful, I just ask that you share it with others.
Engage in discussion, maybe use the CSK hashtag on Twitter
and share some other questions that you really like to ask
that have led to some great conversations in the classes that you work with.
I hope you found this episode useful
and I hope you're having a safe and wonderful week.
Thank you so much for listening.
Articles
Pennant, J. (2018). Developing a Classroom Culture That Supports a Problem-solving Approach to Mathematics. NRICH.
Way, J. (2014). Using Questioning to Stimulate Mathematical Thinking. NRICH.
Some Of My Lingering Questions/Thoughts
What levels or types of computational thinking questions are different from the mathematical thinking discussed in this article?
What other question types, levels or techniques from other disciplines might inform the kinds of questions we ask in a computer science class?
Resources/Links Relevant to This Episode
Other podcast episodes that were mentioned or are relevant to this episode
Assessment Considerations: A Simple Heuristic
In this episode I read and unpack my (2019) publication titled “Assessment Considerations: A Simple Heuristic,” which is intended to serve as a heuristic for creating or selecting an assessment.
How to Get Started with Computer Science Education
In this episode I provide a framework for how districts and educators can get started with computer science education for free.
In this episode I unpack Bowler and Champagne’s (2009) publication titled “Mindful makers: Question prompts to help guide young peoples' critical technical practices in maker spaces in libraries, museums, and community-based youth organizations,” which "examines question prompts as a means to scaffold reflection and reflexivity in the design, development, and use of technological artifacts in maker spaces for youth at public libraries, museums, and community-based organizations" (abstract).
Talking About [Computer Science]: Better Questions? Better Discussions!
In this episode I unpack Allsup and Baxter’s (2004) publication titled “Talking about music: Better questions? Better discussions!” which is a short article that discusses open, guided, and closed questions, as well as a framework for encouraging critical thinking through questions. Although this article is published in a music education journal, I discuss potential implications for computer science educators.
The Rise of CS Across the Pond with Phil Bagge
In this interview with Phil Bagge, we discuss the rise of CS in UK curricula, the evolution of Phil’s pedagogical approach, how time constraints impact pedagogical approaches, not letting the loudest voices drive instruction, how research informs Phil’s approach for working with teachers new to CS, how to emphasize student agency in teacher professional development, and much more.
Other podcasts I’ve done on asking questions
Example questions for different phases of learning:
Starter questions
How many ways can we solve this bug or problem?
What happens if we reversed the order of this algorithm?
What kind of project can we create with conditionals?
Questions to stimulate computational thinking
When looking at two different projects or chunks of code: What’s the same? What’s different?
What patterns do you notice?
If you were to break this down into different pieces, how would you group or label each part of the code?
What do you think comes next in the code? Why?
What do you think comes before this code? Why?
Assessment questions (all four questions are directly from this article)
What have you discovered?
How did you find that out?
Why do you think that?
What made you decide to do it that way?
Final discussion questions
Who solved the bug or problem in a similar way?
Who has a different solution or algorithm?
Do we all have the same code?
Why/why not?
Are there other ways to solve this bug or problem?
How do you know there are or aren’t?
How is or isn’t your solution the best solution?
What is it the best at?
What do other algorithms do better than the one you chose?
Example questions around levels of thinking:
Memory
What projects or code have you previously worked on that might assist with this bug, problem, or project?
Translation
Without showing your code to someone, how would you explain how this works?
How would you explain it if the other person didn’t know how to code but wanted to understand how your code worked?
Interpretation
When looking at another person’s algorithm, can you explain what’s similar and different between your algorithm and theirs?
What patterns do you notice?
How could you group your code or functions differently?
Application
How does your code solve the bug or problem?
What code should come next? Why?
Analysis
What did you discover or learn in this algorithm?
How did you figure that out?
Why do you think that?
What made you decide to order your algorithm that way and not another way?
Synthesis
Who has a different solution to the bug or problem?
Are their answers the same as yours? Why or why not?
How did your understandings from prior projects or bugs inform your code for this bug, problem, or project?
Evaluation
Have we found all of the possible solutions to the bug or problem?
How do we know if we have?
Are there other ways to solve the bug or problem?
Is this the best solution?
What is this solution the best at and what is it not the best at?
Find other CS educators and resources by using the #CSK8 hashtag on Twitter