The Joint Major in Computer Science and Mathematics is cooperatively administered by the Computer Science and Mathematics Departments. The purpose of the Joint Major is to provide a program of study tailored to students who are interested in the interdisciplinary connections between computer science and mathematics. Depending on how electives are selected, the program described below would position successful majors for graduate studies in either computer science or mathematics or for immediate employment.
The Joint Computer Science and Mathematics degree program has various components: the kernel courses in computer science and mathematics; more advanced courses in computer science and in mathematics; Clinic; and Electives. Each of these components is described as follows.
Four kernel courses in computer science and mathematics:
- Mathematics 55: Discrete Mathematics
- Computer Science 60: Principles of Computer Science or Computer Science 42: Principles and Practices of Computer Science
- Computer Science 81: Computability and Logic
- Mathematics 168/Computer Science 140: Algorithms
Three computer science courses:
- Computer Science 70: Data Structures and Program Development
- Computer Science 105: Computer Systems
- Computer Science 131: Programming Languages
Three mathematics courses:
- Mathematics 131: Analysis I
- Mathematics 165: Numerical Analysis or Mathematics 164: Scientific Computing
- Mathematics 171: Abstract Algebra I
Two semesters are required, ordinarily taken during the senior year. Joint Majors will work on a Clinic project from either mathematics, computer science, joint computer science and mathematics 183-184 or on an interdisciplinary project. Computer Science 121, Software Development, is strongly recommended for students wishing to take Computer Science Clinic.
CSMT 183, 184 Computer Science and Mathematics Clinic I, II (3)
Staff. Team project in joint computer science and mathematics, with corporate affiliation. Prerequisite: Computer Science 121. (Fall and Spring)
Eight units of upper-division technical electives: these electives can be from mathematics, computer science or other departments (but must include at least two units of mathematics and at least two units of computer science), and must be chosen with approval of the faculty advisors so that a coherent program is formed. Two semesters of senior thesis research can count toward this requirement. Note that Complexity Theory can be taken as either Mathematics 167 or Computer Science 142.
Students are required to attend two semesters of Computer Science Colloquium (Computer Science 195), one semester of Mathematics Colloquium (Mathematics 199) and one semester of Mathematics Forum (Mathematics 198).
Students in the Joint Major program will have faculty advisors from both the Mathematics and the Computer Science departments. For further descriptions of the computer science and mathematics programs, please refer to their separate sections in this catalogue.