Computer Science
Major
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: 1) understand information and computation as intrinsic components of a broad array of natural and engineered systems, 2) tackle challenging and fundamental problems with the potential for long-term and real-world impact, 3) develop underlying theory, and 4) nurture collaboration between traditionally separate disciplines. Additional advanced coursework is organized around several "tracks" in which greater depth is obtained in topic areas such as Physical Implementation of Computations, Robust Modeling of Physical Systems, Systematic Design, Theory, Networks & Distributed Systems, Machine Learning, and Interdisciplinary Research. Students can also pursue computer science as a minor at Caltech.
Minor
The computer science minor is intended to supplement one of Caltech's undergraduate degrees and is designed for students who wish to broaden their knowledge beyond their normal major or who may wish to pursue a graduate program involving computer science. Students completing the computer science minor requirements will have the phrase "minor in computer science" added to their transcripts.
Computer Science Coursework at a Glance
CS/Ph 120. Quantum Cryptography. This course is an introduction to quantum cryptography: how to use quantum effects, such as quantum entanglement and uncertainty, to implement cryptographic tasks with levels of security that are impossible to achieve classically. The course covers the fundamental ideas of quantum information that form the basis for quantum cryptography, such as entanglement and quantifying quantum knowledge. We will introduce the security definition for quantum key distribution and see protocols and proofs of security for this task. We will also discuss the basics of device-independent quantum cryptography as well as other cryptographic tasks and protocols, such as bit commitment or position-based cryptography.
In some areas of science, you look at what exists. In other areas, you look at what is possible. Computer science gives us a language for what's possible... The resulting characterization of the design space allows us to look at the limits and think of things that may not have existed before. This design space lets us ask more interesting questions.