syllabus

advertisement
EECS 3101: Tentative SYLLABUS
I: INTRODUCTION and RELEVANT MATHEMATICS (6 hours):
Lecture Slides 1, 2, 3 and Lecture Notes 1, 2, 3.
General course description
Overview of algorithmic design and analysis
Mathematical induction
Asymptotic notations and their properties
Time complexity analysis of algorithms
Summations and Recurrence Relations
II: ITERATION and RECURSION (5 hours):
Lecture Slide 4 and Lecture Note 4.
Assertions: Pre and Post Conditions
Iterative Algorithms: Loop invariants
The Incremental Method
VLSI Chip Testing
In-Place Tri-Partition
Maximum Sum Subarray
Longest Smooth Subarray
Recursive Algorithms: Strong Induction
The Divide-&-Conquer Method
Recursive Doubling
Operations on integers and matrices
Algorithms for trees
The Planar Closest Pair of Points Problem
III: SORTING and SELECTION (6 hours):
Lecture Slide 5 and Lecture Notes 5, 6.
Review basic sorting algorithms
Randomized QuickSort and its expected running time
Heaps, HeapSort and Priority Queues
Lower bound on general sorting
Special sorting algorithms: CountingSort, BucketSort, RadixSort, RadixExchangeSort
Selecting the k-th smallest item
The Prune-&-Search Method
Lower Bound Proof Techniques for Problem Time Complexity:
(Algebraic) Decision Trees,
Adversary Arguments,
Problem Reduction (or Transformation).
IV: ALGORITHM DESIGN TECHNIQUES (8 hours):
Lecture Slides 6, 7 and Lecture Notes 7, 8, 9.
Review: Incremental, Divide-&-Conquer, Prune-&-Search, ...
Greedy Methods
Dynamic Programming
V: GRAPH ALGORITHMS (12 hours):
Lecture Slide 8 and Lecture Note 10.
Review definitions and graph terminology
Breadth-First-Search (BFS)
Depth-First-Search (DFS)
Dags and Topological Sorting
Strongly Connected Components
Biconnected Components
Minimum Spanning Trees
Shortest Paths
Network Flow
Matching
VI: NP-COMPLETENESS (3 hours):
Lecture Slide 9.
Download