Skip to content

Read more about How to Think Like a Computer Scientist: Learning with Python

How to Think Like a Computer Scientist: Learning with Python

(8 reviews)

Allen Downey, Franklin W. Olin College of Engineering

Jeff Elkner, Yorktown High School

Chris Meyers, Lane Community College

Copyright Year: 2008

Publisher: Green Tea Press

Language: English

Formats Available

Conditions of Use

Attribution Attribution


Learn more about reviews.

Reviewed by Isaac Wang, Assistant Professor, James Madison University on 11/26/22

This book is fairly comprehensive, touching on all the major topics of introductory Computer Science and the specifics of the Python language. Each chapter introduces relevant CS terms and provides a helpful glossary at the end of the chapter.... read more

Reviewed by Ning Weng, Professor, Southern Illinois University Carbondale on 3/25/21

I find that the book is quite comprehensive including both the Python language and also important data structures. The Python-specific glossaries are very helpful at the end of each chapter. Also, the Appendixes are essential for those who are new... read more

Reviewed by John Blackwood, Associate Professor, Umpqua Community College on 5/21/18

The text begins with by associating problem-solving with programming and then moves ahead into a detailed description of Python. From there, the text moves logically ahead to variables, functions, operators, etc. I found the end of chapter... read more

Reviewed by Alan Ford, Instructor, American Univeristy on 2/1/18

This text covers all fundamental elements of funtional programming using python. Chapters are well structured and concise enough to be approached in an orderly fashion. read more

Reviewed by Robert Dyer, Assistant Professor, Bowling Green State University on 2/1/18

The book provides a great introduction to Python programming. It reads at a level of a beginning programmer, though even novices should enjoy it. The basic syntax and semantics of Python are covered, including functions and objects. Some of the... read more

Reviewed by Norm Jones, Professor, Brigham Young University on 12/5/16

This book is designed for beginning programmers, but it still useful for readers with prior programming experience. The book starts out with a well-written discussion of algorithms, machine language, and other helpful foundational material for new... read more

Reviewed by Joe Gordon, Instructor, Portland Community College on 1/7/16

The book provides a good overview of Python syntax and basic functions, while also examining more complicated and potentially confusing concepts (e.g., abstract data types). Python-specific glossaries are provided at the end of each chapter, and... read more

Reviewed by Hongliang Xin, Assistant Professor, Virginia Tech on 6/10/15

The book covers the basics of programming in the Python language in a very readable fashion. The materials are organized reasonably well. The new concepts are always introduced to have a direct comparison to previous Chapters. The new terminology... read more

Table of Contents

  • 1 The way of the program
  • 2 Variables, expressions and statements
  • 3 Functions
  • 4 Conditionals and recursion
  • 5 Fruitful functions
  • 6 Iteration
  • 7 Strings
  • 8 Lists
  • 9 Tuples
  • 10 Dictionaries
  • 11 Files and exceptions
  • 12 Classes and objects
  • 13 Classes and functions
  • 14 Classes and methods
  • 15 Sets of objects
  • 16 Inheritance
  • 17 Linked lists
  • 18 Stacks
  • 19 Queues
  • 20 Trees
  • Appendix A: Debugging
  • Appendix B: Creating a new data type
  • Appendix C: Recommendations for further reading Index

Ancillary Material

Submit ancillary resource

About the Book

How to Think Like a Computer Scientist: Learning with Python is an introduction to programming using Python.

About the Contributors


Allen Downey is an American computer scientist, Professor of Computer Science at the Franklin W. Olin College of Engineering and writer of free textbooks. Downey received in 1989 his BS and in 1990 his MA, both in Civil Engineering from the Massachusetts Institute of Technology, and his PhD in Computer Science from the University of California at Berkeley in 1997. He started his career as Research Fellow in the San Diego Supercomputer Center in 1995. In 1997 he became Assistant Professor of Computer Science at Colby College, and in 2000 at Wellesley College. He was Research Fellow at Boston University in 2002 and Professor of Computer Science at the Franklin W. Olin College of Engineering since 2003. In 2009-2010 he was also Visiting Scientist at Google Inc.

Jeffrey Elkner is a high school math and computer science teacher at Yorktown High School in Arlington, Virginia.

Chris Meyers is a professional programmer who teaches a beginning Python class at Lane Community College in Eugene, Oregon.

Contribute to this Page

Suggest an edit to this book record