Teaching Python to 15 year olds

July 14, 2020

Last term at uni, before the whole world was forced into lockdown, I was a teaching assistant at The Coopers' Company and Coborn School in Upminster. I wanted to write about my experience teaching, what techniques and resources I used, and some of the things I learned.

As a quick sidenote, I gave a presentation and wrote a detailed report, which this article will be summarising, if you'd like to read more! (They're both anonymised for GDPR compliance). I also have all of the resources mentioned linked on my me page under 'teaching'. (I'm working on making these sections linkable currently!)

So back to it! I taught the basics of Python Programming to a class of Year 10s for 6 weeks. They already had a basic knowledge of Python, so I was tasked with expanding upon this, by teaching them topics such as 2D Arrays, For and While Loops, Functions and Built-in Methods.

I started my first few sessions observing the class to get a few ideas on teaching styles, and got to work planning. I wanted to follow an iterative technique, where I'd plan a lesson, execute it, gather feedback, and use this to adapt the next lesson.

I started off with a lesson on Arrays, where I gave a presentation followed by some worksheets we worked through. I quickly learned that the lecture-worksheet style of teaching didn't work well, since students would forget things I taught pretty quickly.

So, the next week, I broke up my lecture into topics, and interspersed questions. This worked better, but I found it hard to regain their attention for the presentations. This meant that the next week, I shortened my presentations to only the key information, and focused on giving more help to those student who needed it when doing the worksheets.

One big problem I was facing was that students didn't have enough motivation to do the work - it wasn't fun enough! I spoke to some of them, and they suggested introducing competition, like in Kahoot, would make them engage more.

Therefore, over the week in between, I set up a system which could receive answers sent from the students, and would tell them how well their code worked, giving them points, and would show it on a leaderboard. I made this using Google Colab and Heroku Dyno, and more information on how it worked can be found in my report.

I'd now gotten them much more engaged, but had made the content too hard! So the next week, I made the questions much easier, and then get harder as the worksheet progressed, to cater towards the more capable students. Finally, I found a teaching technique which worked for this class!

Obviously it took a few weeks, but I think by using an iterative method of changing my style based on feedback each week, I got to a good teaching structure pretty quickly.

So some of my biggest challenges were:

  • Keeping Students Engaged! - I tried many things to engage the kids, such as easier questions, but competition was the biggest motivator which got them to participate
  • Feedback - Getting good feedback started as a challenge, and using forms isn't the best way to get info from teens, so I'd just observe and chat with them to see what was working and what wasn't
  • Differing Skill Levels - Initially, I struggles to cater to the whole class, but eventually it all came down to getting feedback, and also just practice making questions

If I had to give three main things I learned, each in one sentence, I'd say:

  1. Interested students learn better
  2. You can’t make everyone passionate about CS
  3. Teaching is hard

I had a great time teaching, and it's something I love to do, and would love to keep doing / help others to start out!

I did a lot more than just teaching this course whilst at Coopers, and if you're interested or have questions then please reach out or read my report!

Enjoyed this article? Why not share it...