Math with Computer Science
A major in Computer Science goes well with a major or minor in Mathematics. Many math courses can be used to count towards CS requirements, and because of the overlap this is a common, convenient pair.
Overlapping courses
Beyond the two calculus courses and linear algebra required for the CS major, there are many other courses that overlap between the major and a math major/minor.
Discrete Structures
All computer science majors are required to take 01:198:205 (Discrete Structures I) and 01:198:206 (Discrete Structures II). However, these courses have substitutes in the math department which the CS department honors.
For Discrete I, the substitute is Math 300. This course is required of all math majors doing the standard or honors tracks, and counts as a substitute for Discrete I if you get a B+ or above in the course (or, in an honors section of 300, B or above).
- Note that many CS electives have Discrete I as a prerequisite, and if you took Math 300 instead, you will have to send an email to prereqs@cs.rutgers.edu requesting a prerequisite override every time you wish to register for one of these courses. The instructions for submitting a prerequisite override for a CS course can be found here.
For Discrete II, the substitute is Math 477. Unlike the Math 300/Discrete I substitution, there is no grade restriction for substituting it for Discrete II, and you do not need to submit a prerequisite override for CS courses that require Discrete II. Note that 477 has a multivariable calculus prerequisite, which is beyond the requirements of a CS major, but if you intend on pursuing the math major or minor this course is required of you regardless.
While CS 205–206 form a sequence, the same is not the case for Math 300 and 477. In fact, you can take 300 and 477 simultaneously, or even 477 before 300, allowing for more scheduling flexibility than the Discrete Structures courses offered by the CS department. This allows for unusual orders of taking classes (such as taking CS 344 after Math 477 and before/with CS 205 or Math 300), but it is best to avoid such plans (especially if the course with a CS 206/Math 477 prerequisite is proof-based, like CS 344).
CS/Math electives
All CS majors are required to take a certain number of electives (5 for a BA, 7 for a BS). All but two of these courses have to be taken in the computer science department, and the remaining two can be chosen either from the computer science department or from a list of electives from other departments that count towards the CS major. This list includes the following courses in the math department:
- 01:640:338 (Discrete and Probabilistic Models in Biology),
- 01:640:348 (Cryptography),
- 01:640:354 (Linear Optimization),
- 01:640:428 (Graph Theory),
- 01:640:454 (Combinatorial Theory),
- 01:640:461 (Mathematical Logic).
Additionally, 01:640:373 (Numerical Analysis) counts for a CS major if the student is also pursuing the math major. However, 01:198:323, the CS course on the subject (Numerical Analysis and Computing), does not count for a math major if the student is also pursuing the CS major.
Comments and restrictions
Math courses cannot be counted for the CS minor (which requires that the courses be CS courses and not equivalents from other departments). For example, a student trying to use the Math 477 substitution for CS 206 for a CS minor will not be successful.
The residency condition of the CS major (both BA and BS options) requires that 7 courses be taken in the Computer Science Department at the New Brunswick campus. This means that the following sample list of courses does not satisfy the BA major despite covering the CS core and having 5 electives which count towards CS:
- CS Core: 112, 211, 344; Math 300, 477; AP credit for CS 121 (CS 111 prior to 2027);
- CS Electives: 3 CS courses, 2 Math courses which count for CS.
In this situation, only 6 classes are taken from the Rutgers–New Brunswick Computer Science department, so one more class in the CS department is needed for the major.
The CS major has a requirement for taking Math 250. If you took 291 instead, the CS department will honor your linear algebra proficiency, counting 291 towards the CS major for the 250 requirement. Similar to the Math 300 substitution for CS 205, a prerequisite override must be requested whenever registering for a CS course with a Math 250 prerequisite in this situation.
Other suggestions for math with CS
There are several courses which may appeal to students interested in mathematics and computer science, which are usually CS courses that involve math to a degree beyond what is seen in a typical CS course. Formal Languages and Automata (01:198:452) covers foundational topics in theoretical computer science, and operates like a proof-based math course. Other CS courses which tend to involve math include courses on artificial intelligence and machine learning, as well as some topics courses offered under 01:198:442–445 (in topics such as quantum computing, cryptography, and randomized algorithms).