<aside> ❓ If you have any questions about anything in these wikis, be sure to ask in our discord!

</aside>

This wiki is still under construction. Please check back later or ask in the ACM Discord if you have any questions!

About

This major gives mathematically minded students a specialization in theoretical computer science. It is not equivalent to an undergraduate degree in computer science nor is it meant to substitute for such. However, since computing applications often require a strong foundation in mathematics, this major could help to prepare someone to work in such a setting. (An internship could provide additional valuable training.) Course requirements include abstract algebra, statistics or probability, combinatorics, numerical analysis, and at least three of each of lower division and upper division courses in computer science. Up to 16 additional units of upper division coursework from approved course lists in mathematics and/or computer science are required.

Course Priority

Math-Computer Science students may get some priority for math classes, but get no priority for computer science classes.

Math-Computer Science students must EASy request major-restricted upper division computer science courses that they would like to take as electives. When the schedule of classes open each quarter, skim through all upper division computer science classes and EASy request ALL that seem interesting to you as early as possible. This gives you the highest chance of getting into these upper division courses for your major.

Overall, Math-Computer Science is a very flexible major that lets you take electives from many different departments in many different areas of interest, so definitely explore classes outside of the CSE department!

Lower Division Coursework

  1. One of the following sequences:
    1. Linear Algebra and Calculus: MATH 18 and 20A-B-C-D-E
    2. Honors Calculus: MATH 31AH-BH-CH, MATH 20D
  2. CSE 8A-B Introduction to Computer Science, or CSE 11 Introduction to Computer Science: Java (Accelerated)
  3. Software Tools and Techniques Laboratory: CSE 15L
  4. Computer Organization and Systems Programming: CSE 30
  5. Basic Data Structures and Object-Oriented Design: CSE 12

Upper Division Coursework

A total of fourteen upper-division courses (totaling fifty-six units) are required

  1. Mathematical Reasoning: MATH 109 (Note: Students completing MATH 31AH-BH-CH may substitute a four-unit upper division mathematics elective for MATH 109)
  2. Modern Applied Algebra: MATH 103A-B or Modern Algebra: MATH 100A-B
  3. Theory of Computability: CSE 105 (Note: CSE 21 or MATH 100A or MATH 103A or MATH 184 must be taken prior to CSE 105)