Tuesday, December 23, 2014

The Hour of Code

The week of December 8th-14th was Computer Science Education Week. One of the more popular lessons that has arisen out of that week is the "Hour of Code." The purpose of this lesson is to expose students to computer programming for just an hour. The activities around the Hour of Code are varied with the ultimate goal to expose students to coding in such a way so they're not just staring at lines of code on a screen but interacting with an environment and creating code on the backend. To introduce what coding really is to our students, I have a short but effective demonstration. I first loaded up our school website, and asked them "You've seen this page 100x before right?" and of course I get back all "Yes!" Then I switch the display to page source to show them what the "website REALLY looks like." Once I show them the hundreds of lines of code that just make up our homepage I get a lot of "wow" and "oh my gosh" responses. I tell them that each line of code is a set of instructions that tell the website what picture to load, what font color, or even where a link will take you when you click on it.

I chose to expose our school to coding for the first time this year during this week and chose two activities to use. For Kindergarten through 3rd grade we used Kodable. Kodable is a fantastic way to start your students off in a fun and stress free way. Students are introduced to the Fuzz Family and the goal is to get your fuzz from one side of the screen to the other while collecting all the coins. Sounds simple right? Well the first few levels are easy and designed that way as an introduction. Later levels introduce some very tricky paths and situations for the fuzzes to overcome. What students don't realize is that they are learning the basics of coding. The instructions for the fuzzes are lines of code that tell him/her how to proceed. Students learn the basics of sequencing, loops, and conditions. All Kodable lessons are Common Core aligned and there are lessons available from their site to help you start your coding journey. There's even offline activities for those without computers or as a starting block for younger coders. Kodable Teacher (free) allows you to create 1 class with 25 individual student profiles, all three learning guides, and all the basic concepts. If you need more classes or would like access to more advanced concepts, there is a subscription available.

Kodable Features

For my grade 4-6 students, I used Code.org to introduce them to coding. For the hour of code, Code.org had setup two easily accessible and fun activities. New this year was one based around the wildly successful "Frozen" movie and the other uses the game "Angry Birds." Both activities see the student snapping together blocks of coding terms in order to manipulate the characters on screen. Similar to Kodable, these activities need students to move characters on screen in order to perform an action or get to a specific place on screen. I was even able to code my own Christmas version of Flappy Bird to show them. After completing 20 short activities, students were able to print out a certificate of completion in the 'Hour of Code.'

After watching and interacting with students on all grade levels a few things were apparent. First, students from the older grades thought the Frozen/Angry Birds lessons were "too easy" at first and then after just a few levels they were really starting to be challenged. The Frozen activity started to involve angles and really threw them off. Also, I saw something wonderful occur on all grade levels in that students who normally struggle in certain mainstream subjects, really take off with these activities. Not only that but after going through some of these activities they started to become student-teachers by helping (not solving) other students. We also had a large majority ask if they could keep going at home.

These activities (both Code.org and Kodable) allowed students to not only critically think by plotting out all their moves but also fail. Yes I said FAIL. I believe we don't let students fail in a way that allows them to learn from their mistakes and enhance or solve their problems. Too often we link failure to being unsuccessful. I came across an acronym a few years ago and it really resonates with me.

These coding activities allow students to fail in a very positive way. Not having their program run correctly causes them to go back and look at which step they got wrong or how many degrees of an angle they were off. Each time they run the program and (possibly) fail, they're correcting mistakes and making it better every time.