Course Description
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.
Prerequisite
- 10.009 The Digital World (For Intake AY2019)
- [NEW] Data Driven World (For Intake AY2020 and subsequent batches)
Learning Objectives
- 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.
Measurable Outcomes
Students will learn basic algorithms related to:
- Binary search trees
- Hashing
- Sorting
- Searching
- 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