• Fair Chance Learning

Computational Thinking in Math Class

This post is a summary of an article submitted to the Learning Partnership for use in their monthly newsletter Spark. To read the full article, please visit: https://bit.ly/2pERWIG

Computational Thinking (CT) and the use of computer programming (often referred to as “coding”) to support math instruction has gained momentum in recent years. CT has many definitions but most researchers agree that it “involves the use of computer science concepts such as abstraction, debugging, remixing and iteration to solve problems” (Brennan & Resnick; Ioannidou, Bennett, Repenning, Koh, & Basawapatna; Wing as cited in Lye & Koh, 2013).

There are many "potentials" for using computer programming as a context for the development of CT in the mathematics classroom, four of which I've listed below:

1. The potential to provide the teacher with an insight into student reasoning.

When I ask students to explain their code, I feel I am getting insight into their thinking – they explain their approach to me and I can then make sense of their reasoning. This helps me to identify and address misconceptions and misunderstandings.

2. The potential to improve student conceptual understanding of math ideas through the construction of tangible applications while engaging in higher order thinking.

I believe that CT is an active process. When students are coding to express their math ideas, I watch them making use of higher order thinking and problem-solving skills. With computer programming, educators are able to shift from procedural mathematics, towards conceptional mathematics.

3. The potential to ensure the student appreciates that errors can result in greater understanding.

In coding, programmers focus on the bug, rather than the error to troubleshoot, learn and develop a solution. I’ve watched a grade 5 student’s application output “AM” repeatedly even when the time entered was 1300 in a 24-to-12-hour clock conversion program. She worked together with classmates to debug the program, noticing that a “less than” instead of a “greater than” sign was the culprit. This is something we see often in math class when students are engaged in coding – students support one another as they debug their programs, learning from their own errors, and the errors of others, in the process.

4. The potential to support the teacher with creating differentiating learning opportunities for their students.

Our classes are made up of unique and curious students with varying interests and levels of readiness. We often feel overwhelmed with coming up with ways to differentiate tasks, while also being able to fairly assess their math thinking. Having students write computer programs addresses this challenge – students can create programs that adhere to their various interests, while also providing them with a “low floor” and “high ceiling” to adhere to their varying degrees of readiness.

Computer programming can be used as a context to not only develop CT in our students, but to also foster students’ deeper understanding of mathematics, providing them with “objects-to-think-with” (Papert, 1980).

About the Author:

Lisa Floyd

Lisa is passionate about introducing students and teachers to the world of coding. She recently completed her Masters in Mathematics Education and has worked as a research assistant collaborating with professors involved with Computational Thinking initiatives. She is a Computational Thinking in Math and Science Education instructor at Western University’s Faculty of Education, for which she has received awards for excellence in teaching in the undergraduate program. Lisa has many years of experience teaching secondary Computer Science, Math and Science.


Lye, S. Y., & Koh, J. H. L. (2014). Review on teaching and learning of computational thinking through programming: What is next for K-12? Computers in Human Behavior, 41, 51–61. https://doi.org/10.1016/j.chb.2014.09.012

Papert, S. (1980). Mindstorms: Children, computers and powerful ideas. New Ideas in Psychology (Vol. 1). https://doi.org/10.1016/0732-118X(83)90034-X

#computationalthinking #coding #computerscience #math