Ensuring each lesson is fun isn’t an afterthought or a nice bonus – it is a vital component for success. If your student isn’t having fun, they are not going to be motivated to learn. For a short period of time she may be able to stick it out (especially if her parents make her), but in the long run she will drop out before reaching her full potential.
The goal of Breakout Mentors is to generate a sustained interest in computer science by making it enjoyable for our students. Learning to program well isn’t something that anyone can hope to achieve in a single year. It takes incremental progress over the course of many years. Even then there is always something else that can be learned. If you are hoping for this kind of personal development you better find a way to make it enjoyable.
The good news? Unless you are doing something horribly wrong, programming should be way more fun than all those violin lessons you put Johnny through.
What is the Breakout Mentors Strategy for Fun?
Placing the psychology of happiness and all joking aside, we have some specific strategies for making each individual lesson fun. First we take into account each student’s interests. Do they like playing video games or would they rather watch a movie? If the answer is video games, start with Scratch. If movies, start with Alice. Even if the pupil is only mildly interested in video games, I would suggest starting with Scratch – games are more fun when you are the inventor!
There are several games or movies that are typically used as early programming projects. I won’t go into specific examples here, but want to point out that they can all be tweaked to appeal more to the particular student. For example, if you are building a game to move a character around a puzzle, should the character be a cute elephant or a football player? Each room could be a section of the zoo or a different sports challenge. Get creative and the student’s ideas will fill in the rest!
Challenging Yet Attainable
Is there anything worse than struggling on a problem and never quite solving it? With beginner programmers this is a definite possibility. The tendency of teachers is to provide the answer and hope that they remember it next time. I’m not suggesting this is wrong, just that you aren’t providing the optimal learning environment.
In fact, there just may be something worse than this – indefinitely toiling on unchallenging tasks. This leads to boredom and learning very little. There is a perfect balance – I call it challenging yet attainable. You know when you have achieved this goal when you let the student search for an answer on their own and it takes a finite amount of time to solve (anywhere from 5 to 30 seconds). From there keep increasing the difficulty. This brings us to the final step.
Focus on Output
You can absolutely nail the previous points in this article, but if you forget about this one you fail as a teacher. Provide projects that have an output that the student can be proud of at the end of the session. You don’t want the student to wonder what they actually accomplished in the last hour – you want a working piece of software that he can show off to his parents, siblings, and friends.
How do you accomplish this? Start with very short projects that have an infinite number of potential additional features. Half way through the lesson try to have a working program. From there you can perfect things. Add a score or timer. Add sounds and general polish. Some color and animations will spruce things up. These little features are fun and make the whole project feel like an even bigger accomplishment.
You Can Do It!
Teaching a kid to program is a worthwhile goal and with these guidelines hopefully it is attainable. Of course there is a certain amount of expertise gained with experience – future articles will explain the intricacies. If you live in the Bay Area, Breakout Mentors can provide this instruction for your kids – contact us to learn more. If not, please contact us anyway to learn how we can help.