Instructor: Fred Annexstein
Office: 889
Office Hours: Tu-Th
Phone: 556-1807
Email: fred.annexstein@uc.edu
Web:
http://www.ececs.uc.edu/~annexste
Lecture Schedule: M-W-F 1:00-1:50 Baldwin
755
Web: Check on my
homepage regularly for an updated version of this syllabus, announcements,
assignments, etc.
My web homepage address is:
http://www.ececs.uc.edu/~annexste
Teaching Assistant: Svetlana Strunjas
Email: strunjs@email.uc.edu, or strunjs@ececs.uc.edu
Office Hours: Tu-Wed
9:15-10:45
Prerequisite:
Design & Analysis of Algorithms 1 (CS471)
Textbook:
Kenneth A. Berman and Jerome L. Paul, Fundamentals of Sequential and Parallel Algorithms, PWS, 1997.
Goals:
Provide a solid foundation for the classical theory of sequential algorithms, and to cover some of the most important recent algorithmic developments, including the rapidly emerging theory of internet and parallel algorithms. Provide the mathematical tools necessary 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. Enhance the ability to create new algorithms or to modify existing algorithms in order to solve new problems.
Description:
Continuing the study of sequential and parallel algorithms begun in the first course in the sequence. Intro to graph theory and graph and network algorithms, text-based algorithms for data compression and indexing, numerical algorithms, and an introduction to lower bound theory, NP-completeness and approximation algorithms. Major design strategies: the greedy method, divide-and-conquer, dynamic programming.
Approximate Schedule (subject to change):
1. Review of sequential algorithm design (Chapters 1-4)
2. Review of parallel algorithms and architectures (Chapter 1-6)
3. Graph algorithms and Networks (Chapter 8, notes)
4. Distributed and Internet algorithms (Chapter 12, notes)
5. Text-based algorithms, data compression, string matching, indexing (Chapters 12,17, notes)
6. Numerical algorithms and FFT (Chapter 13)
7. Lower bound theory, NP-completeness (Chapters 10, 20)
8. Approximation algorithms (Chapter 20, notes)
Assignments:
There will be 3-4 homework assignments. It is very important that the homework is done neatly and handed in on time. Programs should be well documented.
Grading:
Approximate distribution of credit: there will be a midterm exam and a final exam, each counting 30% each.
Homework assignments count 40%.
Late work is accepted only because of a) illness; b) family emergencies; and c) conflicts approved by me in advance.