Teaching Python to high schoolers

Firstly, yes, I did read the resources section, thanks.

I am teaching beginning programming with Python to a high school class. We started with Warren Sande’s very good book “Hello World! Computer Programming for Kids and Other Beginners”, which is going very well. So well in fact that we will be done with it long before the end of the school year.

So, two-pronged question:

Is there another text that uses game programming to teach slightly more advanced Python concepts?


Would I be better off spending about six weeks having the class work on programming problems and projects? If so, do you know of a resource, such as an open curriculum?

I’d love to develop some curriculum myself to extend the process that starts with this book, and I may in the future. There is no time for that this year, however, so a second text or parts of an existing curriculum would be a great help.


maybe this free ebook could help: Invent Your Own Computer Games with Python

I found that learning a programming language meant I had to build stuff with what I did know to realise that I didn’t know it. I learned through all the unexpected results I got : )

So I’d go with the, have the kids Do Stuff for a while. They’re find the stuff they thought they understood but had it wrong; they’ll find new things used in Real Life; they’ll learn where to start for finding answers, new information, debugging, and all that.

Hm, but where to find nice beginner programs for them? I would ask at python-forum.org, but I can also tweet this and maybe more responses will come up. This area of the forums isn’t well-trodden : )

Pramkriuk’s link looks good, but it would be nice to have feedback from some pythonistas about it here. Here’s a positive review of it.

Check out “Python Programming for the Absolute Beginner”. The examples are games. You could introduce some more advanced concepts into the examples yourself if they are too easy.

If you’ve already finished an introductory text of some kind, I would recommend letting the students experiment on their own for awhile. Have them propose an idea for a program and then go about making it themselves. They will probably learn a lot more trying to solve an undefined problem (i.e. not a practice problem of some kind) and a lot of advanced concepts will be born naturally out of trying to solve these problems. Plus, it might be more engaging.

Beyond beginners:
Whitaker Blackall – Music and Sound FX for Video Games » My First Six Months of Programming: From Man-Rodent to Partyman