Many educators across the world will be inspired to engage their students in a coding lesson this week, as December 3-9 is Code.org’s annual Hour of Code event. Coding is not only great as an elective or extra activity, it can also provide an avenue to apply and deeply engage in mathematical concepts. Perhaps we should consider including coding as part of our mathematics explorations more often!
Problem-solving skills are almost unanimously the most important qualification that employers look for….more than programming languages proficiency, debugging, and system design. Demonstrating computational thinking or the ability to break down large, complex problems is just as valuable (if not more so) than the baseline technical skills required for a job.
Creative problem solving skills are not only important for future jobs in the technology space, but others as well. In a survey from Adobe, 85% of educators and 84% of policymakers agreed that problem solving skills are in high demand today for senior level/higher-paying careers.
What can help students build persistence in problem solving? Students who are actively engaged are intrinsically motivated to persist through challenges.
Instead of starting with the coding topic, think about starting with a problem your students want to solve and brainstorming on how you can use coding (and mathematics) as a tool to solve that problem (or part of the problem).
Coding to Promote Abstract Reasoning
The second standard of mathematical practices is to reason abstractly and quantitatively.
“I use Algebra thinking a lot,” said Javier Mendoza, software engineer at MIND Research Institute. “Algebra requires you to look at a function and decide what is missing to make this work. Same with coding. Whether it's coding for an app, a game, or website; you are a detective in the digital/math world trying to solve the values required to get the computer to equal the final value."
I'm interested in Javier’s description of a math detective. Detectives use both the physical (clues, people, interviews) and the abstract (motivations, re-creation, logical deduction) to solve a crime. It requires a certain flexibility in going back and forth between the abstract and the physical and understanding the relationships between the objects.
Algebra taught me how to figure out missing number values, but it also taught me how to look at the problem, figure out what's missing, and then figure out how to make it work.
-Javier Mendoza, MIND
Another software engineer at MIND, Bryce Walters, also references the importance of abstract thinking when designing games for ST Math: “I think there is a shared thought process when describing problems and defining solutions in code and in mathematical terms. For example, the number 16 can be described as, (4 + 4 + 4 + 4) or (4 * 4) or (4 ^ 2) or (16), but each scenario describes a different situation. It is necessary to determine the meaning of the value and the relationship that the situation is describing. A similar process needs to be followed when developing code. I know I need to tell JiJi to walk to the other side of the screen, but what is JiJi? What is walking? What is the other side of the screen? All of these actions and elements and relationships need to be abstracted and defined in code to define the algorithm that, in this case, can move JiJi across the screen.”
One of the common abstract ideas in both algebra and coding is the concept of variables. Check out this physical activity on variables to introduce abstract thinking to students.
Coding as a Way to Model Mathematics
The third mathematical practice is to model with mathematics. According to the standard, students “are able to identify important quantities in a practical situation and map their relationships using such tools as diagrams, two-way tables, graphs, flowcharts and formulas.”
Sometimes, however, there’s too much data to write out in tables and put into graphs and formulas by hand. That’s where coding can be used as a tool to create better mathematical models.
Not only can students build or use tools to solve problems, they can create tools to help others. When students create an application or digital game they are actively using their skills in mathematics to create something that others can use.
This is partly why problem solving and persistence is so important - it’s rare that you’ll be as precise as you need to be in your first attempt. Even if the code appears to work for your input or solution, what happens later when you try something different?
Like visual instructional program ST Math, the informative feedback of code shows students their solution and how it did or didn’t work. Even a lack of feedback shows that something didn’t go as imagined. In the feedback is the information on how to improve on the solution. Neuroscientists call this process of hypothesizing, acting, observing and adjusting the action the perception-action cycle.
More Fun with Math and Coding?
All of my math training had honed my analytical skills and general ability to think in a structured and logical manner when approaching a problem to be solved.
There’s still other mathematical practices I didn’t get to: Use appropriate tools strategically, look for and express regularity in repeated reasoning, look for and make use of structure, and construct viable arguments and critique the reasoning of others.
How do these practices relate to coding, or how do you use coding to continue and build upon the practice of these skills? Let us know in the comments below or on Twitter @MIND_Research!
About the Author
Calli Wright is a digital media analyst at MIND Research Institute. She loves playing board games and editing their rules, which she often talks about on twitter @CalliWrights.