Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your email address or mobile phone number.
Python Algorithms: Mastering Basic Algorithms in the Python Language (Expert's Voice in Open Source) 2010th Edition
Use the Amazon App to scan ISBNs and compare prices.
There is a newer edition of this item:
Frequently Bought Together
Customers Who Bought This Item Also Bought
More About the Author
Top Customer Reviews
- Very clear explanation of a complex subject.
- Each chapter builds upon the previous chapters so that this is more like a class than a reference manual.
- More approachable that the Sedgewick and Cormen.
- The almost constant parenthetical phrases distract from the text and quickly become irritating. After page 20 I just skipped them and found that I understood the concepts more quickly.
- The use of single letter variables in the code examples makes it more difficult to understand the structure of a new concept. When there are several of them, it can become confusing. (See page 207.) Why not just use descriptive variable names?
There are sections that make note of how to implement certain algorithms using Python specific features, and this is very helpful, but this is first and foremost a book on algorithmic theory that happens to use Python for code examples.
His habit of using single character variables (lower and upper case) obfuscates all of his code. This incredibly poor naming convention makes me wonder where this author learned to code.
He writes a function and does not provide accompanying data to create a test of the function. A developer is left to wonder how this function will work in the real world.
While the accompanying source code does contain tests, they are just as difficult to read as the book version. These tests contain few pertinent comments and one is left wondering why any one test exists. The test are certainly not unit tests since they don't apparently cover corner cases. No industrial strength QA would pass this code. And certainly no code review would allow this code into their code base.
This leaves a reader struggling to follow coding examples since he must create his own data to explore the various algorithms.
I'll allow a 4 for material and a 0 for user accessibility. The overall rating is thus a 2.
The author also takes great pains to explain Python code within the book, which not only models well-written code to the reader but also takes advantage of eliminating pseudo-code with concrete examples of the Python language. The use of citations and notes on external sources within the book made it possible for me to independently research topics on the web. For more hands-on learners, there are exercises at the end of each chapter. This text could easily be the basis for a college-level class on Python and algorithm theory/development. All in all, a great text and a must-have for the Python programmer!
algorithms, with all illustrative code written in Python. There is a
strong emphasis on graph algorithms, perhaps reflecting a predilection
of the author. Since I like graphs too I cannot complain about that.
Beyond the actual implementations, the book aims for extra Python
relevance by including asides on Python internals (CPython, to be
precise). I was pleasantly surprised by the ones included, as they go
beyond the trivial. Given the prevalence of graph algorithms heaps (or
priority queues) had to play a central role, and the aside on Python's
heapq module is perhaps the most important of them. I wish there were
more of the Pythonic asides, though.
Even so, the book makes clear how Python's carefully balanced design
enables beautiful, concise implementations. There is almost no low
level busy-work code, the algorithms practically read themselves. And
they are commented too just in case you find a piece difficult to
There's more to algorithms then the implementations, though: one has to
address correctness proofs and efficiency properties. The book
certainly doesn't neglect these, but if there's one clear downside (for
this reader) it is this: too much English, too few symbols. The author
goes to great lengths to use informal language instead of "math" when
discussing correctness and efficiency, and in the end I think he
overdoes it. Here's an example from Chapter 7, on greedy algorithms,
discussing the scheduling problem with hard deadlines, discrete time
and tasks of equal length:
"The last question then becomes, does S' have the same profit as S?Read more ›
also by Apress. So warning: this is not for beginners. Especially if you are
just starting with both Python and algorithms. Experienced algorists would
probably find their way through the book though.
So much for apologies, to use Dijsktra's words. This has been my hardest Apress
so far and second reading is in order. Oh and next time, I won't be skipping
the exercices. I advise you do the same. Some are very necessary if you want to
have a good grasp of all the algorithms covered.
Professor and author Magnus Lie Hetland is an experienced algorist and Python
coder. He promises in Chapter 1 (Introduction) to make you master basic
algorithms with Python and teach you how to create new ones. *cough* I think I
missed that latter part in the book. I only gathered that we can transform few
basic algorithms and apply them to new problems, especially graph algorithms.
It is thus important that you dont skip Chapter 5 (Traversal: The Skeleton Key
of Algorithmics) where I think the basics are found. No really, you don't want
to skip it. And while we are at it, you don't want to skip Chapter 4 (Induction
and Recursion... and Reduction) either. The idea of using reduction when
solving new problems is discussed in full in that chapter.
The last chapter I want to mention is Chapter 11 [Hard Problems and (Limited)
Sloppiness]. Weird but important terms used by experienced algorists are
discussed. I am talking about: solvable, tractable, P, NP, NPC, NP-hard, SAT,
The chapters I have not mentioned were difficult for me to understand. I wont
say more about them.Read more ›
Most Recent Customer Reviews
There are lots of books on Python. They usually go into language specifics or into very basic programming from a beginner’s point of view. Read morePublished 10 months ago by rpv
Someone else appropriately posted that this book is way too verbose for its intended purpose and I whole heartedly agree. Read morePublished 13 months ago by Brooklyn_Perl
For those who want to learn algorithm but only know some scripting languages or some sorts, this is definitely ideal!Published 21 months ago by Shirly Tao
This is probably the most verbose book in Computer Science I have ever read. What annoyed me about the writing style is that the book keeps talking and talking and going around the... Read morePublished on May 7, 2012 by peluk
I have the iPad kindle version. It's a mess. No Kindle menu table of contents (though you can bookmark the TOC page), and more importantly, many listings are hopelessly scrambled... Read morePublished on November 13, 2011 by Reeftide
As a self taught python programmer, I purchased this book in hopes of fleshing out my knowledge of Algorithms.
There are tons of very important concepts covered in this book. Read more
This is a very good and refreshing book - that brings together Algorithms and Python programming together very well. Read morePublished on June 5, 2011 by Sumit Pal