Friday, November 27, 2015

20 minutes of code

Today is the day after Thanksgiving and you know what that means: just 10 more coding days until Computer Science Education Week. For the third year in a row, the organization Code.org encourages educators at all grade levels to to spend one hour of the week introducing students to coding, or computer programming, in an effort they call the Hour of Code. In the last couple of years they've had celebrities ranging from the Miami Heat's Chris Bosh to none other than President Barack Obama make promotional videos explaining the importance of learning to program a computer. In recent years, they've boasted that this initiative has exposed more girls to programming in one year than in the past 70 years combined, (a stat I'm citing from memory but which has been removed from their site.)

Probably like most people and most educators, my own experience with programming is limited. In grade school I programmed the Logo turtle to draw a spiral, and now, in my effort to blog or build wikis, I occasionally cut and paste HTML code with marginal success and frequent swearing. That's about it. Still, I've developed an interest in investigating the claim that all students should have exposure to programming, in large part because so many of the arguments in favor of coding are equity arguments.

A screenshot of my first Scratch Program- a holiday card

For my part, I am inclined to believe that a little exposure is important after participating in a workshop led by MIT's Mitch Resnick a few years back at the NCTE conference. In that setting, in the span of 90 minutes, I programmed a digital holiday card that I personalized for my daughters. While my card will not earn me any job offers from Google, I was struck by the way most everyone in the room went from not knowing how to program at all in MIT's Scratch programming language, to being able to read all of the programs in the room as we gallery walked about 45 minutes into the workshop. Though I was still a Scratch novice, I was able to gleen programming tricks from reading my peers' holiday cards and seeing how they'd approached the task differently. As a literacy teacher and someone fascinated by the reading process, I was pleasantly surprised at how fast I was able to make meaning of the programs I read on the screens around the room.


Since then, I've talked with a number of teachers about programming in schools, and I've gained a little practice with other tools like Code.org's Code Studio, Mozilla's webmaker tools, and the University of Colorado's Scalable Game Design tools. I've talked with students and most importantly, I've sat side by side with my daughter, now 9, while she programmed in Scratch and puzzled through some of Code.org's puzzles.
Code.org's puzzles increase in difficulty as you progress. 


Going into my third year now of participating in the Hour of Code myself, I better understand the claims made by Code.org and the debates that might rise and persist in the coming years about the role of coding in schools. Still, I'm less interested in debating than I am in kidwatching, especially as the weather in Denver turns cold and I'm less likely to shoo my daughters outside and more inclined to try to steer their interests away from Netflix to more creative endeavors when they are inevitably indoors and looking at screens. As I've written before, I believe the best arguments in favor of teaching kids to code will be developed by watching kids code and talking to them about it. It was with that in mind that I asked Hailey to check out Code.org's Minecraft puzzles this morning when she asked if she could log on to the computer. She spent about 20 minutes on the puzzles and here's what I noticed:


  • Hailey remembered to how to connect the programming blocks even though it's been many months since she used Scratch or Code.org's tools. She instinctively reset the puzzles to start over when she hit barriers. 

  • I watched over her shoulder as she encountered trouble on an early puzzle. I had to resist offering help. Seconds passed before she shoved the mouse in disgust and said, "This puzzle is hard. Can I have help?" 

  • She seemed to develop a positive strategy. As the puzzles increased in difficulty, she began to run the programs well before they were finished to check her own progress and to determine her next programming step. 

  • On a later puzzle that demanded she use a repeat command in her programming, I watched her make an error in the middle of a relatively long script. Again, I resisted helping, biting my lip, but I doubted she'd be able to debug with so much code- about 13 lines- to go through. When she ran her program and saw the error, she didn't shove the mouse or express any frustration. She sorted the code blocks on her little digital workstation and figured it out on her own. It took her about 5 minutes to get things cleaned up. Just as I had resisted helping earlier, I resisted patting her on the shoulder or giving her a high five. I wanted to see instead when she might celebrate.

  • She never did celebrate. After completing one more puzzle, she asked, "Can I save this somehow so I can come back and work on it later? I want to watch a show." 


Grudgingly, I let her navigate to Netflix and I set the kitchen timer for her screen time as I always do on the weekends. The 20 minutes of coding she'd done didn't count against her allotment. When I boot her off the computer in a while I'll share this post with her and see what she says. In that way, my investigation about the importance of programming will continue. We've got just 40 more minutes to go to finish our own hour of code and it is pretty cold outside.