20 CS 672: Design & Analysis of Algorithms 2
Syllabus:
Learning Objectives:
| Course Number | 20 CS 672 |
| Credit Hours | 3 Graduate |
| Prerequisites |
20 CS 671 |
| Catalog Data | Further introduction to the study of algorithms. Analysis of computing time, asymptotic notation and generating functions. Strategies for designing algorithms: Divide-and-conquer, Greedy method, Backtracking, etc. Further topics such as techniques for algebraic manipulations, lower bound theory, NP-Complete problems, and parallel algorithms. |
| Textbooks |
K. Berman and J.L. Paul, Fundamentals of Sequential and Parallel Algorithms PWS/Brooks-Cole 1997. |
| References | Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press/McGraw-Hill, 1990. |
| Prerequisites by Topic | Topics covered in 20 CS 671. |
| Goals | This course will provide a solid foundation for the classical theory of sequential algorithms, and to cover some of the most important recent algorithmic developments, including the theory of parallel algorithms. It will also provide the mathematical tools nCSsary to analyze the correctness and efficiency of algorithms, and to be able to judge how close an algorithm is to being optimal for a given problem. It will enhance student?s the ability to create new algorithms or to modify existing algorithms in order to solve new problems. |
| Topics | 1. Introduction to Probabilistic Algorithms : e.g., Prime Testing 2. Lower Bound Theory: e.g., Lower Bounds for Searching and Sorting 3. The Greedy Method: e.g., Shortest Path & Minimum Spanning Trees. 4. Divide and Conquer: e.g., Fast Fourier Transform, Matrix Multiplication 5. Dynamic Programming: e.g., All Pairs Shortest Paths, Optimal Search Trees 6. Backtracking and Branch-and-Bound : Bounding Functions and Heuristics 7. P, NP, Co-NP, NP-Complete Problems: e.g., Prime Testing, Satisfiability |
| Computer Usage | 1. Students use a UNIX and/or Windows platform. Programs can be written in C++ or Java. Other languages may be used with approval. 2. Approximately 4 assignments, at least one of which will have a programming component.. |
| Labs | One or two projects. Course emphasis will be on designing and analyzing algorithms, not on programming. |
| Estimated ABET | Engineering science: 1.5 credits or 50% Engineering design: 1.5 credits or 50% |
| Prepared By | Jerome L. Paul, Ph.D. on 2002/09/01 |