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
- or
Math/Stat Courses
Engineering Courses
Science Courses
Other Courses
- 3 × Free Elective
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 |