This is an introductory course to mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. It emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.
- Apply important algorithmic design paradigms and methods of analysis.
- Demonstrate a familiarity with major algorithms and data structures.
- Identify major issues in the implementation of algorithms.
- Solve algorithmic issues in the design of information systems.
Students will learn basic algorithms related to:
- Binary search trees
- Shortest paths
- Dynamic programming
and will be able to:
- Describe an algorithmic paradigm
- Explain when an algorithmic design situation calls for one
- Recognize algorithms that employ each paradigm
- Apply algorithms in the paradigm