PrefaceThe strange history of this bookIn January 1999 I was preparing to teach an introductory programming class in Java. I hadtaught it three times and I was getting frustrated. The failure rate in the class was too highand, 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 unnecessarydetail about Java, and not enough high-level guidance about how to program. And they allsuffered from the trap door effect: they would start out easy, proceed gradually, and thensomewhere around Chapter 5 the bottom would fall out. The students would get too muchnew 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 the jargon and define each term atfirst use.• Build gradually. To avoid trap doors, I took the most difficult topics and split theminto a series of small steps.• Focus on programming, not the programming language. I included the minimumuseful subset of Java and left out the rest.I needed a title, so on a whim I choseHow to Think Like a Computer Scientist.My first version was rough, but it worked. Students did the reading, and they understoodenough that I could spend class time on the hard topics, the interesting topics and (mostimportant) letting the students practice.I released the book under the GNU Free Documentation License, which allows users tocopy, modify, and distribute the book.What happened next is the cool part. Jeff Elkner, a high school teacher in Virginia, adoptedmy book and translated it into Python. He sent me a copy of his translation, and I had theunusual experience of learning Python by reading my own book. As Green Tea Press, Ipublished the first Python version in 2001.In 2003 I started teaching at Olin College and I got to teach Python for the first time. Thecontrast with Java was striking. Students struggled less, learned more, worked on moreinteresting projects, and generally had a lot more fun.

This preview
has intentionally blurred sections.
Sign up to view the full version.

viChapter 0. PrefaceOver the last nine years I continued to develop the book, correcting errors, improving someof the examples and adding material, especially exercises.

This is the end of the preview.
Sign up
to access the rest of the document.

What students are saying

As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

Kiran
Temple University Fox School of Business ‘17, Course Hero Intern

I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

Dana
University of Pennsylvania ‘17, Course Hero Intern

The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.