CS Curricula

←All schools

Harvey Mudd CollegeWebsiteAcademic Catalog

Computer ScienceDepartment Website

BS Degree in Computer Sciencesource 1source 2

120 units needed for graduation. Updated for 2023-24.

CS Courses

Math/Stat Courses

Engineering Courses

Science Courses

Other Courses


Goals for the computer science major at HMC

  • Design an algorithm to solve a problem and reason about properties such as correctness, case-completeness and time complexity.
  • Starting from an informal, English language description of a problem, give a fully formal computational description of it and prove something about the behavior of the system.
  • Describe the high-level behaviors that occur in the execution of a computer program, recognizing the layers of abstraction involved, including those facets of the system not fully understood.
  • Apply computational foundations to a variety of advanced CS topics.
  • Demonstrate facility with the hardware, software and computing paradigms commonplace in academic and professional workplaces. This includes designing and writing substantial code corpora in many different general-purpose languages (e.g., C++, Python, Java, Haskell, C, assembly) as well as special-purpose/domain-specific languages.
  • Succeed at first-rate graduate schools in CS and related disciplines; and/or at companies, labs and other institutions with leadership roles in the field of computing.
  • Purposefully and positively engage with project stakeholders outside the HMC community.
  • Identify strategies for solving an open-ended problem that are ethical, feasible, and add value, and which are based on pertinent background research and appropriate design.
  • Deliver professional work products, including designs, models, software prototypes/products and documentation.
  • Attend to relevant project trade-offs along dimensions such as performance, usability, robustness, security and durability.
  • Understand, influence, and adapt to non-computational constraints and opportunities that accompany a computational project, including ethical considerations and possible impacts on society. Students will defend their decisions to peers and colleagues.
  • Verbally present to professional and lay audiences about a computational challenge, their approach to addressing it and their results.
  • Demonstrate team-interaction skills on an open-ended computational project satisfying both internal and external stakeholders.
  • Write about computational systems and principles, using language suitable for technical and nontechnical audiences as appropriate.
  • Explain the appropriateness of alternative computational-system designs with respect to the social context in which the system would be used.

Goals for all HMC students' computer science education

  • Decompose problems into subproblems, create solutions from subproblems and compose solutions to solve composite problems.
  • Design, implement and execute algorithms in a programming language.
  • Write clear, appropriate and concise documentation for their programs.
  • Test software for correctness.
  • Describe relationships between computer science and at least three distinct non-CS fields.
  • Articulate some of the big questions, answers and ideas of computer science, e.g., (un)computability, models of computation and execution efficiency.
  • Explain the relationships among a number of major sub-disciplines within computer science.
  • Apply computational skills to explore problems of personal or professional interest.
  • Perform experiments using computational tools, including specifying a hypothesis, gathering and analyzing data, and clearly presenting results.
  • Adapt and extend their computational skills to new contexts as needed in their post-HMC path (e.g., using a different editor/IDE, finding and using appropriate code libraries, learning a new programming language or computational workflow).

History of the Major

2023  
Replace CSCI 121 (Software Development) → CSCI 123 (Computing Practices, Projects, and People).
2022  
Replace BIOL 052 (Introduction to Biology) → BIOL 046 (Introduction to Biology).
Replace CHEM 23A + CHEM 23B → CHEM 42.
2021  
Add CORE 079 (STEM & Social Impact: Climate Change).
Drop MATH 082 (Differential Equations).
Drop PHYS 051 (Electromagnetic Theory and Optics).
2020  
2019  
Replace MATH 030B + MATH 030G + MATH 060 → MATH 019 (Calculus).
Replace MATH 040 → MATH 073.
Replace MATH 065 → MATH 082.
Drop MATH 035 (Probability and Statistics).
2018  
2017  
Replace CL 057 (Core Lab) → BIOL 023 (Biology Laboratory).
2016