Joint Major in Computer Science and Mathematics

The Joint Major in Computer Science and Mathematics is cooperatively administered by the Computer Science and Mathematics departments, and students will have faculty advisors from both 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

  • MATH055 HM

    Credits: 3

    Instructors: Benjamin, Bernoff, Lindo, Martonosi, Orrison, Su

    Offered: Fall and spring

    Description: Topics include combinatorics (clever ways of counting things), number theory, and graph theory with an emphasis on creative problem solving and learning to read and write rigorous proofs. Possible applications include probability, analysis of algorithms, and cryptography.

    Corequisites: MATH073 HM 

AND

  • CSCI060 HM

    Credits: 3

    Instructors: Boerkoel, Breeden, Dodds, Padmanabhan, Stone, Talvitie, Trushkowsky, Wiedermann, Wu

    Offered: Fall and spring

    Description: Introduction to principles of computer science: Information structures, functional programming, object-oriented programming, grammars, logic, correctness, algorithms, complexity analysis, and theoretical limitations. Those who have completed CSCI042 HM cannot take CSCI060 HM.

    Prerequisites: CSCI005 HM or CSCI005GR HM 

OR

  • CSCI042 HM

    Credits: 3

    Instructor: Stone and Wiedermann

    Offered: Fall

    Description: Accelerated breadth-first introduction to computer science as a discipline for students (usually first-year) who have a strong programming background. Computational models of functional and object-oriented programming. Data structures and algorithm analysis. Computer logic and architecture. Computability. Extensive practice constructing applications from principles, using a variety of languages. Successful completion of this course satisfies the CSCI005 HM Core requirement and CSCI060 HM coursework.

    Prerequisites: Permission of instructor

AND

  • CSCI081 HM

    Credits: 3

    Instructors: Bang, Monta​ñez, Stone

    Offered: Fall and spring

    Description: An introduction to some of the mathematical foundations of computer science, particularly logic, automata, and computability theory. Develops skill in constructing and writing proofs, and demonstrates the applications of the aforementioned areas to problems of practical significance.

    Prerequisites: (MATH055 HM or MATH055  CM/PZ/SC), and (CSCI060 HM or CSCI042 HM), and (MATH019 HM or MATH032 CM/PO/PZ/SC or MATH032S PO or MATH067  PO), and (MATH073 HM or MATH060 CM/PO/PZ/SC)

AND

  • MATH168 HM

    Credits: 3

    Instructors: Boerkoel (Computer Science), Monta​ñez (Computer Science), Schofield (Computer Science), Stone (Computer Science)

    Offered: Fall and spring

    Description: Algorithm design, computer implementation, and analysis of efficiency. Discrete structures, sorting and searching, time and space complexity, and topics selected from algorithms for arithmetic circuits, sorting networks, parallel algorithms, computational geometry, parsing and pattern-matching.

    Prerequisites: ((CSCI070 HM and (MATH055 HM/CM/PZ/SC) and (MATH019 HM or MATH032  CM/PO/PZ/SC or MATH032S PO or MATH067 PO) and (MATH073 HM or MATH060  CM/PO/PZ/SC or MATH060C CM)) or ((CSCI060 HM or CSCI042 HM) and MATH131 HM)) or (CSCI062 PO and CSCI054  PO). CSCI081 HM is recommended.

OR

  • CSCI140 HM

    Credits: 3

    Instructors: Boerkoel, Monta​ñez, Schofield, Stone

    Offered: Fall and spring

    Description: Algorithm design, analysis, and correctness. Design techniques including divide-and-conquer and dynamic programming. Analysis techniques including solutions to recurrence relations and amortization. Correctness techniques including invariants and inductive proofs. Applications including sorting and searching, graph theoretic problems such as shortest path and network flow, and topics selected from arithmetic circuits, parallel algorithms, computational geometry, and oth­ers. An introduction to computational complexity, NP-completeness, and approximation algorithms. Proficiency with programming is expected as some assignments require algorithm implementation.

    Prerequisites: ((CSCI070 HM and (MATH055 HM/CM/PZ/SC) and (MATH019 HM or MATH032  CM/PO/PZ/SC or MATH032S PO or MATH067 PO) and (MATH073 HM or MATH060  CM/PO/PZ/SC or MATH060C CM)) or ((CSCI060 HM or CSCI042 HM) and MATH131 HM)) or (CSCI062 PO and CSCI054  PO). CSCI081 HM is recommended.

