Computer Science 483 Department of Computer Science
Data Structures and Analysis of Algorithms George Mason University
R. Paul Wiegand Spring 2006

[syllabus]  [course schedule]  [assignments]

Course Schedule

The following is a rough draft of the course schedule. It is, of course, subject to change. Slides for some of the lectures will be made available after the lecture. To get the not-so-printable versions with transitions, click on the link entitled "slides"; for the printer-friendly version, click on "slides-pf".

Lecture Topic Important Events Reading
Jan 25    Chapter 1: Introduction [slides, slides-pf] pp. 1--39
        - Course introduction & motivation
        - Algorithms & Problems
        - Fundamentals
        - Problem Types
        - Data Structures
        - Correctness notes
Feb 1    Chapter 2: Analysis Framework [slides, slides-pf] pp. 41--96
        - Analysis Framework
        - Asymptotics & Efficiency
        - Nonrecursive Algorithms
        - Recursive Algorithms & Recurrence Relations notes
        - Empiricism & Visualization
Feb 8 Chapter 3: Brute Force Guest lecturer pp. 97--120
        - SelectionSort and BubbleSort
        - Sequential Search and BF String Matching
        - Closest-Pair and Convex-Hull
        - Exhaustive Search
Feb 15 Chapter 4: Divide & Conquer [slides] pp. 121--153
        - Introduction to D&C
        - The MergeSort algorithm
        - The QuickSort algorithm
        - The BinarySearch algorithm
        - Binary tree traversals, etc.
        - Large integer and matrix multiplication
        - Closest-Pair and Convex-Hull
Feb 22 Chapter 5: Decrease & Conquer [slides] Review for Exam I pp. 153--175
        - The InsertionSort algorithm
        - DFS & BFS
        - Reviewing recurrences notes
Mar 1 Exam 1
Mar 8 Chapter 5-part2, 6-part1: {Decrease,Transform} & Conquer [slides] Project I due pp. 170--207
        - Topological Sorting
        - Generating Combinatorial Objects
        - Decrease-by-a-Constant-Factor Algorithms
        - Variable-Size-Decrase Algorithms
        - Presorting
        - Gaussian Elimination
Mar 15 SPRING BREAK
Mar 22 Chapter 6-part2: Transform & Conquer [slides] pp. 209--243
        - Balanced Trees
        - Heaps & HeapSort
        - Horner's Rule & Binary Exponentiation
        - Problem Reduction
Mar 29 Chapter 7: Space & Time Tradeoffs [slides] pp. 245--274
        - Count Sorts
        - String Matching
        - Hashing
        - B-Trees
Apr 5 Chapter 8: Dynamic Programming Review for Exam II, Project 2 due pp. 275--301 + lecture
        - Fibonacci
        - Chain Multiplication
        - Binomial Coefficient
        - Warshall's & Floyd's Algorithms
        - Optimal Binary Search Trees
        - Knapsack Problem
Apr 12 Exam II
Apr 19 Chapter 9: Greedy Technique pp. 303--330
        - Prim's Algorithm
        - Kruskal's Algorithm
        - Dijkstra's Algorithm
        - Huffman Trees
Apr 26 Chapters 10: Limitations of Algorithm Power pp. 331--367
        - Lower bounds on problems
        - Decision Trees
        - P, NP, and NP-Complete problems
        - Numerical problems
May 3 Chapters 11: Coping with Limitations of Algorithm Power Review for Exam III, Project III due pp. 367--397
        - Backtracking
        - Branch-and-bound
        - Approximation Algorithms
May 10 (7:20p) Final Exam


The Reading

Students are expected to do the assigned reading before the class lecture associated with that reading. Material from the reading may not be covered as in depth in lecture as in the book. Unless otherwise stated, student's will be responsible for what they read, regardless of whether it is discussed in class.