Computation is now pervasive, wide-reaching, and unavoidable in our daily lives, and in science and engineering. The Computer Science option gives students a strong grounding in the mathematical and algorithmic foundations of computing, provides an introduction to cutting-edge research in a variety of subfields of Computer Science, and prepares them to apply computational thinking to a diversity of applications in Computer Science and beyond. Our students and faculty strive to:
- understand information and computation as intrinsic components of a broad array of natural and engineered systems
- tackle challenging and fundamental problems with the potential for long-term and real-world impact
- develop underlying theory
- nurture collaboration between traditionally separate disciplines
The undergraduate computer science option introduces students to the mathematical and engineering foundations of the discipline. It provides considerable flexibility in course selection, together with a capstone project giving an opportunity for independent work in an area of the student's choice. A set of "core" courses give students a strong foundation in programming principles, algorithms and complexity, and computing systems. Additional advanced coursework is organized around several "tracks" in which greater depth is obtained in topic areas such as networking, distributed systems, robotics, machine learning, graphics, databases, and more. Students are provided a variety of research opportunities, both through the SURF (Summer Undergraduate Research Fellowships) program and the required capstone project sequence.
The department expects undergraduate majors to achieve
- a thorough understanding of the mathematical and algorithmic foundations of computer science,
- a depth of knowledge, and an understanding of the research frontiers, in at least one subfield of computer science,
- experience in working on a significant project, typically as part of a team,
- an appreciation of the scope of applications of computing in information systems and across science and engineering,
- an ability to apply computational thinking to a wide variety of problems both inside and outside Computer Science,
- an understanding of how to critically evaluate computer science research
- an ability to effectively communicate their ideas in writing and in oral presentations.
The undergraduate degree equips students with the tools and knowledge necessary for a successful research, industrial, and entrepreneurial career in computing.
Undergraduate Major Details and Requirements
Requirements and further details for the undergraduate major in Computer Science are listed in the current (2021-22) Caltech Catalog, starting on page 276.
Undergraduate Options Administrator
Undergraduate Option Representative
Computer Science Option Representative