Course 18C Mathematics with Computer Science

Mathematics and computer science are closely related fields. Problems in computer science are often formalized and solved with mathematical methods. It is likely that many important problems currently facing computer scientists will be solved by researchers skilled in algebra, analysis, combinatorics, logic and/or probability theory, as well as computer science.

The purpose of this program is to allow students to study a combination of these mathematical areas and potential application areas in computer science. Required subjects include linear algebra (18.06, 18.700 or 18.701) because it is so broadly used, and discrete mathematics (18.062J or 18.200) to give experience with proofs and the necessary tools for analyzing algorithms. The required subjects covering complexity (18.404J or 18.400J) and algorithms (18.410J) provide an introduction to the most theoretical aspects of computer science. We also require exposure to other areas of computer science (6.031, 6.033, 6.034, or 6.036) where mathematical issues may arise.

Some flexibility is allowed in this program. In particular, students may substitute the more advanced subject 18.701 Algebra I for 18.06, and if they already have strong theorem-proving skills, may substitute 18.211 for 18.062 or 18.200.

Required Subjects

  • 18.03 or 18.034 (Differential Equations)
    [sufficiently advanced students may substitute 18.152 or 18.303]
  • 18.06, 18.700 or 18.701 (Linear Algebra)
  • 18.410J (Design and Analysis of Algorithms)
  • 6.0001 (Introduction to Computer Science and Programming)
  • 6.006 (Introduction to Algorithms)
  • 6.009 (Fundamentals of Programming)
    [students who entered M.I.T. before September 2016 may use 6.01 for this requirement.]

One Subject from Each of the Following Pairs

  • 18.062J (Mathematics for Computer Science)
    or 18.200 (Principles of Discrete Applied Mathematics), including 18.200A
  • 18.400J (Automata, Computability, and Complexity)
    or 18.404J (Theory of Computation)
  • 6.031 (Elements of Software Construction)
    or 6.033 (Computer Systems Engineering)
    or 6.034 (Artificial Intelligence)
    or 6.036 (Introduction to Machine Learning)
    [students may substitute 6.005 (Elements of Software Construction)]

Restricted Electives

Four additional 12-unit subjects from Course 18 and one additional subject of at least 12 units from Course 6. The Course 6 subject may not be 6.042J or 6.00, and may be a 6.S* subject only with permission of the Mathematics Department. The overall program must consist of subjects of essentially different content and must include at least five Course 18 subjects with first decimal digit one or higher.


Note: The program described above fully affects students entering MIT on or after September 2016. Because changes in course 6 are being phased in over time, current students may need some flexibility in transitioning from the earlier 18C requirements. Please consult the Department for any questions.