Develops Problem Solving Skills.
A recent study by Erol and Cirak (2022) found that "game design activities with Scratch increased the problem-solving abilities of the [middle school] participants". This finding is not surprising because students, who engage in coding, learn to think computationally. Computational thinking (CT) is a way of thinking that helps people when "solving problems, designing systems and understanding human behaviour" (Wing, 2006). It is used by computer scientists, but is a"fundamental skill" that everyone should learn (Wing, 2006) because it teaches people "logical ways to approach and solve problems" (Kellinger, 2020). Some of the computational thinking skills that your students would practice when coding are:
Breaking down large problems into smaller problems
Recognizing patterns
Creating abstractions (conceptualize and then represent in general terms)
Reframing a problem into one that is solvable.
Assessing weaknesses and strengths
Generating algorithms.
Develops Socio-Emotional Skills.
"Because coding is about decision-making, it promotes executive functioning skills such as breaking problems into smaller sub-problems, planning ahead, making predictions, prioritizing tasks, problem-solving, and perseverance, and thus uses socio-emotional skills. Debugging problems teaches students how to identify and troubleshoot problems, how to learn from mistakes, and how to find workarounds" (Kellinger, 2020).
The nature of coding offers opportunities for students to develop their socio-emotional skills. Students receive instant feedback when they run the program. It either does what it was supposed to do or doesn't. When the program doesn't work, student learn to persevere through the roadblock by troubleshooting the program themselves or by seeking assistance from a peer. Through this process, students not only develop collaboration skills but also experience first hand the power of collaboration and learn to never give up.
The low floor (little knowledge required), high ceiling (extensions) nature of coding allows all students to find an entry point into the curriculum and to explore the concepts and develop programs at a level that is comfortable for them (Gadanidis, Brodie, Minniti, & Silver, 2017; Grover & Pea, 2013).
In addition, integrating coding in the classroom provides opportunities for various socioeconomic, gender and ethnic groups to learn about STEM concepts (Smith, 2018).
Coding also engages students in authentic math tasks that integrate concepts from many strands. Students might be using code to learn about measurement, but the coding program requires them to understand concepts from the algebra, geometry, or number strand. Students begin to see the value of all strands and how mathematics strands are related.
When working with code, students have control over what they create and what they learn (Gadanidis, 2017; Gadanidis, Clements, & Yiu, 2018). The self directed nature of coding allows students to personalize their programs to include their interests and to make programs that make sense to them. By giving them this freedom of expression, they are developing voice (Resnick, 2018). In addition, the ease of modifying a program allows students to study a relationship that they are interested in.
When students are coding, it is a natural part of the process that they are talking and working together. As a result, students are less reliant on the teacher and there is an increase of knowledge movement in the classroom (Lau, 2021).
Coding makes mathematics concepts feel tangible. When students manipulate the program, they can see the result immediately on the screen. This makes the concept feel tangible. (Gadanidis, 2017; Gadanidis, Brodie, Minniti, & Silver, 2017; Gadanidis & Floyd, 2021)
Automation allows mathematics concepts to be represented dynamically, which in turn allows students to investigate relationships (Gadanidis, Brodie, Minniti, & Silver, 2017; Gadanidis & Floyd, 2021). Once a program is written, a few small changes to the program can lead to a new set of data which can be analyzed. The short turn over time when collecting data helps students to see the relationship.
Coding programs require students to understand concepts across the mathematics strands. When students create programs, they practice and deepen their understanding of these core concepts like variables and coordinate systems.
Since coding differentiates the learning environment, students begin where they are at and develop their understanding of the concepts at their own pace. This helps them to gain confidence in both their mathematical and coding abilities (Gadanidis, Brodie, Minniti, & Silver, 2017). With new confidence, students begin to develop a more positive attitude towards learning.
Coding activities engage students in three ways.
Writing code provides another more creative way for students to demonstrate understanding of the concepts.
Coding allows students to be surprised by what they have observed (Gadanidis, 2017; Gadanidis, Clements, & Yiu, 2018).
Gives students an outlet to express themselves.
Since technology is a part of our every day lives, it is important that all people learn how coding works and understand how it can be used to influence people (Kellinger, 2020).
Coding assignments have students creating models and simulations, collecting and working with data and/or solving problems. These authentic experiences allows students to experience what scientists and mathematicians might do in their careers (Weintrop, Beheshti, Horn, Orton, Jona, Trouille, & Wilensky, 2015; Augustine, 2005).
Coding has wide walls. There is a social aspect to it. Once students have created a program or overcome a hurdle, they enjoy sharing their programs or stories with family, friends and teachers (Gadanidis, 2017; Gadanidis, Clements, & Yiu, 2018).
Augustine, N. R. (2005). Rising above the gathering storm: energizing and employing america for a brighter economice future. National Academic Press, Washington, DC.
Erol, O. and Cirak, N. S. (2022). The effect of a programming tool scratch on the problem-solving skills of middle school students. Education and Information Technologies, 27, 4065-4086.
Gadanidis, G. (2017). Five affordances of computational thinking to support elementary mathematics education. Journal of Computers in Mathematics and Science Teaching, 36(2), 143-151.
Gadanidis, G., Brodie, I., Minniti, L. & Silver, B. (2017). Computer coding in the k-8 mathematics curriculum? Ontario: Ministry of Education.
Gadanidis, G., Clements, E. & Yiu, C. (2018). Group theory, computational thinking and young mathematicians. Mathematical Thinking and Learning, 20(1), 32-53.
Grover, S., & Pea, R. (2013). Computational Thinking in K- 12: A Review of the State of the field. Educational Researcher. http://doi/10.3102/0013189X12463051
Kellinger, J. J. (2020). Coding across the curriculum: How to integrate coding into content areas. In Handbook of Research on Literacy and Digital Technology Integration in Teacher Education (pp. 214-227). IGI Global.
Lau, N. (2021). Creating the collaborative mathematics classroom of the future. Gazette Ontario Association for Mathematics, 60(1), 45-30.
Resnick, M. (2018). Computational Fluency. http//medium.com/@mres/computational-fluency-776143c8d725
Rowe, S. (2021). The see, think & wonder of computational thinking in the intermediate classroom. Math + Code ‘Zine [Invited Journal], 5(2). Retrieved from https://researchideas.ca/mc/the-see-think-wonder-of-computational-thinking-in-the-intermediate-classroom/
Smith, D. L. (2018). Coding for success. Teacher Librarian, 45(5), 13-16.
Weintrop, D., Beheshti, E., Horn, M., Orton, K., Jona, K., Trouille, L., & Wilensky, U. (2015). Defining computational thinking for mathematics and science classrooms. Journal of Science Education and Technology, 25(1), 127-147.
Wing, J. M. (2006). Computational thinking and thinking about computing. Communications of the ACM., 49, 33-35.