This document provides an overview of a course on the design and analysis of computer algorithms taught by Professor David Mount at the University of Maryland in Fall 2003. The course will cover algorithm design techniques like dynamic programming and greedy algorithms. Major topics will include graph algorithms, minimum spanning trees, shortest paths, and computational geometry. Later sections will discuss intractable problems and approximation algorithms. When designing algorithms, students are expected to provide a description, proof of correctness, and analysis of time and space efficiency. Mathematical background on algorithm analysis, including asymptotic notation and recurrences, will be reviewed.