Synopses & Reviews
It is difficult for many students to master basic concepts in computer science and programming. A large portion of the confusion can be blamed on the complexity of the tools and materials that are traditionally used to teach CS1 and CS2. This textbook was written with a single overarching goal: to present the core concepts of computer science as simply as possible without being simplistic.
Perhaps the greatest source of complexity in introductory CS courses is the use of traditional systems languages such as C++ and Java. These languages evolved to solve problems that arise in large-scale programming where the primary emphasis is on structure and discipline. They were not designed to make writing small or medium-scale programs easy. The recent rise in popularity (in industry, if not necessarily in academia) of scripting languages, such Python, suggests an alternative. Python is flexible and makes experimentation easy. Solutions to simple problems are simply and elegantly expressed. Python is a great laboratory for the neophyte programmer.
Python is a natural choice as a first programming language because its basic structures are very clean and well-designed. The concepts carry over directly to subsequent study of systems languages such as Java and C++. Python is a real-world language that is feely available for virtually every programming platform and comes standard with its own easy-to-use integrated programming environment. Python allows students to focus on the primary skills of algorithmic thinking and program design without getting bogged down in arcane language details.