I have given introductory Python talks and workshops before. But I haven’t taken the time to think about how to keep students interested when a session lasts for many hours.
These are my observations on ways to engage the attention of students in an introductory course.
Introduction to Python talk
A few weeks before, I was invited to hold a workshop to teach students about basic Python in the 8th ICT Youth Convention. They had regular speakers in their previous conventions but opted for completely new speakers this time around.
I took the speaking engagement since I haven’t been to Ozamiz and I was also delighted to have the opportunity to teach Python to students.
While I was holding the session, I kept notes on my thoughts about the session. The writeup below is what I learned after going through my notes.
Things I learned from doing an introductory programming language talk
Show real world applications of the programming language
A talk shouldn’t be like reciting text from a book. The speaker shouldn’t be a robot, spitting out syntax rules all day. The attendees attention would quickly waiver with this approach.
When the morning part of my talk came to a close, I noticed that the students mental capacity to pay attention was drained. They were raring to go eat lunch. It is no surprise that they weren’t paying attention to the Python conditional syntax rule that I was explaining.
I want the attendees to learn the foundational syntax properly so I deferred the talk to something else.
I demonstrated a real world example of how Python is being. I showed them how to setup and create a minimal website using the Django web development framework.
Since the attendees were students with little to no exposure to web development, they were excited in how easy it was to create websites. Some even lamented why it took me so long to show them the practical uses of Python.
It just goes to show that it is easier to get the attention of people when you can show them something that they can directly use. Just imagine their wonder if I showed them something like data visualization or creating a Twitter bot using Python.
Diversify your approach to lecturing
Attendees usually only retain small portion of the knowledge they learned on talking engagements. This is especially true if the event is more like a lecture rather than a workshop.
From what I found, the best course of action to make attendees retain concepts is to follow the steps below.
- Give a concise example of the concept at hand
Examples should be concise. It should not include the various ways of doing one thing. Just show the most common or preferred way of doing things.
- Have a short exercise about it
The best way to learn is to actually do it. Put up a short exercise which your target audience can can reasonably finish in 5-15 minutes.
- Expand on what possibilities the concept brings
Learning the basics is great but that is not enough to hook them into the language. You must approach teaching an introductory language course like a salesman trying to sell something. You must hightlight its strengths. Show them the cool stuff that you can do with the language.
If most attendees show difficulty solving your given exercises, code the solution with them
It is frustrating for attendees to be stuck on a fundamental concept and be left behind while the talk or workshop moves on.
If you see them having difficulty solving the exercises, then code the solution with them. Ask for their input and go with the direction that they want to go. Guide them towards the right answer.
Just make sure that you aren’t spoonfeeding them. Give them the time to think the solution for themselves. Show them hints on the correct answer.
There might be more than one answer to problem. It’s fine if they arrive with an inelegant answer. If they do, accept it but point them to a clean and elegant alternative solution.
Assume nothing about the level of knowledge of the attendees
When I planned my talk for this convention, I made the mistake of assuming that the attendees are already familiar with Object Oriented Programming concepts. Because of this, I had to start on explaining OOP concepts before I could teach the concept of classes. I wasn’t able to completely introduce all concepts in my slides because the time has been used up.
The take away from this is that your talk would be much better if you know about what your audience knows. Granted, we might not always have access to this information but it is a worth your while to research about it before a talk.
Throw an icebreaker once in a while
Even with the best of intentions, people do get bored listening to a speaker no matter how interesting the subject is.
Make sure that you throw out some joke, pun or humerous anecdote once in a while. It will allow the students to relax and you will regain their attention back.
The most important thing about giving an introductory programming talk is not to make students master the basics of the language. Rather, it is to cultivate interest so that they will learn all about the programming language by themselves.