Teaching Python, session 2! | Reflecting on the process

I went through my 2nd Python teaching session today, with the same students than last time. Some improvements and still, so-so-so many things to improve. Teaching is something I really want to get better at so I'm really motivated to debug my process.

Having prepared more exercises to hand out worked really well, until it sort of backfired on me. Since we last met about 3 weeks ago, what I had in mind was quickly recap what we did last time, then do some revisions exercises to really remember what we did. My plan for the exercises was to have several for each concept, and move on to the next concept when everyone has completed at least one exercise. That way I had time to walk around the class and help students having trouble, while the more advanced students can still keep busy and learn more/get more familiar with the concepts. This worked very well at the beginning, until students kinda refused/didn't pay attention when I tried to move on because the competition spirit had kicked in and most of them wanted to finish all of the exercises (even working through break time to get it done!).

So once again we only went through half of what I had prepared, except this time it's more because of my unability to lead the class (it's also very awesome to see students so motivated to learn to program :D) than because I wasn't sure how much to fit in a session. I will need to control the schedule more if I want to get to some of the REALLY cool stuff (or at least get through all the basics!). I need to allocate more time to introduce new concepts and introduce them better. I suspect I kind of suck at explaining programming, and because I was looking forward too much to helping out students individually I kinda went too fast or just didn't try hard enough to explain in many different ways (it's really hard to explain programming concepts. I'm much better at helping people debug their programs, so far.)

3 hours is very damn long, but I don't have a lot of control over that for this group of students. I might try 1h15 / 30 mins break / 1h15 next time. What happened today was that after the initial burst of energy and working through the first break, students just started losing focus, being distracted and having a hard time getting interested. I'll have to write lesson plans that take this into account better.

Or if I get better at understanding what teenagers find cool I can sprinkle that toward the end ;) I completely underestimated how much of a killer "import random" would be. Suddenly their while loop with 'if' giving hints and 'if' limiting attempts, became a real game! (It was a "Guess the number" game.) That definitely woke people up. They were delighted to have made a small program they could actually use and play with. I was postponing introducing "random" because I wasn't sure it was a good time to introduce libraries. In the end I don't think whether it was a library or not mattered or registered. Maybe that just goes back to me not being great at explaining concepts, or maybe seeing really is just a hell of a lot better than talk.

I'm still processing today's session, to figure out where to improve in my preparations and the actual teaching. I think the handouts worked well as part of the recap. As usual, tips, advice and "ew can't believe you tried to teach it this way" very welcome! In the meantime, I'm moving next week and need to learn pygame so I can teach it in two or three weeks... :) Fun and busy!