Cake
• Thanks @StephenL for inviting me to contribute a guest post. When I was first asked, I wasn't really sure what I would write about. I'm not exclusively a Maths teacher and to be honest, I don't really do a lot of explicit teaching of it in my role. I teach STEAM (Science, Technology, Engineering, Art and Maths) to students from Prep through to Year 4. Any math I teach is incidental but it does play an important role in what I do.

My curriculum is made up of a lot of robotics and engineering projects, but coding plays a huge role, so I want to share how coding encourages mathematical thinking in order for students to be successful.

I really enjoy seeing what students can create with code and my two favourite apps to use in my STEAM class are Scratch Jr (Prep to Year 2) and Hopscotch (Year 3 and 4). They are both block based, graphical coding platforms designed to help children develop the basics of computer code. When we specifically look at Math content, it's not hard to find some really wonderful, engaging links.

The first links you usually find with these apps are directional language, algorithms and repeated patterns. Students quickly develop an understanding that algorithms are important in developing actions for objects they code. They find out how to move these objects in certain directions or ways and that it must be in the right sequence to work. In order to be more efficient, they notice that they can use repeat blocks to do the same thing in less steps (figure 1), which is a great visual for understanding grouping of objects. For example, they may code three different characters to each move four spaces. They will understand that each group must have code with four steps in it.

One of the benefits to Scratch Jr is that you can overlay a grid so that students can develop an understanding of co-ordinates, estimation, addition and subtraction (figure 2). You can begin to introduce key concepts like 'x and y axis' as students graduate from Scratch Jr and move to Hopscotch.

With the ability to rotate objects in Scratch Jr, you are able to introduce informal language relating to angles. Once they are used to the turns, you can formalise the language and describe each turn as 90 degrees. As they move on to Hopscotch, they can start using numbers to represent the turns their objects make and that we can move an object any number up to 360 degrees.

Figure 3 shows the coding screen in Hopscotch and it's easy to see the math involved. On these two screenshots alone, students are developing an understanding of x and y axis and coordinates, percentages, time, length, width and negative numbers. When my students are exploring these blocks, they are generally using a trial and error approach which challenges them to think deeper about what they need to succeed. They aren't really aware they are being mathematicians, nor are they aware they are developing skills beyond what the curriculum says they should be learning about.

This is merely a snapshot of what my students are exposed to every week. I am always amazed at how quickly they learn and what they are able to create. If you're struggling to find ways to engage your students in maths, then I hope that this post convinces you to give it a shot.

5 recommended posts from my blog to read next:

• Do you remember Microsoft’s Kodu Game Lab?

It was an interesting concept where the students would select simple icons to make the character move forward along a path, turn left or right, levitate up or down, grab or release objects. In theory your students could learn some basic programming as well as debugging if Kodu didn’t act as expected.

What I found, however, is that you could spend an inordinate amount of time building paths and hills and landscaping with the design tools. I hadn’t made the connection that using robots to teach coding could be a much simpler and uncomplicated process. Daphne McMenemy’s video is a great example of this, I think.

My immediate reaction to starting elementary school children with coding of robots was “That’s too complicated,” most likely due to watching too many seasons of Battlebots.

I love the progression from concrete ideas of position to more abstract concepts such as ninety degrees, of introducing a coordinate system for movement, and of providing tangible wins when the robot does what’s expected.

@mathforlove talks about the need for students to struggle with math:

People learn by trying to make sense of things that aren't obvious. This can be frustrating, but we need to let the struggle belong to the student. If we take it from them, we take the satisfaction and joy as well. (mathpanel)

@PonderingDan how do you decide when to jump in with help and when to let them struggle for a bit longer? And how does that differ for your youngest students compared to your oldest grades?

• Thanks for the questions Stephen. We do a few things to ensure students are managing their learning. Firstly, we ask students to nominate themselves as 'experts' and then, we have a rule to 'ask three before me'. This way, if students are stuck, they know who to ask first and if all three choices provide no answer, they come to us. The benefit to doing it this way is that students are inclined to engage in conversation about certain things and tend to work other things out together that might be unrelated to the initial problem.

For our younger students, this can all be quite challenging because they simply forget to ask their peers. We usually stop the students a few times to make sure they are understanding the learning intention.

Of course, with all this, any big problems we find, we share them in our reflection time. This opens up conversation about what can be done differently next time.

• I'm a big fan of integrating programming and math learning. In high school, there's some fun geometry to explore, starting with basic angle ideas, and going all the way to designing fractals. Snap (from UC Berkeley) is a powerful version of Scratch which I recommend for both math and computer science in secondary school.

• I've not heard of Snap, so I'll have to check it out. Thanks 😀