During the week of December 7-13 classrooms and organizations around the world will be participating in Hour of Code Events, a basic introduction to coding for students of all ages (to be precise ages 4 to 104, according to their website). To date, over 100 Million students have worked on the activities at Hour of Code. This past summer Rachel and I taught a summer program drawing on the resources from this program. I found it personally entrancing- I didn’t want to stop working on my own coding exercises. I was excited to use it with students as an introduction to computer programming and a great way to ramp up the STEM opportunities for students. What I didn’t expect was to learn a great lesson about teaching and learning.
Hour of Code in Action
Students jumped right in after a brief introduction to the program. As I watched them get hooked on programming, I couldn’t help but be struck by the learning process students were experiencing. Hour of Code starts with simple tasks for novice programmers to accomplish by entering simple commands. Then, each puzzle gets a bit more complex. Without fail, I watched each new programmer input the code they thought would solve the problem, and then they ran the program only to see their avatar fall into the water, walk into a wall, or retrace its steps repeatedly. When faced with this failure, I watched the students review their code, try something else, and then run the program again. When a program still didn’t work, it was back to reviewing the goal, looking at where the program went wrong, and trying again.
For all the failures I observed over the week, there were very few times that students quit in frustration. Rarely did they skip the puzzle to try something else or step away from the work altogether. And for those few students, they quickly realized that the puzzle was still there, waiting for them to conquer it. They learned that eventually they would have to figure it out in order to move on. Each of them started to problem solve in their own way. Some reviewed the directions or enlisted the help of a peer or teacher who could help them see it a different way. And ultimately they all had the satisfaction of seeing their program finally run just the way they had hoped.
As a teacher, I found myself intervening and giving students specific instruction only a few times. Sometimes a student just had a block they couldn’t get past, so I would give them a little prompt. But when students started asking for help without struggling first, I would direct them back to the program and encourage them just to do their best. I reminded them to run the program, pay attention to what happens, and then make adjustments as needed. Watching students run simulations and make adjustments, I couldn’t help but wish that math instruction looked more like what I saw during the Hour of Code.
My Takeaways
Watching this process made me think about learning in general. A few key takeaways for me were:
- All learning involves navigating a new “language”. In this case, they were learning the language of code, but math is just as much of a new language. So is the way we talk as scientists, historians, about literature, etc.
- Failure is a natural part of learning to do something new. It needs to be treated as such. Hour of Code was built on providing a low stress environment where students could and would fail as a natural part of the program.
- There is value in testing your understandings to see if you are really on the right track. Getting immediate feedback is invaluable. Being able to see if you really “get it” and immediately make adjustments speeds up the learning process and helps catch misconceptions early.
This year I’ve consciously tried to carry those lessons into my work with students. I want them to test their own work, evaluate if they’re on track, and decide how to make adjustments. I don’t want them to wait for me to tell them how and what to do. It’s been helpful to think of learning as more of a laboratory and less of an information distribution center. I hope you all get a chance to check out the amazing resources at Hour of Code. But beware- once you start coding, you may not ever want to stop!