Coding: (Imagination + Problem-Solving × Creative Frustration + Fun) × Determination ÷ Collaboration

by Aya Furusawa — grade 3 teacher at A. Blair McPherson school in Edmonton, Alberta

“Coding to me is letting your imagination run free because you can make anything you want even if you are a starter or a pro.”  – J.H., grade three student

Imagination + Problem-Solving
None of my students had any previous experience with coding, but they were instantly filled with excitement at the idea of being able to create something of their own on the computer. I, as their teacher and a novice programmer who had only tried creating a couple of programs on Scratch following a manual, on the other hand, was hesitant. With that said though, Wing’s (2006) statement, “Computational thinking is a fundamental skill for everyone, not just for computer scientists” (p. 33) lingered in my head. If coding is a tool to develop students’ computational thinking, then despite being anxious and skeptical, the only way to understand and experience computational thinking was to try it out with my students. I had to give it a chance. And so, I was happily surprised on one Friday afternoon with my thirty grade three students, that it took less than an hour to see for myself the importance of fostering computational thinking through mathematics and how coding can be used as a tool even for my students. Ever since that day, coding became a part of my students’ daily conversations in and out of my classroom.

Every year, after exploring polygons, I have my students draw various polygons on grid paper with a pencil and a ruler to calculate perimeters. This year, playing with polygons and finding their perimeters turned out to be a little different than usual. Instead of drawing by hand, my students tried programming to create polygons on Scratch. This is a glimpse of my most recent and thrilling coding journey with eager young programmers.

Papert’s TURTLE TALK           
I had been wanting to use more coding as a tool in my math lessons since that Friday. So, I decided to teach my eight year olds the Cartesian plane, the X- and Y-axes, including positive and negative numbers. I thought it was a perfect instrument for students to discover the distance between two points, the length, and to figure out the perimeter of polygons they designed.

First, we pushed all the desks to the perimeter of the classroom to create an open space in the middle, and I placed blue and yellow floor tapes to differentiate the Xs and Y-axes. After students shared what they noticed about what I had created on the floor and learned where the X-axis and Y-axis intersect (0,0), our conversations blossomed. They discovered patterns of positive and negative in each of the four quadrants and described the location using an ordered pair of numbers through walking and marking the location (x,y) on a piece of white tape. Students debated, moved around, proved, and taught each other how to make sense of this new way to create polygons on Scratch. These keen programmers just couldn’t wait to get on Scratch to try it out using codes.
Thirty-seven years ago, Papert (1980) already stated that starting programming with “body-geometry” allows students to experience how they move around in space helping to develop insights and understanding of “formal geometry” (p.58). I wholeheartedly agree with him, as do many of my students. Here are some of their reflections:

“I can pretend to be the cat and visualize how my body is moving on the x and y on the floor when I am coding.”

“Moving around on the floor before coding helped me imagine in my head what I wanted the cat to do.”
“Walking on the floor helped me figure out the location of x and y on Scratch.”

I even noticed some students on the floor re-walking a location with a Chromebook in their hands, while talking to themselves, to find out the exact position of x and y. On that day, every student successfully created different sizes of rectangles in all four quadrants, transferred their rectangles onto a paper Cartesian plane, and calculated the perimeter by hand (Students are not there yet to program the perimeter using Scratch!). It definitely seemed that physically moving and acting out helped them to make meaningful connections to reason out the cat’s movements and directions. The best part of all for me was something larger than coding – a Big Idea. My students’ loved the fact that they could understand the concept of negative and were able to use it. They felt they were cool, and I thought they were too!

Creative Frustration + Fun

Problem Solving with laughter
“Hahaha!” echoed across the classroom. I was surprised to hear laughter from my students while they tried to program their next challenge: designing rectangles on the Cartesian plane. They giggled and shared their errors with their classmates. “That’s not what I wanted the cat to do; look at it!” one girl shouted with amusement. Quickly, she returned to examining how to debug her codes by putting her finger on the screen to track each step. “Oh, I know what I did. I should have changed x instead of y…” Meanwhile, at my desk another boy asked me for a second opinion, “I think it looks slightly off, what do you think?” He had just made a rectangle on about a 45 degree angle in one of the quadrants. Before I could give him any thoughts he asserted, “I need to make 10 shorter here or make that 10 longer.” Staring at his codes he decided, “I need to change this code to less on the x because I’ve been changing on the y.” He then left my desk wearing a smile.

