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.
Pace
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.
Preparations
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/
About the installation stuff, I guess the thing to do is to make this time's hindsight be next time's foresight... small USB drives are so cheap you could include one each as part of the cost of the course, perhaps? There are loads of companies doing "promotional" ones so you could even have "www.tog.ie" printed on them!
I guess it might be hard to find non-Linux machines to practice installing on, at TOG :-)
You're definitely right about it being important to get the basics understood from the start.
About the adults / youngsters difference, yes, I'm sure you've got the major part of the explanation, also I'd see it partly as younger people trying things when they're not sure what they'll be interested in (which overlaps with the time thing).
The heckling by someone popping in just isn't acceptable, and you shouldn't have to be dealing with stuff like that! Cool down with remembering that any confusion about the unwanted extra content can be cleared quickly, while the heckler looking a right sad pillock in front of a group of adults will remain (ironic if s/he (somehow I suspect "he") was doing it to try to look clever)! #1. Posted by John (Website) on Sat 28 Aug 2010, 13:54
She meant well, I'm sure. I didn't think it was helpful and it wasn't welcome, but perhaps the students would have a different opinion! Hence needing to be a better person about it. I lost my footing.
Adults who take an introduction course wouldn't know either whether they'll be interested in the topic, I reckon!
I plan on teaching in other places too, maybe I should try a print with a Python logo instead! That's certainly a fun idea, thanks! I'll think about the 1 stick/person thing. The problem I see is that personally, I do tend to get irritated when I get a usb stick that is too tiny to reuse (and anything with a usable size would cost more), even if there is stuff on it initially. Very ungrateful, I realise ;) #2. Posted by jpichon (Website) on Sat 28 Aug 2010, 22:52
I think it's such a strange thing for someone to do that it doesn't reflect badly on you for losing your footing about it. I think what I would have said would be something like "Python has already proved itself a popular and successful language for teaching beginners. If you think the course should be given in some other language you're welcome to teach a course in that language, but not right now in this room." Have you had a word with her since, `off-line' from teaching, to be sure she won't do it again? Or put you could put a "Class in progress, please do not disturb" notice on the door, I suppose.
I think Python would be my first choice for teaching such a course, to the general public. (For teaching new students who're going to go on to do actual computer science, however, I'd probably pick Scheme, for ease of teaching them about language implementation as a later stage.)
Point taken about the stick size! #3. Posted by John (Website) on Mon 30 Aug 2010, 15:19
I am delighted to hear that you have started teaching. I know from personal experience that you will probably learn more than your students (the old saying is that you don't really know something until you try to teach it to someone) #4. Posted by Brian O'Donovan (Website) on Tue 31 Aug 2010, 16:17
Thanks, John! I think it will be fine in the future, and now that I have had time to think about it I would hope I will have better strategies to cope with who should be in the classroom. I hope to learn Scheme at some point, maybe we can have interesting debates about which is the best learning language once I finally get started... ;)
Thanks, Brian! I'm enjoying it a lot and of course, I'm learning from it too already! #5. Posted by jpichon (Website) on Tue 31 Aug 2010, 23:37