Two Computer Science Courses

  • CSCI070 HM

    Credits: 3

    Instructors: Breeden, Medero, O'Neill, Stone, Talvitie, Trushkowsky

    Offered: Fall and spring

    Description: Abstract data types including priority queues and dynamic dictionaries and efficient data structures for these data types, including heaps, self-balancing trees, and hash tables. Analysis of data structures including worst-case, average-case and amortized analysis. Storage allocation and reclamation. Secondary storage considerations. Extensive practice building programs for a variety of applications.

    Prerequisites: (CSCI060 HM or CSCI042 HM), and at least one mathematics course at the level of calculus or higher; MATH055 HM recommended

  • CSCI131 HM

    Credits: 3

    Instructors: Bang, O'Neill, Stone, Wiedermann

    Offered: Fall and spring

    Description: A thorough examination of issues and features in language design and implementation including language-provided data structuring and data-typing, modularity, scoping, inheritance, and concurrency. Compilation and run-time issues. Introduction to formal semantics.

    Prerequisites: CSCI070 HM and CSCI081 HM 

Four Mathematics Courses

  • MATH062 HM

    Credits: 3

    Instructors: Haddock, Martonosi, Williams

    Offered: Spring

    Description: Sample spaces, events, axioms for probabilities; conditional probabilities and Bayes' theorem; random variables and their distributions, discrete and continuous; expected values, means and variances; covariance and correlation; law of large numbers and central limit theorem; point and interval estima­tion; hypothesis testing; simple linear regression; applications to analyzing real data sets. Possible additional topics include ANOVA, multiple regression, and logistic regression. 

    Prerequisites: MATH019 HM 

    Corequisites: MATH073 HM 

  • MATH082 HM

    Credits: 3

    Instructor: Staff

    Offered: Fall

    Description: Modeling physical systems, first-order ordinary differential equations, existence, uniqueness, and long-term behavior of solutions; bifurcations; approximate solutions; second-order ordinary differential equations and their properties, applications; first-order systems of ordinary differential equations. Applications to linear systems of ordinary differential equations, matrix exponential; nonlinear systems of differential equations; equilibrium points and their stability. Additional topics.

    Prerequisites: (MATH019 HM and MATH073 HM) or equivalent 

  • MATH131 HM

    Credits: 3

    Instructors: Castro, de Pillis, Karp, Su, H. Zinn-Brooks

    Offered: Jointly; fall semester at hmc and pomona, spring semester at hmc and cmc

    Description: This course is a rigorous analysis of the real numbers and an introduction to writing and communicating mathematics well. Topics include properties of the rational and the real number fields, the least upper bound property, induction, countable sets, metric spaces, limit points, compactness, connectedness, careful treatment of sequences and series, functions, differentiation and the mean value theorem, and an introduction to sequences of functions. Additional topics as time permits.

    Prerequisites: MATH055 HM 

  • MATH171 HM

    Credits: 3

    Instructors: Karp, Lindo, Omar, Orrison, Staff (CMC), Staff (Pomona)

    Offered: Jointly; fall semester at hmc and cmc, spring semester at hmc and pomona

    Description: Groups, rings, fields, and additional topics. Topics in group theory include groups, subgroups, quotient groups, Lagrange's theorem, symmetry groups, and the isomorphism theorems. Topics in Ring theory include Euclidean domains, PIDs, UFDs, fields, polynomial rings, ideal theory, and the isomorphism theorems. In recent years, additional topics have included the Sylow theorems, group actions, modules, representations, and introductory category theory.

    Prerequisites: MATH073 HM and MATH055 HM 

Electives

  • 12 credits of upper division technical electives. These electives can be from math, computer science, or other departments, but must include at least 6 credits of mathematics and at least 6 credits of computer science, and must be chosen with approval of the faculty advisors so that a coherent program is formed. All electives must be numbered over 100. (Certain off-campus math courses numbered in the 100s that replicate HMC Core course content cannot be counted toward the elective requirement.) Courses that are cross-listed between computer science and mathematics, such as Complexity Theory, which appears as both MATH167 HM and CSCI142 HM, can be taken under either course number.

Colloquia

Two semesters of Computer Science Colloquium:

  • CSCI195 HM (should be taken in the junior or senior year)

    Credit: 0.5

    Instructor: Staff

    Offered: Fall and spring

    Description: Oral presentations and discussions of selected topics, including recent developments in computer science. Participants include computer science majors, Clinic participants, faculty members, and visiting speakers. No more than 2.0 credits can be earned for departmental seminars/col­loquia. All majors welcome.

    Prerequisites: Juniors and seniors only

AND

One semester of Mathematics Colloquium:

  • MATH199 HM (should be taken in the junior or senior year)

    Credit: 0.5

    Instructor: Staff

    Offered: Fall and spring

    Description: Students will attend weekly Claremont Math Colloquium, offered through the cooperative efforts of the mathematics faculty at The Claremont Colleges. Most of the talks discuss current research in mathematical sciences and are accessible to under­graduates. No more than 2.0 credits can be earned for departmental seminars/col­loquia. 

AND

