Meeting Time: MWF 11:00am-11:50 pm Baldwin
Instructor:
Office: 889
Phone: 556-1807
Email: fred.annexstein@uc.edu
Web:
http://www.ececs.uc.edu/~annexste
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)