Home | Amazing | Today | Publishers | Account | Support
How to Think About Algorithms

Buy
There are many algorithm texts that provide lots of well-polished code and proofs of correctness. This book is not one of them. Instead, this book presents insights, notations, and analogies to help the novice describe and think about algorithms like an expert. By looking at both the big picture and easy step-by-step methods for developing algorithms, the author helps students avoid the common pitfalls. He stresses paradigms such as loop invariants and recursion to unify a huge range of algorithms into a few meta-algorithms. Part of the goal is to teach the students to think abstractly. Without getting bogged with formal proofs, the book fosters a deeper understanding of how and why each algorithm works. These insights are presented in a slow and clear manner accessible to second- or third-year students of computer science, preparing them to find their own innovative ways to solve problems.

Rather than provide lots of well-polished code and proofs of correctness, this book presents insights, notations, and analogies to help the novice describe and think about algorithms like an expert. It stresses paradigms such as loop invariants and recursion to unify a huge range of algorithms into a few meta-algorithms.

About the Author

Jeff Edmonds received his Ph.D. in 1992 at University of Toronto in theoretical computer science. His thesis proved that certain computation problems require a given amount of time and space. He did his postdoctorate work at the ICSI in Berkeley on secure multi-media data transmission and in 1995 became an Associate Professor in the Department of Computer Science at York University, Canada. He has taught their algorithms course thirteen times to date. He has worked extensively at IIT Mumbai, India, and University of California San Diego. He is well published in the top theoretical computer science journals in topics including complexity theory, scheduling, proof systems, probability theory, combinatorics, and, of course, algorithms.

(HTML tags aren't allowed.)

Beginning the Linux Command Line
Beginning the Linux Command Line
This is Linux for those of us who don’t mind typing. All Linux users and administrators tend to like the flexibility and speed of Linux administration from the command line in byte–sized chunks, instead of fairly standard GUIs. Beginning the Linux Command Line follows a task–oriented approach and is distribution agnostic....
Object-Oriented JavaScript
Object-Oriented JavaScript
Once listed in the "nice to have" sections of job postings, these days the knowledge of JavaScript is a deciding factor when it comes to hiring web developers. And rightly so. Where in the past we used to have the occasional few lines of JavaScript embedded in a web page, now we have advanced libraries and extensible architectures,...
Head First Networking
Head First Networking
Frustrated with networking books so chock-full of acronyms that your brain goes into sleep mode? Head First Networking's unique, visually rich format provides a task-based approach to computer networking that makes it easy to get your brain engaged. You'll learn the concepts by tying them to on-the-job tasks, blending practice and theory...

Managing and Leading Software Projects
Managing and Leading Software Projects
Discover the fundamental techniques for managing and leading software projects

This book bridges the communication gap between project managers and software developers working toward the common goal of developing successful software products and software systems. It provides the insights, methods, tools, and techniques necessary to understand...

The Developer's Guide to Debugging
The Developer's Guide to Debugging

Software has bugs. Period.

That's true, unfortunately. Even the good old "hello, world" program, known to virtually every C and C++ programmer in the world, can be considered to be buggy. Developing software means having to deal with defects; old ones, new ones, ones you created yourself, and those that others brought to life....

Introduction to Grid Computing
Introduction to Grid Computing
A thorough overview of the next generation in computing, this concise guide explores state-of-the-art grid projects, core grid technologies, and applications of the grid. It covers virtual organizations, scheduling algorithms, fault tolerance strategies, grid workflow management systems, and security technologies. The authors present several grid...
©2009 LearnIT (support@pdfchm.net) - Privacy Policy