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 Discrete Mathematics
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 Principles of Computer Science
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, objectoriented 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 Principles and Practice of Computer Science
Credits: 3
Instructor: Stone and Wiedermann
Offered: Fall
Description: Accelerated breadthfirst introduction to computer science as a discipline for students (usually firstyear) who have a strong programming background. Computational models of functional and objectoriented 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 Computability and Logic
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 Algorithms
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 patternmatching.
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 Algorithms
Credits: 3
Instructors: Boerkoel, Montañez, Schofield, Stone
Offered: Fall and spring
Description: Algorithm design, analysis, and correctness. Design techniques including divideandconquer 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 others. An introduction to computational complexity, NPcompleteness, 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 Data Structures and Program Development
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, selfbalancing trees, and hash tables. Analysis of data structures including worstcase, averagecase 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 Programming Languages
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 languageprovided data structuring and datatyping, modularity, scoping, inheritance, and concurrency. Compilation and runtime issues. Introduction to formal semantics.
Prerequisites: CSCI070 HM and CSCI081 HM
Four Mathematics Courses

MATH062 HM Introduction to Probability and Statistics
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 estimation; 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 Differential Equations
Credits: 3
Instructor: Staff
Offered: Fall
Description: Modeling physical systems, firstorder ordinary differential equations, existence, uniqueness, and longterm behavior of solutions; bifurcations; approximate solutions; secondorder ordinary differential equations and their properties, applications; firstorder 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 Mathematical Analysis I
Credits: 3
Instructors: Castro, de Pillis, Karp, Su, H. ZinnBrooks
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 Abstract Algebra I
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 offcampus math courses numbered in the 100s that replicate HMC Core course content cannot be counted toward the elective requirement.) Courses that are crosslisted 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 Computer Science Colloquium (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/colloquia. All majors welcome.
Prerequisites: Juniors and seniors only
AND
One semester of Mathematics Colloquium:

MATH199 HM Mathematics Colloquium (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 undergraduates. No more than 2.0 credits can be earned for departmental seminars/colloquia.
AND
One semester of Mathematics Forum:

MATH198 HM Undergraduate Mathematics Forum (should be taken in the junior year)
Credit: 1
Instructors: Castro, Jacobsen, Orrison, Williams, H. ZinnBrooks
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 CSmath 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 Mathematics Clinic (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, realworld 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 Computer Science Clinic I
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 realworld 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 Computer Science Clinic II
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 realworld 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 Computer Science and Mathematics Clinic I
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 Computer Science and Mathematics Clinic II
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 computerscience 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 computerscience or mathematics major will not be permitted. Double majors between the joint major and other departments are still permitted.
The upperdivision 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.