Sample schedules

Here are some suggested paths for the the Computer Science concentration. These are just examples: there are many possible pathways through the degree. Interested students should consult with the Director of Undergraduate Studies for guidance.

The CS 50 Unofficial Guide to Computer Science in the resources page contains some sets of courses suitable for concentrators and secondaries, based on your potential interests. Plenty of other combinations are possible! 

First year

  • Fall: CS 50 and one of Math 23a/22b/21b/25a/55a: Linear Algebra. (See this pamphlet by the math department on the difference between the various courses.) It is also possible to take Math 21a or AM 21a, Multivariate calculus, in which case you should take linear algebra in the spring.

  • Spring: CS 51 and CS 20.


  • If you do not place out, you need to take Math 1a/1b before linear algebra.

  • If you have significant CS experience and decide to skip CS 50, you can take either CS 61 or CS 121 (depending whether your strengths are more in systems programming or mathematics) in the fall.

  • If you are comfortable with mathematical proofs, you can skip CS 20. The CS 121 background page can help you decide if that’s the case. If so, you might want to take a second math course (e.g., multivariate calculus) in the spring. Math 23c can be a very good choice for CS concentrators that took Math 23a.

Sophomore year

  • Fall: CS 121 and STAT 110. Potentially also CS 61.

  • Spring: CS 124 and CS 51 (if didn’t take it before). Otherwise, a technical elective

Junior and senior year

Take electives per your interests. You might also want to consider pursuing a research project via CS 91r. You can also explore taking courses at MIT that pique your interest.


  • You can take Math 23b/22a/21a/25b/55b: Multivariate Calculus instead or in addition to STAT 110. If you take both then STAT 110 will be counted as a technical elective.

  • If you did not take CS 51 in your first year, you can take it sophomore spring.

  • If you take all three of CS 50,51 and 61, then you can choose to count one of 51 or 61 as a technical elective.