How to Think About Algorithms

How to Think About Algorithms

Publisher
Cambridge University Press
Published
2008
Pages
—
ISBN-13
9780521614108
Format
print
Language
English
Book Summary
How to Think About Algorithms by Jeff Edmonds is a textbook that teaches algorithmic problem-solving through a structured, proof-based approach. It covers iteration, recursion, greedy methods, dynamic programming, and NP-completeness, emphasizing how to derive and verify algorithms rather than just memorize them. Ideal for computer science students who want a deeper conceptual understanding of algorithm design and analysis.
This book is not available
Best buying and renting options — totals include estimated shipping when seller shipping is unavailable
Store Condition Deals & Coupons Price Est. Shipping Total Buy
About How to Think About Algorithms

How to Think About Algorithms by Jeff Edmonds is a rigorous yet accessible textbook that shifts the focus from rote memorization of algorithms to the development of algorithmic thinking. The book is organized around fundamental techniques—iterative algorithms, recursion, greedy algorithms, dynamic programming, and graph algorithms—and uses a consistent framework of preconditions, postconditions, loop invariants, and termination proofs to help readers reason about correctness and efficiency. Edmonds emphasizes the 'why' behind each algorithm, guiding students through the process of deriving solutions to computational problems. The text includes numerous examples, exercises, and proofs, making it suitable for a university-level algorithms course. It bridges the gap between intuitive problem-solving and formal analysis, equipping readers with tools to tackle unfamiliar problems and understand the limits of computation, including NP-completeness.

Who should read How to Think About Algorithms?

This book is ideal for undergraduate and graduate computer science students taking an algorithms course, as well as self-taught programmers who want a deeper, proof-oriented understanding of algorithm design. Instructors seeking a textbook that emphasizes conceptual reasoning over cookbook recipes will find it valuable. It also suits candidates preparing for technical interviews who need to articulate the reasoning behind algorithmic choices. Readers should have basic programming experience and familiarity with discrete mathematics.

Pros & Cons
Pros
  • ✓ Emphasizes conceptual understanding and proof techniques rather than memorization
  • ✓ Consistent framework of pre/postconditions and invariants builds rigorous reasoning
  • ✓ Covers core topics including iteration, recursion, greedy, dynamic programming, and NP-completeness
  • ✓ Numerous exercises and examples reinforce learning
  • ✓ Clear explanations make complex ideas accessible to motivated students
Cons
  • ✗ May be too theoretical for readers seeking quick practical implementations
  • ✗ Assumes prior knowledge of discrete math and basic programming
  • ✗ Some proofs and formalisms can be dense for beginners
  • ✗ Limited coverage of advanced or specialized algorithmic topics
  • ✗ Not a reference for specific programming languages or libraries
Frequently asked questions
Is this book suitable for beginners in algorithms?
It is best for readers with some prior exposure to programming and discrete mathematics. Complete beginners may find the formal approach challenging, but motivated learners can benefit from the clear explanations.
Does the book include code implementations?
The book focuses on pseudocode and conceptual reasoning rather than language-specific code. It emphasizes algorithm design and proof techniques over implementation details.
What topics are covered?
Key topics include iterative algorithms, recursion, greedy algorithms, dynamic programming, graph algorithms, and NP-completeness, with a strong emphasis on correctness proofs and efficiency analysis.
Is it useful for interview preparation?
Yes, it helps develop the reasoning skills needed to explain algorithmic choices, which is valuable in technical interviews. However, it does not provide a large collection of interview-style problems.
How does it differ from CLRS (Introduction to Algorithms)?
This book is more focused on teaching a structured way of thinking about algorithm design and proofs, while CLRS is a comprehensive reference. Edmonds' text is more pedagogical and less encyclopedic.

At Windsorbooks, we compare prices from trusted sellers so you can buy, rent, or sell textbooks at the best total price — shipping included.

As an Amazon Associate, Windsorbooks.com may earn a small commission on qualifying purchases.