Allen Downey on the cool things about free books (1)

I love this story. Millions of people have learnt to program in Python using Think Python and its derivatives… not bad for a book that was written (the first time) in two weeks.

In January 1999 I was preparing to teach an introductory programming class in Java. I had taught it three times and I was getting frustrated. The failure rate in the class was too high and, even for students who succeeded, the overall level of achievement was too low.

One of the problems I saw was the books. They were too big, with too much unnecessary detail about Java, and not enough high-level guidance about how to program. And they all suffered from the trap door effect: they would start out easy, proceed gradually, and then somewhere around Chapter 5 the bottom would fall out. The students would get too much new material, too fast, and I would spend the rest of the semester picking up the pieces.

Two weeks before the first day of classes, I decided to write my own book. My goals were:

– Keep it short. It is better for students to read 10 pages than not read 50 pages.

– Be careful with vocabulary. I tried to minimize jargon and define each term at first use.

– Build gradually. To avoid trap doors, I took the most difficult topics and split them into a series of small steps.

– Focus on programming, not the programming language. I included the minimum useful subset of Java and left out the rest.

I needed a title, so on a whim I chose How to Think Like a Computer Scientist.

My first version was rough, but it worked. Students did the reading, and they understood enough that I could spend class time on the hard topics, the interesting topics and (most important) letting the students practice.

I released the book under the GNU Free Documentation License, which allows users to copy, modify, and distribute the book.

What happened next is the cool part. Jeff Elkner, a high school teacher in Virginia, adopted my book and translated it into Python. He sent me a copy of his translation, and I had the unusual experience of learning Python by reading my own book. As Green Tea Press, I published the first Python version in 2001.

Allen Downey – Think Python, 2nd Edition

See Also:

Creative Commons resources – open source literacy webinar
Building blocks and open source organisations
Hybrids (4): Intersections and you

I'd love to hear your thoughts and recommended resources...