Author(s) : Allen B. Downey, Jeffrey Elkner and Chris Meyers
Publication date : 2002
Publisher : Green Tea Press
This book was based on Allen Downey’s How to Think Like a Computer Scientist, a clear and helpful first-year computer science textbook, which was also released under GNU Free Documentation License. The book’s goal is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natural science.
Python was chosen to translate Allen’s original Java version because it provides a really nice balance between the practical and the conceptual. Since Python is interpreted, beginners can pick up the language and start doing neat things almost immediately without getting lost in the problems of compilation and linking. Furthermore, Python comes with a large library of modules that can be used to do all sorts of tasks ranging from web-programming to graphics. Having such a practical focus is a great way to engage students and it allows them to complete significant projects.
Python can also serve as an excellent foundation for introducing important computer science concepts. Since Python fully supports procedures and classes, students can be gradually introduced to topics such as procedural abstraction, data structures, and object-oriented programming — all of which are applicable to later courses on Java or C++. Python even borrows a number of features from functional programming languages and can be used to introduce concepts that would be covered in more detail in courses on Scheme and Lisp.
Using a very high-level language like Python allows a teacher to postpone talking about low-level details of the machine until students have the background that they need to better make sense of the details. Eventually, it allows the teacher to better focus on the actual topic at hand while allowing students to complete substantial class projects.