Next: Textbook
Up: Computer Science 344 Algorithms
Previous: Computer Science 344 Algorithms
This is a course for anybody who's ever complained about a computer
being slow. When faced with a computer program that takes unacceptably
long to solve the problem at hand, one option is to buy faster, more
expensive computer hardware. But this option has its limits: perhaps
your money will run out, or perhaps you'll upgrade to the fastest
computer on the market and still be unsatisfied. Often a better option
is to find a more efficient approach to the problem -- to re-think the
algorithm so that it makes better use of the hardware.
A $1,000 personal computer running a good algorithm can often outperform
a $1,000,000 supercomputer running a bad (though correct) algorithm.
In this course we'll learn how to measure the efficiency of an algorithm,
independent of language, operating system, or hardware. We'll survey a
variety of techniques for designing efficient algorithms.
(Many of these techniques
will help you program correctly even when you're not worried about efficiency.)
We'll even learn how to prove that a given algorithm is ``as good as it
can get,'' in the sense that no algorithm, no matter how clever,
will ever be better than this one.
Next: Textbook
Up: Computer Science 344 Algorithms
Previous: Computer Science 344 Algorithms