When the students were coding, somehow mistakes didn’t feel like mistakes to them; they were just small hiccups before arriving at the destination. It was as if these blunders were a part of the expected programming process. The initial reaction to the computer outcome, was expressed in phrases like, “What just happened?” to “If that didn’t work then…” to “Maybe I should…”. It was as if, during these instances, troubleshooting mode was kicking in, and their minds began analyzing the codes step by step debugging, and ending with the wide-eyed gasp, “Come heeeeere, I want to show you something! I finally did it, loooook!”- pure joy. I also noticed more patience and willingness to persevere while they fixed their errors. They happily took on the challenges while chasing their vision, their goal. The combination of the immediate visual feedback from the computer to notify that something was not quite right, and the non-permanent, easy access to deconstructing and reconstructing their codes encouraged them to focus on what mattered the most: precise, detail-oriented analytical thinking that leads to conceptual understanding.

“You REALLY have to understand what you want your cat to do and tell her the right instruction, exactly what and where you want her to go. Or else, it won’t work. That’s what I realized.”  -H.K.

“Heeeey, how did you make that?”
“So… I wanted the cat to go to this spot, so I changed…”
“Can you help me? I’m close, but I can’t figure out what’s wrong…”
“What do you want the cat to do?”
“Wait, let me see…”
“What if you changed this to… because you want to…”

Such words were music to my ears; I loved listening to my students coming together to share their ideas, debug their codes, and celebrate each other’s success. I enjoyed watching an active community of programmers, each pausing their programming, sitting with another programmer to deconstruct code one by one, solving problems together. Burke, O’Byrne, and Kafai, (2016) described it perfectly: “Coding enables students to communicate, socialize, and engage in literacy practices needed in their future careers as global citizens” (p.371). It does, indeed, seem like coding allows students to develop skills beyond computational thinking.

“We are mini-teachers in disguise!”  – M.M.


“When are we doing coding next?”
To be honest, I was surprised that instead of being overwhelmed, my students were eager to employ the blocks Scratch offered: because I was.  They appreciated the choices and enjoyed experimenting with the blocks to turn their mental images into something real that they could actually manipulate and see move; “Scratch is the best! You can make your imagination come true on it,” one of the girls blurted out. The entire class agreed with a collective “yeah!” It was clear to me how easily computational tools allow 7-8 year olds to create “original mathematical-and-artistic creation” (Eisenberg et al., 2005, p. 2).

I get it now. Coding, low floor, high ceiling by nature, assists every student in their sharing of their digital stories and their computational thinking process. I saw rectangles of various sizes sitting vertically, horizontally, across different quadrants, and even a rectangle floating diagonally. The diversity of the end products is in the hands of my students. They drive it and they own it as they feel comfortable, and where they are willing to take risks.

“I am going to teach my mom when I get home!”  – L.M.

Coding: (Imagination + Problem-Solving × Creative Frustration + Fun) × Determination ÷ Collaboration = ?
Students, who are growing up in this fast-paced digital world, enjoy playing games, already-programmed-products, and know how and where to tap and swipe to get to the end. Coding completely turns around students from being mere users into writers of a new product This is, where the true power lies. Additionally, coding slows down students’ thinking and encourages them to pursue the “why” and the “how” in the process of designing their new creations with determination. Coding might be like a glue, the tool that connects many mathematical ideas and skills in one. After two months of coding, I am shocked at how the mathematical ideas and skills my students have been exposed to while coding has opened up the way they view and approach the mathematics concepts they are learning in class. They notice and explicitly articulate the connection they are making from coding experience, as if they realize that mathematics is like one large sphere, with every idea all interconnected inside. Coding seems to be a powerful tool for young mathematicians. I believe it is worthy of further investigation.


Burke, Q., O’Bryne, W. I., & Kafai, Y. B. (2016). Computational Participation. Journal of Adolescent & Adult Literacy, 59(4), 371-375.

Eisenberg, M., Eisenberg, A., Blauvelt, G., Hendrix, S., Buechley, L., & Elumeze, N. (2005). Mathematical crafts for children: Beyond scissors and glue [PDF file]. Retrieved from   

Papert, S. (1993.) Introduction in mindstorms: Children, computers, and powerful ideas. New York NY: Basic Books, Inc.

Wing, J. M. (2006). Computational thinking and thinking about computing. Communications of the ACM., 49, 33-35.