Last Monday I started teaching my introduction to programming course, edition #2 to a small group of adults this time. Here are a few thoughts from the evening.
Installing Python and an IDE
First of all, as expected getting Python to work on multiple platforms as well as more or less getting everyone to use the same editor was a misery. I settled on having Geany or IDLE in the end. We kinda gave up on Windows, though I got some additional info from a friend since then that should be helpful if necessary. Despite that experience, I would expect just as much pain next time. Note to self: bring several usb sticks with all the binaries to pass around, one isn't enough. I wish Geany would work out of the box with Python on any platform, that would be so awesome and convenient. It really is a great IDE!
I was briefly pondering whether it'd make sense to simply make everyone use Ubuntu (e.g. as a LiveCD, with a usb stick to save), but Jannette made a good point that people would likely never look at it again after the course.
I suspect one, perhaps two people are a bit frustrated by the pace but I think it works for most otherwise. I'm not interested in rushing through concepts in any case, but next time I may have to work even harder at explaining that this course is an introduction to programming, not to Python.
It would appear I've somewhat learnt to size my lessons better. To be verified at the next session though, I had no control over how long the installation phase lasted.
For the material, I reused and expanded on my lessons from last time. As before, I had the same issue with the lack of exercises for simple concepts, although I still believe they matter a lot. If people miss anything at this point they will struggle to the end. I must find and create more of those. (Ideas welcome! Mostly exercises to do with text display/variables/user input, and nothing more.)
Interacting with the students
I didn't like when someone popped in and was a bit disruptive, making disparaging comments about Python and comparing concepts with other languages. I don't think it's helpful to do that when someone is learning them for the first time, you need to give a chance to let concepts sink in before explaining variations. I was very bummed out by the whole episode and also by my reaction, all in all it was a very light hearted interruption and if I want to become a better teacher and go back to teaching teenagers, I really need to stay cool and not get flustered. Cutting myself some slack this time, I'm still an apprentice and this is the first time teaching in the big outside world, but definitely something to keep an eye on and improve upon...
Overall adult students are a lot more active than when I taught younger people! They ask a lot of questions, which makes me very happy :) It does make sense, the whole "I have lots of adult responsibilities therefore very little time, if I show up, sacrificing the time I could be using to do other things, and also pay money for something I will make the most of it!" Or well, that is my theory behind this variation so far.
I hope the students will feel free to share more of what what works and doesn't as the courses goes on. I definitely plan on asking for overall course feedback at the end, and hope people will share their thoughts to give me a chance to improve :)
I got some helpful feedback already:
- I was told I went too fast on explaining int(), what it is, the conversion and why it's needed. The truth is once again I ended up giving an exercise that required using int() to convert user input and forgot to spend time explaining it properly beforehand. Grumbles!
- So far, Mike is happy \o/