teaching kids to code: first lesson
May 21, 2009
Last week I taught a 4th/5th grade class an introduction to computer programming. It was chaotic, as such classes sometimes are, but fun. I hear the kids enjoyed it and am planning classs #2 for Friday. I decided to use Shoes which uses the Ruby language and includes some nice graphics and UI primitives (some notes on why).
Here’s a few notes about the experience:
- I told the kids that they would be learning Ruby, which I use in my work, and they seemed pretty excited that they were learning a “real” programming language
- Kids loved the name “Shoes” — laughter and joyous confusion when I was explaining what it was
- I started the class with a computer history presentation which could have been a full hour long class itself, the kids really liked it and wanted to ask more questions & make
observations (I ended up spending 25 minutes on this, instead of my planned 10 min). They were really interested in the computer history talk and were excited to hear about the stuff created in their lifetime that they actually knew about and used. I made sure to mention both women and men in the history (Charles Babbage and Ada Lovelace working on the difference engine; later the two guys who created the hardware and six women who created the software for the ENIAC). I also made sure to discuss recent history. Half the class was not yet born in 1998, and for them the Web, Google and YouTube are contemporary with microwave ovens (e.g most people use them). My timeline ended with:- 1993: World Wide Web created
- 1995: Shockwave & Flash first released
- 1998: Google website launched
- 2004: FlickR website launched
- 2005: YouTube website launched
- 2007: Shoes released!
- I need to work more on the setup, since I can’t seem to rely on the school computers no matter how much time I spend setting them up (4 hours
the day before). There’s all sorts of odd issues with the student accounts not having correct permissions and some computers having special
cleanup software which wipes everything you just installed when the computer restarts (!) I was considering putting Shoes and Notepad++ on a USB drive and see if they can just access the installed software from there, but a RailsBridge volunteer is experimenting with creating an Ubunto LiveCD with Shoes which I’m pretty excited about. Meanwhile, for Friday, I’ve made some progress with install issues on the school computers — cross your fingers for me. - What I normally do when I have taught programming before is a coding demo with students following along and typing with me. I wish I had done that. Instead, because of the set up glitches, I let them follow the instructions while Chad, another RailsBridge volunteer, and I tried to debug various install issues… and the instructions weren’t really made for that. Interactive Q&A is a teaching style that works well at this age. I think it would be good to accidentally (on purpose) create a syntax error and have them see me debug it.
- I didn’t complete my whole lesson plan in the first class… so I have plenty of material for class #2.
I’m publishing the lesson plans as part of the RailsBridge project “teaching kids” which is just starting up — if anyone is interested in collaborating, let me know or just sign up for the RailsBridge google group and chime in. The worksheets are published on github.
It has been an awesome experience working within the RailsBridge community and the super friendly shoes list. This is stuff I would be doing anyhow, but with a community of collaborators, I feel like the work I am putting in will not only teach and inspire 28 kids in SF, but perhaps spread to other schools and families through the resources that are being published and the excitement generated on the lists.