20-ECES-781

Advanced Algorithms 1

Winter 2003

Meeting Time: MWF 11:00am-11:50 pm Baldwin


Instructor: Fred Annexstein

Office: 889 Rhodes (Office Hours: MW 2:00-3:00)

Phone: 556-1807

Email: fred.annexstein@uc.edu

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


Course Information

 

 

Assignments:
 There will be 3-4 homework assignments

 

Grading (tentative):
 There will be a midterm and final exam. Homework will count 40% and exams 60%.

 

Web:
 Information on this course will be posted on the course webpage and will be constantly updated. You should frequently look at
this homepage for announcements, updated syllabus, homework assignments, etc.  The course webpage address is: http://www.ececs.uc.edu/~annexstein/Courses/cs781

 

Description:
Review of sequential algorithms.  Parallel algorithms and architectures. 
Graph and network algorithms.  Distributed and Internet algorithms.
Data compression and pattern matching. Introduction to
lower bound theory.  Major design strategies: the greedy method,
divide-and-conquer, dynamic programming, backtracking and
branch-and-bound, Fast Fourier Transform, introduction to NP-completeness. Approximation 
algorithms.

 

Textbook:
 Design and Analysis of Sequential and Parallel Algorithms, Kenneth A. Berman and Jerome L. Paul

 

Prerequisites by topic

I. Knowledge and experience in a high-level programming language.

II. Familiarity with abstract data types and data structures.

III. Familiarity with mathematical concepts from calculus, linear algebra, discrete mathematics,

      and elementary probability theory.

IV. Course in algorithms including following topics:

1. Measuring the complexity of algorithms: Best-case, Average, and Worst-case complexities, asymptotic notation

            2. Design and analysis of classical algorithms such as Binary Search, Insertion Sort, etc.

            3. Design and analysis of sequential sorting algorithms, e.g., Mergesort, Quicksort, Heapsort, Treesort, Radix Sort.

            4. Mathematical properties of binary trees: lower bounds for depth and leaf-path length.

            5. Induction and correctness proofs.

6. Recurrence relations.

7. Implementing graphs and digraphs; DFS and BFS search and traversals & applications to shortest paths in

    unweighted graphs and topological sort of dags (directed acyclic graphs)

 

Approximate Schedule of Topics: 

 

Weeks 1. Review of Sequential Algorithms (Chapters 1-4).

Week 2.  Parallel Algorithms and Architectures (Chapters 1-6)

Weeks 3 & 4. Graph and Network Algorithms (Chapters 8, Notes)

Weeks 5 & 6. Distributed and Internet Algorithms (Notes)

Week 7. Data Compression (e.g., Huffman Codes) and Pattern Matching (Chapter 12, notes)

Week 8. Numerical Algorithms (e.g., Fast Fourier Transform) (Chapter 13)

Week 9. Intro to Lower Bound Theory and NP-completeness (Chapter 10 & 20)

Week 10. Approximation Algorithms (Chapter 20, notes)