The Harvey Mudd College Department of Computer Science graduated its first class in 1992. Since then, the department has grown to its current size of thirteen tenure-track faculty, several visiting faculty, and four staff members.

In addition to the Computer Science Major, the department supports the Joint Major in Computer Science and Mathematics and the Mathematical and Computational Biology Major. There are currently approximately 80 students total per graduating class in these three majors.

The department works closely with our sister departments at Pomona and Claremont McKenna Colleges and our courses draw students from all five Claremont Colleges and the Claremont Graduate University.

The department seeks to provide students with a strong foundational background blending experimentation, theory, and design. Our graduates are equally well-prepared for work in industry and graduate school. The capstone Clinic Program provides students with a year-long software design project and our active Research Program involves approximately 50 students in research, funded by grants and gifts from the National Science Foundation, Howard Hughes Medical Institute, and the Rose-Hills and Baker Foundations.

Department News

  • Professor Geoff Kuenning co-authored the paper "Graphs Are Not Enough: Using Interactive Visual Analytics in Storage Research", which appeared in the Usenix HotStorage '19 Workshop. The paper presents a visualization tool that helps system designers and experimenters explore the vast number of possibilities available (often millions or more) when configuring storage systems. The tool makes it easy to "zero in" on the parameters that have the most impact on performance in a chosen situation, so that an analyst can quickly find the best settings for a given environment.
  • The International Conference on Automated Planning and Scheduling (ICAPS) has accepted three papers co-authored by Professor Jim Boerkoel with students working in his HEATLab (the Human Experience & Agent Teamwork Lab).  The papers are:  "Quantifying Degrees of Controllability in Temporal Networks with Uncertainty", written with Shyan Akmal '19, Savana Ammons '20, and Maggie Li '19;  "Measuring and Optimizing Durability Against Scheduling Disturbances", written with Joon Lee '20 and Viva Ojha '19; and "Reducing the Computational and Communication Overhead of Robust Agent Rescheduling", written with Jordan Abrahams '19 and co-author Jeremy Frank. The papers will be presented at the ICAPS conference in Berkeley, CA in Summer 2019.
  • Professor Melissa O'Neill recently co-authored a short paper "Xorshift1024*, xorshift1024+, xorshift128+ and xoroshiro128+ fail statistical tests for linearity", with Professor Daniel Lemire of the University of Quebec. Their paper will appear in the April 2019 issue of the Journal of Applied and Computational Mathematics (which is already accessible on-line). Their work highlights flaws in a relatively new but quite widely used family of random number generators that had previously been described by other researchers as free of statistical flaws. Their work illustrates the need to test 64-bit generators carefully, especially when using a test suite originally designed to test 32-bit generators.
  • Professor Chris Stone co-authored the paper "Design and Implementation of the Andromeda Proof Assistant" with colleagues in Slovenia and France; it will appear in the TYPES 2016 post-proceedings. The core purpose of the Andromeda system is to verify whether a given mathematical proof is correct and complete. The novel aspect of Andromeda is that easy steps of the proof can be skipped; as a consequence, "given a proof, is it valid?" becomes undecidable. How can we build a useful system to give yes/no answers when no perfect algorithm exists? Andromeda allows users to guide an imperfect checker to the correct answer, using methods that range from providing small hints ("while you're checking this case of the proof, keep in mind that multiplication is commutative") to completely replacing the proof-checking algorithm with one that works better for a specific part of the proof.