Teaching kids to code is arguably as important to today’s youth as numeracy and literacy. In many ways code is numeracy and literacy. More so, it is also a way of looking at problems, breaking them down, thinking about solutions and being creative. From an industry standpoint, there will be more jobs than coders in the next few years and I expect to see a Chief Robotics Officer position any day now.
By now many have heard of the Hour of Code movement. It has become an annual event during Computer Science Education Week in an effort to introduce a new skill set to people of all ages. But what exactly is coding?
In the most trivial form, code is a set of instructions, like a written procedure only in machine language. Programmers write code to build things like apps, games and solutions to open-ended problems. Many argue that reading and writing code has become a new literacy. But what makes coding so special is it is a global language.
From a numeracy perspective, coding is a form of computational thinking. That is to say, writing code to solve problems requires logical reasoning, spatial awareness, and fundamental principles of mathematics. Writing code is a process that results in immediate feedback thus freeing up teacher time to conference with other students. Pushing kids out of their comfort level provides opportunities for risk taking, failure, collaboration and exploration.
Let’s explore an example that can be done with regular classroom materials. On the surface, it covers many of the big ideas in Geometry.
Grade 1: describing location using positional language
Grade 2: describing relative locations and paths of motion
Grade 3: describing movement on a grid map; recognizing transformations
Grade 4: describing location using a grid system; performing and describing reflections
Grade 5: locating objects using the cardinal directions; performing and describing translations
Grade 6: performing and describing rotations; plotting points in the first quadrant
Grade 7: performing and describing dilatations; tiling a plane; plotting points in all four quadrants
Grade 8: plotting the image of a point on the coordinate plane after applying a transformation
As a class, develop a list of “pseudocode” blocks based on the math vocabulary required for your students. It may look something like this:
Discuss how each block can be linked to form a chain of commands. In computer terms, this is called an algorithm.
You may differentiate and scaffold chains of block code for different students.
Now we have a few options. You may choose to do this activity in a few different ways.
- Have students pair up. One student is the coder and the other is the robot. It is the coders job to use your pseudocode to navigate your FriendBot around the classroom or school. Maybe go visit the principal or find a basketball in the gym.
- Provide students with grid paper and have them design a game with different levels.
Perhaps you teach another language. This activity is easily adaptable to include the vocabulary you teach.
Learning to code alongside students provides unique opportunities to model the process of inquiry, questioning and trial and error while having fun making games and apps. It can be frustrating, but the return on investment outweighs any negativity – and really – what would school be if it weren’t challenging?
If you have access to technology, the Hour of Code event is an ideal starting point for elementary teachers and you can find it here. Students work away at their own pace, while receiving immediate feedback from the tool. Its both fun and engaging and reinforces the Geometry concepts mentioned earlier. You can even change the language and complete the Hour of Code in French (or any language). Look towards the bottom right corner of the homepage.
If you teach secondary, I encourage you to check out codegeneration.ca for something geared towards teenagers. Like the Hour of Code, CodeGeneration has a series of challenges where students earn rewards for completing tasks.
If you are ready for more than just one hour, I have compiled a list of coding resources here.
<Keep Calm and Start Coding!>
7 Responses for this post
Good discussion, Brian. It helps focus more on the thinking behind algorithm design rather than coding. I think back to the activity that I gave your class at the university on the first night. Do you remember the 10 cards and having you people try to remember how to sort? It was fun to watch. I’m sure that everyone could sit down and write a sort from memory in seconds but to actually act it out was a different beast. Physically working through a solution can be really helpful for anyone.