Class Notes

Notes:

Course outline

The course outline requires the coverage of the following topics:
  1. Mathematical Techniques
    1. Review of Selected Topics in Mathematics ✓
    2. Recurrence Relations ✓
    3. Review of Proof Methods ✓
  2. Analysis of Algorithms and Data Structures
    1. Asymptotic Notation ✓
    2. Complexity ✓
      1. Space
      2. Time
    3. Algorithm Correctness ✓
    4. Program Efficiency
  3. Algorithm Design Methods
    1. Brute Force ✓
    2. Divide, Conquer, and Combine ✓
    3. Greedy ✓
    4. Analogy ✓
  4. Elementary Data Structures ✓
    1. Implementation ✓
    2. Performance Analysis ✓
    3. Application ✓
    4. Data Structures Covered ✓
      1. Arrays ✓
      2. Lists ✓
      3. Stacks ✓
      4. Queues ✓
  5. Additional Data Structures
    1. Trees
      1. Terminology ✓
      2. Representations ✓
      3. Binary Trees
      4. Tree Algorithms
    2. Graphs ✓
      1. Terminology ✓
      2. Representations ✓
      3. Graph Algorithms ✓
  6. Algorithms
    1. Searching ✓
    2. Sorting ✓
      1. Properties of Sorting Algorithms ✓
      2. Comparison Based Sorts ✓
      3. Non-Comparison Based Sorts ✓
  7. Limits of Computation
    1. The Classes P and NP
    2. NP-complete Problems
    3. Intractable Problems
  8. Additional Topics
    1. Other Algorithms
      1. Computational Geometry
      2. Pattern Matching
      3. Numeric Algorithms
    2. Additional Data Structures
      1. Maps
      2. Hash Tables