Class Notes
The order of topics covered or dates specified are subject to change. Any changes will be discussed in class.
Notes:
- Tools for Empirical Exploration of Algorithms and Data Structures.
- Review of Basic Data Structures
- Chapter 1
- Chapter 2 Basics of Algorithm Analysis
- Sorting
- Chapter 3, Graphs
- Computatinal Geometry
- Complexity
Course outline
The course outline requires the coverage of the following topics:
- Mathematical Techniques
- Review of Selected Topics in Mathematics ✓
- Recurrence Relations ✓
- Review of Proof Methods ✓
- Analysis of Algorithms and Data Structures
- Asymptotic Notation ✓
- Complexity ✓
- Space
- Time
- Algorithm Correctness ✓
- Program Efficiency ✓
- Algorithm Design Methods
- Brute Force
- Divide, Conquer, and Combine
- Greedy
- Analogy
- Elementary Data Structures ✓
- Implementation ✓
- Performance Analysis ✓
- Application ✓
- Data Structures Covered ✓
- Arrays ✓
- Lists ✓
- Stacks ✓
- Queues ✓
- Additional Data Structures
- Trees
- Terminology
- Representations
- Binary Trees
- Tree Algorithms
- Graphs ✓
- Terminology ✓
- Representations ✓
- Graph Algorithms
- Algorithms
- Searching ✓
- Sorting ✓
- Properties of Sorting Algorithms ✓
- Comparison Based Sorts ✓
- Non-Comparison Based Sorts ✓
- Limits of Computation
- The Classes P and NP
- NP-complete Problems
- Intractable Problems
- Additional Topics
- Other Algorithms
- Computational Geometry
- Pattern Matching
- Numeric Algorithms
- Additional Data Structures
- Maps
- Hash Tables