Part-Time Programs in Engineering and Applied Science, Johns Hopkins University

Foundations of Algorithms
605.421


Course Description
This follow-on course to data structures (e.g., 605.202) provides a survey of computer algorithms and examines fundamental techniques in algorithm design and analysis. Topics include advanced data structures (red-black and 2-3-4 trees), recursion and induction, algorithm analysis and computational complexity (recurrence relations, big-O notation), sorting and searching, string processing (Boyer-Moore, Knuth-Morris-Pratt, and pattern matching), graph algorithms (depth-first and breadth-first search, connectivity, union-find, minimum spanning trees, and network flow), and computational geometry (points, lines, polygons, and convex hull). Selected advanced topics (dynamic programming and NP-complete problems) are also introduced. Grading is based on problem sets, programming projects, and examinations.

Prerequisites
Working knowledge of data structures and Java, C++, or C.

Instructor
William Lew is Senior Technical Assistant Director with the U.S. General Accounting Office Computer Information Technology Assessment Group. Dr. Lew's areas of research interest include probability theory, algorithmic analysis, databases, and networking & communications.

Textbook
Introduction to Algorithms, (Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest), McGraw-Hill, 1993.

Additional Course Information


Return to Computer Science Courses | Computer Science  | Part-Time Engineering

Spring 1999-2000