Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
A beginners guide to Python 3 programming
Hunt J., Springer International Publishing, New York, NY, 2019. 433 pp.  Type: Book (978-3-030202-89-7)
Date Reviewed: Aug 5 2021

This comprehensive, well-written book covers the programming language Python in great depth--likely more than the “beginner” suggested in the title needs. Indeed, novice programmers who work their way through the entire book (37 chapters) will gain substantial skills in programming, as well as exposure to a number of significant programming language topics such as object-oriented programming and functional programming.

The opening two chapters cover the downloading and installation of a Python 3 environment and the execution of the reader’s first Python program. These are valuable chapters for novices who need guidance on suitable programming platforms and interpreters available for use, which are often overlooked in other textbooks. The challenge with the chapters will be their currency and accuracy over time, as websites change and are maintained. A link to a website maintained by the author, one that holds the latest information and links to resources, would have been a helpful addition to support the textbook and its readers.

Chapters 3 to 13 cover what one typically expects in a book on programming: a look at a first Python program, strings, numbers, Booleans, selection, iteration, recursion, functions, scope and lifetime of variables, structured analysis, and complete worked examples to emphasize the points made and to bring the concepts together. Generally, these 120-plus pages provide examples to the reader, but the brief nature of the coverage means that concepts such as method calls are glossed over in this early section, which may cause difficulties for novice programmers.

While it can be argued that these first 13 chapters cover basic concepts in a manner not too different from most introductory textbooks on Python, the next three chapters (13 through 15) are devoted to functional programming, including higher-order functions and curried functions. These 25 pages are likely to be challenging for novices being introduced to programming for the first time in the context of the proceeding chapters--are these readers ready for lambda expressions and closures?

Chapters 17 to 23 focus on object-oriented concepts, including classes, static behavior and methods, class inheritance, operator overloading, and properties. The coverage of material is technically correct, but the depth of examples, the discussion of the associated semantics, and a clear explanation of the observable behavior of executing programs is limited. The way in which the material is presented is better suited to a student with some programming experience than to a complete novice.

Chapter 24 covers error and exception handling, and chapter 25 explores Python modules and packages. These chapters are well written and cover the essentials well.

Chapters 26 and 27 return to the object-oriented paradigm with a focus on abstract classes, protocols, polymorphism, and descriptors. Novice programmers often find these topics challenging, so additional examples and more depth in explaining what is taking place as a program executes would have been beneficial.

Chapters 28 to 30 are ambitious in covering topics that are typically regarded as advanced and often not covered in a first programming class. They address monkey patching and attribute lookup, decorators, iterators, generators, and coroutines. The typical novice programmer has insufficient experience in programming to see the value of such constructs at this stage, and the coverage of the material in the book is too brief. If the goal was to make the reader aware of the existence of advanced topics, then it was successful; but if the objective was to give them a working knowledge of the topics, and then expect a novice programmer to be able to employ them appropriately, then it has failed.

Chapters 31 to 35 return to a focus on data types and data abstractions. They examine collections, tuples, lists, sets, dictionaries, and collection-related modules. Earlier coverage of these data types would have permitted interesting examples, especially complete worked examples, to help support and explain some of the more complex topics addressed in earlier chapters.

Chapter 36 focuses on map, filter, and reduce, and chapter 37 ends the book with a complete example of the tic-tac-toe game. Unfortunately, the final chapter does not utilize the bulk of the topics covered in the middle of the book, and so novice programmers may never see some of the advanced topics utilized in a meaningful way.

In summary, this is a comprehensive book. It covers a lot of territory. However, its attempt to be comprehensive while not being encyclopedic in size has resulted in a textbook that may scare off novice programmers. It is better suited for those with previous programming experience and an awareness of programming paradigms and concepts.

More reviews about this item: Amazon

Reviewer:  Michael Oudshoorn Review #: CR147326 (2112-0283)
Bookmark and Share
 
Python (D.3.2 ... )
 
 
Multiparadigm Languages (D.3.2 ... )
 
 
Language Constructs and Features (D.3.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Python": Date
DevOps in Python: infrastructure as Python
Zadka M.,  Apress, New York, NY, 2019. 188 pp. Type: Book (978-1-484244-32-6)
Dec 23 2021
Competitive programming in Python: 128 algorithms to develop your coding skills
Dürr C., Vie J.,  Cambridge University Press, Cambridge, UK, 2021. 264 pp. Type: Book (978-1-108716-82-6)
Dec 9 2021
 Programming for computations - Python (2nd ed.)
Linge S., Langtangen H.,  Springer International Publishing, New York, NY, 2020. 232 pp. Type: Book (978-3-319324-27-2)
Dec 7 2021
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright © 2000-2022 ThinkLoud, Inc.
Terms of Use
| Privacy Policy