Beruflich Dokumente
Kultur Dokumente
net/publication/325590962
CITATIONS READS
0 2,198
1 author:
Dominique Orban
Polytechnique Montréal
74 PUBLICATIONS 1,837 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Dominique Orban on 06 June 2018.
ilation, Cambridge University Press, tools from other fields, e.g., machine learn-
2015. ing, compressed sensing, and data science,
[6] T. J. Sullivan, Introduction to Uncer- DMD becomes “innovated DMD.” Chapter
Downloaded 06/05/18 to 132.207.4.76. Redistribution subject to SIAM license or copyright; see http://www.siam.org/journals/ojsa.php
ules for numerical and symbolic compu- sprinkled with brief applications to topics
tations is available, and Python is used that are relevant to the computational sci-
extensively in the high-tech sector, space entist, such as Newton’s method and Fi-
Downloaded 06/05/18 to 132.207.4.76. Redistribution subject to SIAM license or copyright; see http://www.siam.org/journals/ojsa.php
agencies, film industry, education, govern- bonacci numbers. The brief Chapter 7 cov-
ment, and numerous other areas.1 Python ers Python exceptions and assertions, and
ranks first, according to the recent IEEE Chapter 8 covers object orientation, includ-
Spectrum ranking The Top 10 Programming ing classes and inheritance, and gives a brief
Languages,2 among 48 languages using 12 discussion on the concept of generators—
metrics, achieving the top four with the neat abstract objects over which we may
likes of C, C++, and Java. iterate. Books such as this one are precious
Countless online resources about the tools because all too often applied science
marriage of Python and (computational) curriculae merely cover a simple impera-
science at large are available, but rela- tive language without any discussion of how
tively few textbooks exist in comparison classic but powerful object-oriented con-
with other popular languages—those by cepts that computer scientists would take
Langtangen being among the most useful for granted can be useful in computational
so far, in my opinion, though with a def- applications. Overall, the discussion is light
inite scientific computing/numerical anal- but precise, and it is interspersed with anec-
ysis flavor. As a researcher in optimiza- dotes. There are no exercises or problems
tion and a Python programmer, Guttag’s at the end of chapters, but a number of
book struck a chord with me. That may “finger exercises” mixed into the text ask
be because I teach an operations research the reader to expand or improve on a piece
class in which the main concepts revolve of program just discussed. Those finger ex-
around basic complexity theory, some of ercises are doable in a reasonable amount of
the most common difficult problems en- time and allow the reader to deepen their
countered in operations research, and the understanding of both the Python language
Python language—a few of the main top- and the techniques being studied.
ics that Guttag addresses. It is not diffi- Chapter 6, inbetween the core language
cult to find good introductory textbooks and the more advanced constructs, is
about complexity, algorithms, and opera- about testing and debugging. Here, Gut-
tions research—I rely on Introduction to tag chooses to discuss one methodology for
Algorithms by Cormen et al. But pseudo- testing and one for debugging, rather than
code only gets you so far and it is not easy discussing the infrastructure that Python
to find a good reference about Python that makes available for doing so, such as the
combines it well with the theoretical con- unittest and doctest modules and the
cepts. With Guttag’s book, I feel that I standard Python debugger. While I under-
finally have a Python book to recommend stand the logic, I cannot help but feel that
that can be used alongside Introduction to the aversion to debuggers that I observe in
Algorithms. students and colleagues is due to a shortage
Guttag’s book is not aimed at a specific of textbooks or courses explaining how to
audience, but rather at “students with lit- use them effectively.
tle or no prior programming experience who Of course, much more could be said about
have a desire to understand computational Python than what is in the book, but the
approaches to problem solving.” The book reader “with little or no prior programming
begins, as most comparable books do, with experience” will surely be up and running
an introduction to the syntax and seman- after working through the first chapters.
tics of the Python language in Chapters 1 Among the topics that I did not find in
through 5. Guttag uses Python version 3.5, the book are multiple inheritance, deco-
but there are comments throughout the rators, properties, and metaprogramming.
book describing how to accomplish the same Arguably, all are somewhat advanced and
tasks with Python 2.7. The discussion is one might happily never need to use or know
1 https://www.python.org/about/success
2 https://spectrum.ieee.org/computing/software/the-2017-top-programming-languages