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.


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

  • 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



More Content