|
Key Ideas of CS 483
|
- Abstraction
- Abstraction and Organization overcome Complexity
- Objects
- Subroutines
- Diagrams
- Pseudocode
- Generic Algorithms
|
- Repertoire
- Some new Algorithms ... and Data Structures
- Data Structures keep results handy for algorithms
- Algorithms maintain data structures
|
- Design
- Extend and combine to solve real problems
- Divide, conquer and combine
- Greedy algorithms
- Dynamic programming
|
- Verification
- Maintain data structure properties
- Loop invariants
- Mathematical induction
|
- Analysis
- Time, space, processors
- Input parameters
- Asymptotic function growth
- Polynomial degree and beyond
|
- Analysis Techniques
- Loop nesting
- Tree height and balance
- Combinatorics
- Recurrences
|
- Problem Complexity
- Unsolvable and intractable problems
- Best possible result
- Approximation
|