Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Introduction to computation and programming using Python : with application to understanding data
Guttag J., The MIT Press, Cambridge, MA, 2016. 472 pp. Type: Book (978-0-262529-62-4)
Date Reviewed: Dec 14 2016

Welcome to the 21st century. Introduction to computation and programming using Python is meant for a two-semester introductory computer science sequence, but it contains only 445 pages with no programming exercises, tips, hints, or review questions other than occasional finger exercises. The publisher’s site provides no exams or PowerPoint slides for instructors, only the Python code from the text. But there are links to online courses available from edX or MITOpenCourseWare. The two edX courses provide video lectures by the text’s author, John Guttag, a distinguished MIT professor, in-depth programming assignments that may be submitted up to 30 times, quizzes, and exams. A student may audit, or may earn a certificate for $49 or course credit from Charter Oak State College, Connecticut’s public online college, for $300. That is formidable competition.

Rather than being the main vehicle for presenting the material, this text is supplementary to the online courses. Nevertheless, it is a valuable resource for independent study and for its modern selection of topics. The second edition includes five new chapters. The emphasis is on computation with the intended audience being science, engineering, and computer science students expected to integrate powerful computational tools in their disciplines. The 185 pages of the first 11 chapters are covered in the first semester with about half on Python and the rest including testing, debugging, exceptions, object-oriented programming, algorithmic complexity, simple sorting and searching, and plotting using PyLab. No programming or Python background is assumed. The code examples are good and run. The chapters introducing complexity and sorting and searching clearly show at an introductory level the significance of different growth rates.

The remaining chapters, mostly covered in the second course, intentionally diverge from the typical data structures courses at this level. Libraries implement excellent algorithms, so while understanding is important, implementation takes time better spent on understanding data. After knapsack and graph optimization, and dynamic programming, the remaining chapters cover stochastic processes and an introduction to machine learning. The emphasis is really on understanding data with many examples of how easy it is to draw false conclusions. Monte Carlo simulation, hypothesis testing, sampling, and Bayesian statistics are introduced. Basic probability is covered, but the emphasis is on the understanding of data not the derivation of probability distributions, which the library provides. For example, the binomial formula is stated without much explanation, as are the normal distribution and others. The machine learning chapters introduce feature analysis, clustering, and classification.

There are the occasional errors. In Figure 16.6 for estimating π, the 3 in the throwNeedles function should be a 4. The legend in the left part of Figure 17.8 is only correct if the first legend function has the parameter numpoints=1.

In sum, this text takes into account the development of more powerful computers and libraries. It aims to give the student the ability to use these tools intelligently and productively.

More reviews about this item: Amazon

Reviewer:  Arthur Gittleman Review #: CR144966 (1703-0167)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
General (D.1.0 )
 
 
Python (D.3.2 ... )
 
 
Reference (A.2 )
 
Would you recommend this review?
yes
no
Other reviews under "General": Date
Problems in programming
Vitek A., Tvrdy I., Reinhardt R., Mohar B. (ed), Martinec M., Dolenc T., Batagelj V. (ed), John Wiley & Sons, Inc., New York, NY, 1991. Type: Book (9780471930174)
Aug 1 1992
KNOs: KNowledge acquisition, dissemination, and manipulation Objects
Tsichritzis D., Fiume E., Gibbs S., Nierstrasz O. ACM Transactions on Information Systems 5(1): 96-112, 1987. Type: Article
Nov 1 1987
Programmer perceptions of productivity and programming tools
Hanson S. (ed), Rosinski R. Communications of the ACM 28(2): 180-189, 1985. Type: Article
Jul 1 1985
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy