You are here: Home Current Students Courses 700 Level 20 CS 781: Advanced Algorithms I
Document Actions

20 CS 781: Advanced Algorithms I

Syllabus:
Learning Objectives:
Course Number 20 CS 781
Credit Hours 3 Graduate
Prerequisites 20 CS 671
Catalog Data
Formal treatment of algorithms and algorithms design methodologies; both sequential and parallel paradigms will be covered. Measures of parallel complexity. Program complexity and correctness proofs.
Textbooks K. Berman and J. Paul, Design and Analysis of Sequential and Parallel Algorithms.
References
None
Prerequisites by Topic
1. Knowledge and experience in a high-level programming language.
2. Familiarity with abstract data types and data structures.
3. Familiarity with mathematical concepts from calculus, linear algebra, discrete
mathematics, and elementary probability theory.
4. Course in algorithms including following topics:
- Measuring the complexity of algorithms: Best-case, Average, and Worst-case
complexities, asymptotic notation
- Design &analysis of classical algorithms such as Binary search, Insertion Sort, etc.
- Quicksort, Heap Sort, Tree Sort, Radix Son
- Mathematical properties of binary trees: lower bounds for depth and leaf-path
length.
- Induction and correctness proofs.
- Recurrence relations.
- Implementing graphs and digraphs; DFS and VFS search and traversals &
applications to shortest paths in unweighted graphs and topological sort of dags,
computing shortest paths in graphs.
Goals
To 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 parallel algorithms. To provide students with 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. To enhance the ability to create new algorithms or to modify existing algorithms in order to solve new problems. To introduce lower bound theory as a tool to judge how close an algorithm is to being optimal for a given problem. To describe major sequential and parallel design strategies that have wide applicability in problem solving.
Topics
1. Foundations of sequential algorithms (weeks 1 & 2)
2. Intro to parallel algorithms and architectures (weeks 3 & 4)
3. Intro to graph algorithms and disjoing sets (week 5)
4. Probability and average complexity of algorithms (week 6)
5. Intro to lower bound theory and NP-completeness (week 7)
6. Greedy Method (week 8)
7. Divide-A-Conquer (week 9)
8. Dynamic Programming (week 10)
Computer Usage
None
Labs
None
Estimated ABET
Engineering Science: 3credits or 100%
Prepared By Kenneth Berman., Ph.D. on 2002/09/01