At Mendeley we have one hackday a month. One day, every month, we can do whatever we want more or less related to our jobs, technologies, etc.
Some months ago I thought that it could be interesting to teach Python to the non-programmers (business, HR, etc.). I wanted them to understand what we do all day programming. I also wanted to practise my teaching and presentation skills. And learn how to plan a teaching day.
I think that the day was a success! (and tiring).
We had 7 students. I’m very happy that two colleagues volunteered to help me or else this would have been much harder. Probably I would have had to use another approach to teach.
Note that I tried to use Python Anywhere and I even wrote about it. I like but it’s not so easy to use for this situation. Python Anywhere can be used for many other things besides teaching (like for deploying webservices, share code). In July 2013 we found easier to use repl.it but this might change in the future.
How did we teach? Each student had a computer (pair programming was encouraged). Three teachers: one explaining, another typing the examples -so the students could see them, from the projector- and the third teacher helping confused students. We rotated the roles after each example.
The students had to copy the examples which could be challenging, since they were not used to copying code. We introduced: print statement, iterations, conditionals, lists, dictionaries. All of this happened from 10am to the lunch break, at 1pm.
After copying each example we had some challenges: could they do something based on that example? E.g. one example was asking the age and then saying “you can drink” or “you can’t drink”. The challenge could be that if the age is greater than 30 it should say “indeed!”. Or ask the year of birth instead of the age.
After lunch session: we couldn’t plan so well because we didn’t have time to plan. We gave them bigger challenges, we helped the students one-to-one by giving some ideas (what to do) and how to do it.
These students will not become programmers, so we didn’t focus the day to do anything too practical for their jobs but just to understand programming.
I had some very rewarding moments such as:
- When one of the students said “Holy shit! Now I understand why you guys need some much silence! This is mad, it’s just for a semicolon!”
- Another good moment: when something worked for a student and she had an amazing face (big eyes, surprised!). Good!
- All the planning. All the meetings with other teachers in a pub to learn what they do and how they do it, chatting with the other teachers to plan the day. Chatting with other colleagues to get suggestions. The thinking of “what and how to explain it” helped to understand the programming more.
An experience to repeat!