Teaching how to program, first impressions

Armed with my laptop and some notes, which I had spent the previous evening annotating then annotating the annotations, I stepped into the room where I was to teach my 7 (actually 6) students the basics of programming and Python.

The short version is, I think it went well. There is obviously so, so much room for improvement and I'm very motivated to work on the stuff that went less well. But all things considered, I did my best and nothing went horribly wrong. Thanks to those that took the time to post comments with advice or to send me encouraging emails! I really appreciate it.

I enjoyed the most helping and having conversations with students one-on-one while they were working through the exercises, compared to the bit at the beginning where I explained what Linux and open-source was about, and what we were going to do (I was using a conversational style but still, no one would answer my questions). Once I was making rounds checking individually if everyone was doing ok, people weren't afraid to ask me questions and I like that, although it could just be that I was working with some really cool kids :)

A few of the points to improve on I took from that day:

I completely underestimated how long it would take us to get through the simple concepts. I thought I would run out of material well before the end of my 3 hours time slot but we didn't go through half of it. And thinking back on it, I probably should have spend more time on the very first concepts, and insist on the "details" like say indentation. Thankfully I get another chance to get it right when we meet again in 3 weeks :)

Something I absolutely need to fix for next time is the quantity of exercises. I need many, many more, and particularly for the simple stuff which I hadn't prepared at all. Examples are good and necessary to get started, but exercises are best. They're great for me as well to see what's causing problems or confusing students, because that stuff is so familiar to me, it's hard to realise what goes through the head of someone to whom the concept is shiny new.

Another thing I found difficult and need to improve on is managing students needing more time and personal attention, because after a while I feel like I'm letting the others down. Having more exercises would also help alleviate this, I think, because at least other students would be able to keep busy and get more comfortable with the material, rather than wait for me to give them more things to do (my failure again here, obviously).

Overall most students seemed to be having fun, and some were curious enough to ask me what we were going to do next time. I hope they do show up for the next session and give me a chance to explain again the concepts I wasn't clear enough on this time.

My main TODO for the next session: have about 20.000 exercises that use print / variable / user input / if statements (or 20 at least, to begin with ;)). Any idea, input or pointers to resources, as simple as they might seem, are very welcome! I think I will prepare some silly on-screen questions as well, particularly to drill in how variables work.