One semester of Mathematics Forum:

  • MATH198 HM (should be taken in the junior year)

    Credit: 1

    Instructors: Castro, Jacobsen, Orrison, Williams, H. Zinn-Brooks

    Offered: Fall and spring

    Description: The goal of this course is to improve students' ability to communicate mathematics, both to a general and technical audience. Students will present material on assigned topics and have their presentations evaluated by students and faculty. This format simultaneously exposes students to a broad range of topics from modern and classical mathematics. Required for all majors; recommended for all joint CS-math majors and mathematical biology majors, typically in the junior year.

Students studying abroad during their junior or senior years are excused from one semester of the Computer Science Colloquium requirement for each semester abroad.

Clinic

Two semesters are required, taken during the senior year. Joint majors will work on a Clinic project from either mathematics, computer science, joint computer science and mathematics, or on an interdisciplinary project. Computing Practices, Projects, and People (CSCI123 HM) is strongly recommended for students wishing to take Computer Science Clinic.

  • MATH193 HM (Taken twice)

    Credits: 3

    Instructor: Staff

    Offered: Fall and spring

    Description: The Clinic Program brings together teams of students to work on a research problem sponsored by business, industry, or government. Teams work closely with a faculty advisor and a liaison provided by the sponsoring organization to solve complex, real-world problems using mathematical and computational methods. Students are expected to present their work orally and to produce a final report conforming to the publication standards of a professional mathematician. Students are expected to take the two semesters of Clinic within a single academic year.

    Prerequisites: Senior standing as a mathematics major or permission of the Mathematics Clinic director.

OR

  • CSCI183 HM

    Credits: 3

    Instructor: Staff

    Offered: Fall

    Description: The Clinic Program brings together teams of students to work on a research problem sponsored by business, industry, or government. Teams work closely with a faculty advisor and a liaison provided by the sponsoring organization to solve complex real-world problems. Students are expected to present their work orally and to produce a final report conforming to professional publication standards. CSCI183  HM and CSCI184 HM must be taken consecutively in the same academic year to count toward the major.

    Prerequisites: CSCI121 HM and senior standing; or permission of the Computer Science Clinic director

AND

  • CSCI184 HM

    Credits: 3

    Instructor: Staff

    Offered: Spring

    Description: The Clinic Program brings together teams of students to work on a research problem sponsored by business, industry, or government. Teams work closely with a faculty advisor and a liaison provided by the sponsoring organization to solve complex real-world problems. Students are expected to present their work orally and to produce a final report conforming to professional publication standards. CSCI183 HM and CSCI184  HM must be taken consecutively in the same academic year to count toward the major.

    Prerequisites: CSCI183 HM, and senior standing; or permission of the Computer Science Clinic director

OR

  • CSMT183 HM

    Credits: 3

    Instructor: Staff

    Offered: Fall

    Description: Team project in joint computer science and mathematics, with corporate affiliation. CSMT183 HM and CSMT184 HM must be taken consecutively to count toward the major.

    Prerequisites: Senior standing as a Joint CS/Math major, or permission of the Computer Science and Mathematics Clinic directors.

AND

  • CSMT184 HM

    Credits: 3

    Instructor: Staff.

    Offered: Spring

    Description: Team project in joint computer science and mathematics, with corporate affiliation. CSMT183 HM and CSMT184  HM must be taken consecutively to count toward the major.

    Prerequisites: CSMT183 HM 

Comments

The Joint Major requires 15 courses, which is one more than either the current CS major or the current Math major. Joint Majors will have two advisors, one in Computer Science and one in Mathematics; and all programs must be approved by both advisors.

The Clinic requirement is fulfilled by CSMT183 HM – Computer Science and Mathematics Clinic I and CSMT184 HM – Computer Science and Mathematics Clinic II (a Clinic course number exclusively for Joint Majors). Before other students are assigned to Clinics, the Clinic directors for both math and CS (and the faculty advisors) will meet to place joint majors in math or CS clinics, endeavoring to place students in equal numbers into appropriate math or CS clinics. It is the expectation that Clinic will be taken in the senior year.

With the creation of the joint major, it is much more difficult to pursue a double major in mathematics and computer science. However, if a student wishes to double major in computer science and mathematics, it will only be permitted under the following conditions: the student must complete all requirements (including Clinic and four semesters of CS Colloquium) for the usual computer-science major and all requirements (including Clinic or thesis, and two semesters of Math Forum) for a usual math major.

A double major between the joint major and either the normal computer-science or mathematics major will not be permitted. Double majors between the joint major and other departments are still permitted.

The upper-division electives may be satisfied by a suitable senior thesis.

The four terms of colloquium are deliberately left unordered to allow flexibility, particularly in cases of schedule conflicts. However, we expect that most majors will take one colloquium course (CS Colloquium or Math Forum, Colloquium) each term during junior and senior years.