School holidays gives another opportunity to run outreach events which are longer than the usual time I can get at schools. This time I had an event going at Hutt City libraries in the first week in Electronics and Robotics, while in the second week, I did a Game development workshop at suburban school.

The (intro to) Electronics and Robotics workshop was aimed at year 7 and up students, 2 hour long and we (Jack Penman and I) repeated the session twice in the day with new students. Jack, with his ready to go Jackbord teaching unit, was onto running electronics basics, creating circuits, talking resistors and capacitors. At the other side of the room, I had my LEGO rovers (EV3 kits made into lunar rovers) and iPads ready to go along with the replica MarsRover model (https://opensourcerover.jpl.nasa.gov/) that we have built at University for research purposes. The model gives plenty of opportunities to discuss the Perseverance mission and the challenges it would have faced to get to Mars. Following the discussion, I usually setup, with whatever props are available like chairs and tables, a little course in the room for the mini rovers to navigate through.
The students code the course out using the drag-n-drop EV3 programming app on the iPads. Once they get a hang of it, I usually change the course layout to a more challenging layout which gives the opportunity to introduce loops. I never usually have time in these short sessions to teach about sensors, but some students are always curious and want to know about the extensions added on.
The Game development workshop was over 3 days and I was expecting older students to attend( as it was advertised to be using Python). However to my surprise, we had as little as 10 year old students in the 15 student group that did the workshop. This led to a slight change in the schedule as I had to start with basics of Python programming on day 1. Luckily I have a set of lessons and examples I had made in my classroom teaching days for reference (https://github.com/pravin-vaz/Python-Lessons) They are not adhering to any PEP standards etc. I just made them for quick reference. We made some simple calculators and reaction time game to get students a hang of the syntax and commands.
Python and Pygame issues
Despite the general consensus of the Digital technology teaching community that Python is ‘the’ language to teach after ‘drag-n-drop’; installing and running Python and Python modules is not made for students. For example, Macs come with version 2.7 and there were 4 students with Macbooks. I wasted precious time working out that Python2.7 shouldn’t be upgraded as the system depends on it and the Pygame module would just not go into the site packages of the new Python install. I had to manually copy and paste it. Windows users were fine as long as they had the Admin details to install software. Another issue was running the pip command. Pip by default (I think) is only installed on the newer versions of Python and not the older one. Once we got past these teething issues, I had a template of a car racing game ready to go for the students. It just included blocks of rectangles driving in lanes and by the end of day 3, I was hoping that students will create their own sprites and replace them, add obstacles, scores and lives. Probably a bit too much to ask, but we got most of them done.
I do not recommend Pygame for younger students. There are much better platforms like Gamefroot.com to make games and if they wanted to expand their coding abilities, it provides the opportunity using its custom Blockly based platform (or Javascript too). Pygame would be more suited for senior students, well versed in Python programming. There is a community and open source game download page for Pygame should they choose to pursue it (https://www.pygame.org/tags/all) .