(See also Joint Major in Computer Science and Mathematics and Mathematical and Computational Biology )
Professors O’Neill (Chair), Bang, Boerkoel, Breeden, Dodds, Keller, Kuenning, Lewis, Libeskind-Hadas, Medero, Montañez, Schofield, Stone, Sweedyk, Talvitie, Trushkowsky, Wiedermann, and Wu.
Computer science is an exciting and rapidly evolving discipline with components of cognitive science, design, logic, mathematics, engineering, and philosophy. Computer science provides the logical infrastructure for our modern, information-based society.
The computer science major teaches the fundamental principles of the discipline through a blend of experimentation, theory, and design. We seek to prepare our graduates to make contributions to the field of computing, to computational aspects of science and engineering, and to society through research and development that has a positive social impact.
Each computer science major participates in a yearlong capstone Computer Science Clinic project, addressing real-world problems provided by sponsors from industry and research laboratories. A Clinic project typically comprises three to five students, supervised by a faculty member and a liaison from the sponsor, working on a project from “concept to product.” More information on the Computer Science Clinic Program can be found at www.cs.hmc.edu/clinic.
Computer science students frequently engage in research with faculty mentors during the academic year and the summer in areas such as artificial intelligence, computational biology, databases, programming language design, robotics, and others. A description of current and recent research projects can be found at www.cs.hmc.edu/research.
Graduates of the computer science program have gone on to work for a diverse set of employers ranging from startups to large companies and, in some cases, have started their own companies. A significant number of our majors have also gone on to graduate study. More information on our graduates is available at https://www.cs.hmc.edu/life-after-mudd.
All students at Harvey Mudd College are required to complete CSCI005 HM or an equivalent course, providing exposure to some major concepts in the discipline including functional programming, object-oriented programming, digital logic and computer organization, computability theory, and societal issues.
The computer science major continues with the foundation courses, starting with CSCI060 HM , which provides a broader exposure to many areas of computer science and further develops fundamental competence in programming, logic, algorithm analysis, and computer structure. MATH055 HM is taken to develop skills in discrete mathematics that are needed for advanced computer science areas. CSCI070 HM improves the students’ depth of programming competence and exposes computer science students to a diverse array of data structures and analysis techniques. CSCI081 HM introduces the mathematical foundations of computer science, particularly logic, automata, and computability theory, and demonstrates their applications to problems of practical significance.
The kernel courses build on the foundation. CSCI105 HM develops a deep understanding of computer structure and its relationship to correct and efficient program implementation. CSCI121 HM focuses on requirements analysis and specification techniques for large software systems and on the project management skills needed to develop such systems. CSCI131 HM investigates the concepts underlying a wide variety of modern programming languages. CSCI140 HM develops fundamental skills needed to design and analyze algorithms for a variety of applications.
Topics such as concurrent and parallel computing, software testing, programming style, maintainability, software tools, etc. are horizontally integrated across the CS curriculum. Finally, the broad array of computer science electives (more than 20 elective and seminar courses) allow students to achieve more specialization in areas of personal interest.
Other Department Curriculum Policies
Other departmental curriculum policies can be found at www.cs.hmc.edu/program/policies.
Concentration in Computer Engineering
Students frequently ask about the possibility of pursuing a computer engineering major at Harvey Mudd. Because the Department of Engineering offers a non-specialized engineering degree, students interested in computer engineering may wish to major in computer science. While the courses offered in the Computer Science Department are focused primarily on systems and software, appropriate engineering courses may be counted toward the elective course requirements of the computer science major.
Computer Science Majors from the Other Claremont Colleges
Pomona College offers an undergraduate major in computer science; there is close cooperation between the Pomona and Harvey Mudd computer science departments.
Harvey Mudd welcomes computer science majors from the other Claremont Colleges. Students from the other colleges who desire to major in computer science at Harvey Mudd College should inform the chair of the Computer Science Department of their plans so that they may be assigned an appropriate advisor.
The Harvey Mudd computer science major assumes significant material included in the Harvey Mudd technical Core. In particular, it is assumed that students have taken courses in calculus, linear algebra, and differential equations. Part of the advising process for an off-campus student involves identifying the courses that the student should take before enrolling in Harvey Mudd computer science courses.