http://www.cs.dartmouth.edu/courseguide/undergrad/cs_45.html
Topics include an introduction to the mathematical analysis of algorithms, an overview of design principles for computer algorithms, and an introduction to the theory of NP-completeness. The emphasis is on techniques for design and analysis, using specific algorithms as examples. Offered in alternate years.