20-ECES-472 & 672
Design and Analysis of Algorithms 2
Winter 2002


Instructor: Fred Annexstein

Office: 889 Rhodes

Office Hours: Tu-Th 9:30-11:00AM

Phone: 556-1807

Email: fred.annexstein@uc.edu

Web: http://www.ececs.uc.edu/~annexste


Homeworks

Homework #1 (due Jan 23)

Homework #2 (due Feb 6)

Homework #3 (due Feb 25)

Data file for homework #3

 

Course Information

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.