From the book Getting Started with Processing:
Programming courses typically focus on structure and theory first. Anything visual—an interface, an animation—is considered a dessert to be enjoyed only after finishing your vegetables, usually several weeks of studying algorithms and methods. Over the years, we have watched many friends try to take such courses and drop out after the first lecture or after a long, frustrating night before the first assignment deadline. What initial curiosity they had about making the computer work for them was lost because they couldn’t see a path from what they had to learn first to what they wanted to create.
I like this approach. I am going to experiment with this in the next class. I have seen other similar approaches.
- Start with some skeleton code that works and displays something. Let the learners fill in a few refinements to change the visual behavior. Incrementally increase the complexity and introduce more language features in context. This is how the Stanford Java course starts.
- Start with building a simple game with the minimal language constructs. Keep modifying the game and with each change introduce a few new constructs.
- Start with a creator of some kind. Let them learners create stories and sequences and animations. Use code visually in blocks. This is how MIT Scratch works.
Every one of these approaches have one thing in common. They keep the entry barrier low and hope that students get interested to learn more.
How did you learn programming? What got you hooked?
One of the reasons I started Resources for Computer Teachers (a Facebook group) is to share such ideas. It was inspired by CSTA. If you teach computer programming in your school or college or company, consider joining and sharing your thoughts.