Learning to code, a syntax error at a time – #Python

I have conducted workshops for kids – Soldering basics, Introduction to 3D printing, Scratch and Python for tweens – in these last 2 years of our makerspace. I end up getting more insights on each of these topics, every single time. Following is my minutes-of-the-event, tips for planning a workshop and lessons learnt, all rolled out in one with no particular order of importance.

Introduction

I saw an unprecedented interest in the recently concluded “Python for tweens” workshop at reserved-bit – all thanks to Ruchi, a very enthusiastic supporter and mom to 9 year old Ved who is a maker at reserved-bit. We had 11 participants, of which 7 were girls(Yay!). The age-group was 9-12 years old and all the kids were raring to go. Most of them were well-versed with Scratch and had got along their own laptops. This was new for me, since I have seen only a maximum of 3 participants per workshop. We usually set up our raspberry-pi with a large monitor and keyboard for the participants who cant get their own laptops, this time however we had no requests for a system.

Ready with my marker pens, prints of handouts, beta-tests of my sample programs and the agenda firmly etched in my head, I was looking forward to this large batch. The makerspace is well-equipped with stationery, charging points, USB cables and power extension chords, so that is one thing off my checklist.

Pro-tip: Always arrange for all hardware at the venue a day in advance so that you don’t end up wasting any time on the day of the workshop. It will be a long day and you will appreciate being well rested before the madness begins.

Pro-tip: A workshop, in my opinion, is one where the participants end up doing “work”; Else it is just another class. Keeping this in mind, I usually design problems for the participants to solve or build as they follow through the day-long workshop. They should be able to carry something home that they can refer and better later with experience.

Pro-tip: I try and get an idea about the experience level of every participant at registration – things like do they know any other programming language, typing speed etc.

Agenda

Primary agenda is to introduce the participants to basics of programming – concepts such as loops, functions, conditional statements.

Plan: Begin at 10.30, lunch break at 1, resume at 2, hack on till 4.30. If time permits, do a quick and wacky micro:bit project.

I stress, a bit much, on understanding how a-l-g-o-r-i-t-h-m-s work at the beginning of the workshop because that according to me is the foundation of computational thinking. I use Code.org’s graph paper programming activity with the participants. This activity is also an icebreaker, as we do it in pairs.

We breezed through the interpreter, input and conditional statements. I squeeze in 2 activities – a number guessing game and basic calculator. We covered all this before our lunch break and also took infinite loo breaks and a snack break.

I felt the youngest ones slip off in the second half and lag behind. But then I introduced turtle graphics and then everyone lost their mind, collectively!

It was most rewarding to see one of the participants discover the wonder of loops, which reduced her code of 56 lines to just 4 lines. I can’t wait for her and others to grow to love the language more.

Unfortunately, we had no time to check-out the micro:bits and do something with it. I had a mood meter project planned for the makerspace with the kids. Anyway, there is always a next time.

Slide deck heavily inspired by Young coders tutorial, by Katie and Barbara.

Lessons learnt

  1. Be flexible with your lesson plans, especially with a young audience. You MUST be willing to think and come up with things-to-do on the fly. One gets better at this with experience.
  2. Be ready for a lot of noise, mostly excited banter, and absolute disregard for the instructor 🙂 As long as they are learning from each other or trying to outdo each other with their newly gained tricks,  enjoy! – that is more than half your job done.
  3. Take and ask for a lot of help with volunteers. I can’t thank Aditya enough for volunteering to help and getting Parthvi along.
  4. Different age-groups grasp concepts differently and have different capabilities. I realized during this workshop that the youngest ones were struggling with all the typing while the older ones – especially the 11+ year olds – could build on top of the basic exercises we solved as a class. For eg. one of them made a simple calculator immediately after learning about how to take input from user. Pro-tip: Next time,  club the 8-10 year olds separately from the 11-14 year olds – not only for their skill-set, but also attention-span.
  5. Young coders get hungry, very hungry 🙂 Be prepared to take more breaks than planned.
  6. I set the group up for errors in practice code. By the time the workshop ends, they are completely unafraid of errors or making mistakes. Keep the trying-correcting loop going, it is entertaining and most effective teaching tool.

Roll Call – the special 11 and others

Avya, Riya, Ifra, Sharmada, Shreya, Rewa, Tara, Aadit, Mishu, Ved, Akshit – Thank you for all the enthusiasm. Aditya and Parthvi – thank you for allllll the help, you both are amazing. Parents/guardians – especially Ruchi – a big thank you for all the help, patience and trusting your precious ones with reserved-bit. Thank you Sid for all the help with setup and more.

Hope the time the batch spent at reserved-bit has been valuable and keeps their interest in #Python alive.

PS: We are in discussion over how to take this workshop ahead and hopefully we can come up with an update soon.