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

  • Credits: 3

    Instructors: Benjamin, Bernoff, Orrison, Pippenger

    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: MATH040 HM or MATH073 HM 

and

  • Credits: 3

    Instructors: Dodds, Lewis, Stone, Trushkowsky

    Offered: Fall and Spring

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

    Prerequisites: CSCI005 HM or CSCI005GR HM 

or

  • Credits: 3

    Instructors: Keller, Stone, 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, object-oriented, and logic programming. Data structures and algorithm analysis. Computer logic and architecture. Grammars and parsing. Regular expressions. 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

  • Credits: 3

    Instructors: Keller, 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 and (CSCI060 HM or CSCI042 HM)

and

  • Credits: 3

    Instructors: Pippenger, Sweedyk (Computer Science), Libeskind-Hadas (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 CSCI081 HM) or ((CSCI060 HM or CSCI042 HM) and MATH131 HM))

or

  • Credits: 3

    Instructors: Boerkoel, Libeskind-Hadas, Stone, Pippenger (Mathematics)

    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 CSCI081 HM) or ((CSCI060 HM or CSCI042 HM) and MATH131 HM))

Two Computer Science Courses

  • Credits: 3

    Instructors: Medero, O'Neill, Stone, Wiedermann

    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

  • Credits: 3

    Instructors: Keller, O'Neill, Stone

    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 

Two Mathematics Courses

  • Credits: 3

    Instructors: Castro, Karp, Omar, Su

    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 

  • Credits: 3

    Instructors: Benjamin, Karp, 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: (MATH040 HM or MATH073 HM) and MATH055 HM 

Electives

  • 14 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, with the exception of MATH070 HM or MATH080 HM. (Some off-campus math courses numbered in the 100s that replicate HMC Core course content may not 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:

  • (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:

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

    Credit: 0.5

    Instructors: Benjamin, Jacobsen, Su

    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:

  • (should be taken in the junior year)

    Credit: 1

    Instructors: Castro, Jacobsen, Orrison, Yong

    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.

Clinic

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, or on an interdisciplinary project. Software Development (CSCI121 HM), is strongly recommended for students wishing to take Computer Science Clinic.

  • (Taken twice)

    Credits: 3

    Instructors: Bernoff, Castro, de Pillis, Gu, Martonosi, Williams

    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.

or

  • 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 to count toward the major.

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

and

  • 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 to count toward the major.

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

or

and

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.