There is a general sense that programming is related to math and that people who are successful in math are often successful at programming. For math teachers, a natural question arises: “What is the value of computer programming in my classroom?” The reality is that one doesn’t come before the other. Programming directly supports some of the core tenets of how we learn mathematics.
By expanding our idea of what benefits we are bringing students when they program, we can break down some of the stereotypes that limit enrollment in these kinds of programs—stereotypes that hurt the diversity of students who pursue STEM in general. In particular, we believe that programming can develop problem solving skills, encourage students to be more attentive to their work, and persevere in tackling difficult problems—goals for students in every mathematics classroom!
Programming is Problem Solving
When we bring programming to math class, we add a new layer of problem solving: translating mathematical problems/ideas to execute them in code. This often requires students to deepen their mathematical understanding of the problem as they find a way to represent the problem in a programming language.
Programming forces students to be explicit about their problem solving strategies. Writing code encourages students to break the problem into discrete chunks; which is one of the most powerful problem solving techniques in mathematics. A danger with the pencil and paper calculations we rely on in a traditional math assignment is that a student can combine many elements of their problem solving process into one step. As educators, seeing how students approach a problem is invaluable information in supporting their learning.
Attending to Precision
Since the computer can only do exactly what it is told, students need to show precision with their process of translating their plan into code. This forces students to focus on details that they might normally bypass because of difficulty or lack of interest. The syntax of a language is a required step in demonstrating a solution. There is no writing down an answer without showing your work. The work is your answer when you program.
The most tangible benefit for educators that programming can provide is that it constantly provides feedback about student precision. The output of the program is a great place to start, but when there are syntax errors the compiler actually prints out messages to the students (line 5 is missing a semicolon, etc.) and they immediately see the impact their lack of precision had on solving the problem. The fact that students know immediately if they are correct or incorrect is the best formative assessment an educator could hope to provide.
<a href=’http://www.freepik.com/free-photo/child-working-on-the-laptop_858495.htm’>Designed by Freepik</a>