50.004 Introduction to Algorithms

Home / Education / Undergraduate / Courses / 50.004 Introduction to Algorithms

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.


  1. 10.009 The Digital World

Learning Objectives

  1. Apply important algorithmic design paradigms and methods of analysis.
  2. Demonstrate a familiarity with major algorithms and data structures.
  3. Identify major issues in the implementation of algorithms.
  4. Solve algorithmic issues in the design of information systems.

Measurable Outcomes

Students will learn basic algorithms related to:

  1. Binary search trees
  2. Hashing
  3. Sorting
  4. Searching
  5. Shortest paths
  6. Dynamic programming

and will be able to:

  1. Describe an algorithmic paradigm
  2. Explain when an algorithmic design situation calls for one
  3. Recognize algorithms that employ each paradigm
  4. Apply algorithms in the paradigm

Image Credit