When students arrive in the computer lab for today's class, I've posted a link to today's assignment on the board (http://www.hourofcode.com/co), along with this quote:
As students get to their computers and type the link into their browsers, I ask them if they buy the quote on the board, and sometimes it starts a cool little conversation.
Today, my job is to bring this idea to life. As part of Code.org's Hour of Code (Dec. 9-13, 2013), we're spending one class period in our year of Algebra 1 learning come basic computer programming. Of course, I think that learning to code is a valuable experience in itself, but I also hope to highlight some of what Steve Jobs is saying here about learning how to think. The problem solving and visual-abstract thinking students will do today can extend to a lot of what they need to learn in this course.
Today's lesson plan is simple as they come: greet kids, give them the link (http://www.hourofcode.com/co) and see what happens. Actually, I have to work to keep myself in check today. There's so much I want to say to kids, but it's really best that I shut up and let kids have their own great thoughts. Of course, I'll jump on the opportunity to help if they ask for it, but I don't want to say too much. And I'll definitely save my grander connections to the algebra curriculum for later.
So with that in mind, my best recommendation to you is that you just check it out for your self, and see what connections you make to your teaching. The link I'm sharing here, http://www.hourofcode.com/co, directs to one of a dozen or so free lessons rolled out during the Hour of Code on December 9, 2013. The lessons are still up for anyone to try, and you can see a full list of lessons - for various grade-levels and levels of experience - here: http://code.org/learn.
The lesson we're doing here assumes no experience in computer programming, and it employs all sorts of high-engagement tactics: celebrity cameos, fantastic scaffolding, and angry birds. Over the course of solving 20 problems, students will see for loops, do-while loops, and if-then-else statements, each of which are used to make three basic lines of code: move forward, turn right, and turn left accomplish a task as efficiently as possible. The only clarifying point I had to make to every class was on Problem #9. Many students didn't recognize that they could put multiple lines of code within a loop - again, check it out for yourself.
It's fun to trust the inherent motivational force of a task enough to script nothing today. I trust that kids will ask the right questions and that everyone will learn what they can. Out of the 115 students I saw today, no one disengaged from this work. My enactment of the lesson is different with every student. To try to document, in detail every conversation that happened today would take pages and pages.
Instead, I want to list just a few takeaways, and I'll organize them by Mathematical Practice:
With a few minutes left in class, I ask students what they thought about today's work. They're eager to share, and it's nice to hear them summarize what happened today. I also ask if anyone would like to continue this work. I show them that code.org is hosting more lessons in which students can actually type their own code, write iOS apps, design graphics, and more. Interest is high, so moving forward, I'll host students after school who would like to continue with this work.
This is also a locally political issue, and when students tell me that they think we should offer classes like this in school, I direct to their student council and administration. "I'll be happy to support you in an effort to bring coding to school," I say, "but I really want it to come from you. So how should we start?"