Study in the computer science option within the Computing & Mathematical Sciences department emphasizes rigor and creativity, and is good preparation either for graduate study followed by a research career, or for a variety of professional or entrepreneurial occupations.
The 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. Individual programs will be worked out in consultation with faculty advisers (the materials at cms.caltech.edu/academics/ugrad_cs may be helpful for this purpose).
Any student in the computer science option whose grade-point average is less than 1.9 at the end of the academic year in the subjects listed in the option requirements may be refused permission to continue work in the option.
CS Double Majors
Students interested in simultaneously pursuing a degree in a second option must fulfill all the requirements of the computer science option. Specific courses that are explicitly required by both options only need to be taken once. For example, if both options require CS 38, then it can count for both. However, elective courses that satisfy the “Advanced CS” requirement or the “Breadth” requirement cannot be double counted. That is, Requirements 4 and 8 must be fulfilled using courses that are not simultaneously used for fulfilling a requirement of the second option. To enroll in the program, the student should meet and discuss their plans with the option representative. In general, approval is contingent on good academic performance by the student and demonstrated ability for handling the heavier course load.
CS Option Requirements
- CS fundamentals. CS 1 or CS 1X; CS 2; CS 3; CS 4.
- Intermediate CS. CS 21; CS 24; CS 38.
- CS Project Sequence. One of the following:
- An undergraduate thesis (CS 80abc) supervised by a CS faculty member.
- A project in computer science, mentored by the student’s academic adviser or a sponsoring faculty member. The sequence must extend at least two quarters and total at least 18 units of CS 81abc.
- Any of the following three-quarter sequences. Each of the sequences is expected to be available (nearly) yearly.
- Databases: CS/IDS 121, CS 122, CS 123.
- Graphics: CS/CNS 171 and two other CS 17x courses. The three courses can include a 9 or 12 unit CS81abc focused on graphics, if approved by a CS faculty member for this purpose.
- Learning & Vision: At least three courses chosen from EE/CNS/CS 148, CMS/CS/CNS/EE/IDS 155, CS/CNS/EE 156 ab, IDS/ACM/CS 157, ACM/CS/EE/IDS 158, CS/CNS/EE/IDS 159, CNS/Bi/EE/CS/NB 186, CNS/Bi/Ph/CS/NB 187, Ec/ACM/CS 112, including at least one of 148, 156 b, 159, or 186.
- Networks & Communication: Three courses selected from CS 141, CS/IDS 142, CS/EE/IDS 143, CMS/CS/EE/IDS 144, CS/EE 145, CS/EE 146, EE/Ma/CS 126a, EE/Ma/CS 126b, EE 127, EE/CS/EST 135, EE 160, EE 161.
- Quantum & Molecular Computing: At least three courses chosen from BE/CS/CNS/Bi 191 ab, BE/CS 196 ab, ChE 130, Ph/CS 219 abc.
- Robotics: At least three courses chosen from ME 115 ab, ME/CS/EE 133 B, ME/CS/EE 134, EE/CNS/CS 148, CNS/Bi/EE/CS/NB 186.
- Advanced CS. A total of 72 CS units that are not applied to requirements 1 or 2 above, and that either (i) are numbered CS 114 and above or (ii) are in satisfaction of requirement 3 above. Included in these units must be at least one of CS 122, CS 124, CS 137, CMS/CS/IDS 139, CS/IDS 142, CS/EE/IDS 143, CS/IDS 150 a, or CS 151.
- Mathematical fundamentals. Ma 2/102; Ma 3/103; Ma/CS 6a or Ma 121a.
- Communication fundamentals. SEC 10, and one of SEC 11-13.
- Scientific core electives. 18 units selected from the following courses: BE/Bi 25, Bi 8, Bi 9, Ch 21 abc, Ch 25, Ch 41 abc, Ph 2 abc, or Ph 12 abc. Advanced 100+ courses in Ay, Bi, BE, Ch, CNS, Ge, MedE, or Ph with strong scientific component can be used to satisfy this requirement with approval from the option representative.
- Breadth. In addition to all of the above requirements, 30 units in Ma, ACM, or CS; 18 units in EAS or Ma; and 9 units not labeled PE, PVA or SA.
Units used to fulfill the Institute Core requirements do not count toward any of the option requirements. Pass/fail grading cannot be elected for courses taken to satisfy option requirements. Passing grades must be earned in a total of 486 units, including all courses used to satisfy the above requirements.
CS Typical Course Schedule
Units per term | ||||
1st | 2nd | 3rd | ||
Second Year | ||||
Scientific Fundamentals | 9 | 9 | - | |
Ma 2, Ma 3 | Sophomore Mathematics | 9 | 9 | - |
CS 1 | Intro. to Computer Programming 1 | 9 | - | - |
CS 2 | Intro. to Programming Methods 1 | - | 9 | - |
CS 4 | Fundamentals of Computer Program | - | 9 | - |
Ma/CS 6 a | Intro. to Discrete Math | 9 | - | - |
CS 21 | Decidability and Tractability | - | 9 | - |
CS 3 | Intro. to Software Design | - | - | 9 |
CS 38 | Introduction to Algorithms | - | - | 9 |
HSS electives | 9 | - | 18 | |
Other electives | - | - | 9 | |
Total | 45 | 45 | 45 | |
Third Year | ||||
CS courses | - | 9 | 9 | |
CS 24 | Intro to Computing Systems | 9 | - | - |
CS project | 9 | 9 | 9 | |
HSS electives | 9 | 9 | 9 | |
SEC 10 |
Technical Seminar
Presentations |
- | - | 3 |
EAS/Ma courses | 9 | 9 | 9 | |
Other electives | 9 | 9 | - | |
Total | 45 | 45 | 39 | |
Fourth Year | ||||
CS courses | 9 | 9 | - | |
HSS electives | 9 | 9 | 9 | |
EAS/Ma courses | 9 | 9 | 9 | |
Other electives | 18 | 9 | 18 | |
Total | 45 | 36 | 36 |
1 Commonly taken during the first year.
CS 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.
CS Minor Requirements
- CS fundamentals. CS 1 or CS 1X; CS 2; CS 3.
- Mathematical fundamentals. Ma 2; Ma 3; Ma/CS 6a or Ma 121a.
- Intermediate CS. CS 21; CS 24; CS 38.
- Advanced CS. 9 CS units numbered 114 or above that are not applied to the above requirements and are not simultaneously used for fulfilling a requirement of the student’s major option. Pass/fail grading cannot be elected for courses taken to satisfy option requirements. Courses taken as part of the computer science minor are counted toward the total 486 units needed for Institute graduation requirements. To enroll in the program, the student should meet and discuss their plans with the option representative. In general, approval is contingent on good academic performance by the student and demonstrated ability for handling the heavier course load.