ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Introduction to Programming in Python: An Interdisciplinary Approach
Robert Sedgewick, Kevin Wayne and Robert Dondero
Addison-Wesley Professional; 1 edition (2015)
Barry Nichols
Appeared in:

Reviewed: January 2017

This book is very ambitious, attempting to teach programming to first year undergraduates of any scientific discipline. It not only aims to introduce basic programming concepts, but also recursion, object oriented programming and the fundamentals of algorithms and data structures. I believe this would be challenging for a computer science student within an introductory course let alone a student from another subject, especially if using this book for self study in addition to their own workload. However, this book generally explains these concepts well and contains some interesting problems from a range of application areas, including mathematics; physics and biology.

A problem encountered by most beginner Python programmers is that Python 2 is still widely used alongside Python 3. The two versions having significant differences, such as print being changed to a function and the behaviour of the division operator on two integers. The authors go out of their way to ensure this book is compatible with both versions. Unfortunately, the approach they take is to write their own "std" modules which the student must download and use to accomplish even basic tasks, without being clearly instructed to do so. Even the hello world program requires the module "stdio" for the function "writeln". This could have been avoided by using the future module. This standard Python 2 module allows the use of the print function and can change the division operator to be equivalent to Python 3. The standard Python functions, i.e. without using the authors modules, are not discussed. This continues throughout the book, even where the module functions simply call built-in functions.

If this book was written using Python libraries; built-in data types; and, where required, common external libraries such as NumPy and SciPy it would be a very good introduction to programming in Python. As it is this book is a good introduction to several programming topics in the authors non-standard version of Python, after which the student must invest more time and effort to learn the actual Python programming language.