CS-BS - Computer Science (BS)
Download as PDF
Program Overview
The undergraduate program in Computer Science aims to develop students’ breadth of knowledge across the subject areas of computer science, including their ability to apply the defining processes of computer science theory, abstraction, design, and implementation to solve problems in the discipline. Students take a set of core courses. After learning the essential programming techniques and the mathematical foundations of computer science, students take courses in programming techniques, automata and complexity theory, systems programming, computer architecture, analysis of algorithms, artificial intelligence, and applications. The program prepares students for careers in government, law, and the corporate sector and for graduate study.
Minimum Units in the Program
Minimum University Units
- 2085321
- 2085281
- 1172271
- 1172291
- 1172301
MATH 19, MATH 20, and MATH 21, or AP Calculus Credit may be used as long as at least 26 MATH units are taken.
AP credit may also be used to satisfy Math 19, 20 and/or 21. Please see the Stanford External Test Credit Equivalency Charts for additional details.
Students must complete at least 2 Math Electives regardless of if they've reached the 26 units of Math.
- 2023541
- 1043151
- 1043162
- 1056841
- 1057251
- 2155763
- 1172571
- 1172591
- 1172611
- 1172891
- 2170341
- 1172921
- 1172931
- 1172941
- 1172961
- 1222441
Math electives are not required for the Computational Bio Subplan.
- 1226171
OR 1226021
OR 1226431
OR 2208011 - 1226191
OR 1226071
OR 1226461
OR 2193131
Students may also use AP Physics if approved by the School of Engineering.
The Computational Biology Subplan requires a different set of Science courses. Please see the Computational Biology Subplan for details.
- 1118501
- 1118511
- 2181841
- 2193621
- 2193661
- 2193651
- 2193671
- 2193681
- 2193751
- 1119251
- 1034411
- 2042511
- 2042531
- 1122461
- 1122501
- 1122531
- 1122731
- 2225792
- 1290821
- 2095052
- 1115811
- 1115841
- 1115901
- 1226021
- 1226071
- 1226101
- 1226171
OR 2208011 - 1226191
- 1226241
- 1226431
- 1226511
- 1226461
- 1237921
The Science Elective may be any course of three or more units from the list above or AP Chemistry Credit. The School of Engineering must approve AP Chemistry and AP Physics credits.
- 1032041
- 2046082
OR 2046081 - 2120991
- 2161132
OR 2161133 - 1034551
- 2247752
- 2145761
- 2181541
- 2041791
- 2260352
OR 2260351 - 2268121
- 2253931
- 2250151
- 2216301
- 2213951
- 2213961
- 2263691
- 2241661
- 2205711
- 2249831
- 2243447
- 2185951
- 1043131
- 2206851
OR 2206852 - 2117255
AND 2038935 - 2262061
- 2055941
- 2262281
- 1045334
- 2072331
- 1230891
- 2234232
- 2151001
- 2137911
- 2264231
- 2199191
- 1056451
- 2152291
OR 2221541
The Computational Biology Subplan requires a different set of Engineering Fundamentals courses. Please see the Computational Biology Subplan for details.
**Students without prior programming experience should first take CS106A.
- 1056491
OR 2164691 - 2228601
- 1056871
Courses must be taken for 5 units.
The following subplans include an electives requirement:
Artificial Intelligence
Visual Computing
Human-Computer Interaction
Information
Systems
Theory
Unspecialized
These electives requirements can include choosing from a list of CS General Electives course (listed immediately below):
If you see a reference to CS-BS General Electives in one of the subplans, you can refer here for that list.
- 2234871
- 2254531
- 2085111
- 2149051
- 2255663
- 2250151
- 2197091
- 1056721
- 2075241
- 1056751
- 2275851
- 2274401
- 1056761
- 2255561
- 1056781
- 1056791
- 2205701
- 1056821
- 2016391
- 1056841
OR 1222441 - 2148161
- 2156861
- 2263801
- 2071961
- 2246171
- 2202391
- 2215251
- 2248571
- 1057251
- 2188202
- 2093111
- 2237541
- 2205841
- 1057301
- 2263691
- 1057361
- 2255581
- 1209041
- 2242591
- 2036822
- 2234881
- 1058241
- 1057431
- 2050301
- 1057481
- 1057501
- 2254171
- 2224462
- 2253921
- 2198851
- 1057371
- 2164531
- 1400362
- 2170091
- 2190451
- 2117823
- 2185453
- 2215361
- 2158402
- 1057571
- 2223741
- 1057611
- 1057621
- 2274531
- 2010401
- 2215291
- 2224681
- 2265371
- 2215301
- 2215311
- 2215321
- 1057741
- 1057761
- 2233191
- 1040962
- 2171371
- 2107621
- 2215691
- 1057791
- 2241661
- 2241711
- 2273431
- 2136071
- 1057881
- 2225471
- 2103631
- 2145631
- 2186001
- 1272172
- 1410293
- 2186011
- 2214723
- 1410302
- 2064032
- 2205711
- 2159421
- 2232911
- 2252402
- 2166321
- 2215371
- 2255541
- 2214782
- 1058651
- 2182021
- 2216211
- 2224641
- 2199951
- 2233051
- 1058731
- 1031562
- 2207811
- 1059441
- 2259031
- 1056641
- 2244902
- 2026971
- 2027851
- 2168541
- 1039231
- 2066521
- 2222721
- 2114051
- 2259461
- 2177571
- 2227622
Students must successfully complete CS 111 prior to taking CS 112.
CS111 and CS212 can both be counted towards the BS requirements. Students must successfully complete CS111 prior to taking CS140E.
CS195 can be taken for a maximum of four units.
CS293 must be taken for 3+ units.
See individual subplans for specific direction on selecting General Elective courses.
The Department of Computer Science (CS) encourages undergraduates to take humanities and social science courses outside of CS to complement the technical curriculum.
Students in the Artificial Intelligence, Human-Computer Interaction, Information, Systems, Theory, or Visual Computing tracks may use up to one course from the approved CS humanities electives list to fulfill a track elective requirement on their program sheet.
Note: This option is not available for students in the Computational Biology, Computer Engineering, or Unspecialized tracks.
- 2023103
- 2206161
- 2046082
- 2223863
- 2169412
- 2252901
- 1103581
- 2169431
- 2023101
- 2172401
- 2240281
- 2197201
- 2181541
- 2192981
- 2041791
- 2269291
- 2213771
- 2205671
- 2205531
- 2260352
- 2268121
- 2216301
- 1055861
- 2111611
- 2213951
- 2213961
- 2222411
- 2188202
- 2232911
- 2196104
- 1295152
- 2243444
- 2195511
- 2216112
- 2225121
- 2249231
- 1291412
- 2102141
- 2223861
- 2206544
- 2143841
- 2071481
- 2120992
- 2055562
- 2238891
- 2260211
- 2168274
- 2216101
- 2216102
- 2134291
- 2055561
- 2168273
- 2269391
- 2240863
- 2209681
- 2229621
- 2011661
- 2183662
- 1207101
- 1207061
- 2246063
- 1045591
- 2263481
- 1221271
- 2091342
- 1408384
- 1222661
- 1222696
- 2265212
- 2238701
- 2171541
- 2264631
- 1408383
- 1237981
- 1237991
- 2215914
- 2156881
- 1239701
- 2024741
- 2031891
- 1240621
- 2226421
- 2189731
- 1244591
- 2194811
- 1408381
Cross-listed versions of these courses are also acceptable.
CS 121, 181W or 182W will satisfy both the Writing in the Major (WiM) and Technology in Society (TiS) requirements.
CS 191W, 194W, or 210B will satisfy both the Writing in the Major (WiM) and Capstone requirements.
- 2268121
- 2111611
- 2213961
- 1056921
- 2111641
- 2093121
- 1056911
- 1056921
- 1057051
- 2111641
- 2093121
Independent study projects (course Senior Project or course Writing Intensive Senior Project) require faculty sponsorship and must be approved by the advisor, faculty sponsor, and the CS senior project advisor. A signed approval form and a brief description of the proposed project should be filed the quarter before work begins. Further details can be found in the Handbook for Undergraduate Engineering Programs (UGHB).
The Department of Computer Science (CS) offers an honors program for undergraduates whose academic records and personal initiative indicate that they have the necessary skills to undertake high-quality research in computer science. Admission to the program is by application only. To apply for the honors program, students must be majoring in Computer Science, have a grade point average (GPA) of at least 3.6 in courses that count toward the major, and achieve senior standing (135 or more units) by the end of the academic year in which they apply. Coterminal master’s students can apply if they have not received their undergraduate degree. Beyond these requirements, students who apply for the honors program must find a Computer Science faculty member who agrees to serve as the thesis advisor for the project. Thesis advisors must be members of Stanford’s Academic Council.
Upon acceptance into the Honors Program, students are required to fulfill the following requirements within the academic year of their admission.
Complete at least nine units of course or course under the direction of their project sponsor
Attend a weekly honors seminar during winter and spring quarters
Complete an honors thesis deemed acceptable by the thesis advisor and at least one additional faculty member
Present the thesis at a public colloquium sponsored by the CS department
Maintain the 3.6 GPA required for admission to the honors program
- 1056911
OR 1056921
- 1057301
Select a total of two courses, each from a different area.
You can only select one course from each area.
- 2242591
- 1057481
- 1057501
- 2224462
- 2190451
- 2158402
You can only select one course from each area.
- 2085111
- 1209041
- 2036822
- 2234881
You can only select one course from each area.
- 2149051
- 1057371
- 2164531
You can only select one course from each area.
- 2254531
- 2255663
- 1057361
- 2185453
Select one additional course from the Track B Requirement list or from the following:
- 1056841
- 1057251
- 2198851
- 2205691
- 2241711
- 1254901
- 1254911
- 2117823
- 2159421
- 1058241
- 2241661
- 1057431
- 1058321
- 1043361
CS329 (any suffix) may be taken with advisor approval.
- 2253921
- 2263691
- 2205701
- 2050301
Complete at least three additional courses selected from the lists above, the Track Electives below, or the General Electives listed in the Electives section. Up to one course from the Eligible Humanities Electives list (also found in the Electives section) may be used.
- 2124481
- 2195513
- 2196961
- 2214782
- 1038991
- 1039161
- 2066521
- 2066541
- 1045581
- 1046011
- 1222451
- 2024741
- 2031891
- 2133671
- 1254161
- 1254201
- 1254211
- 1254231
- 2226491
- 1255552
86 units minimum for the subplan
**The Computational Biology track/subplan's Mathematics, Science, and Engineering Fundamentals requirements are non-standard - there are no math electives required.
WiM and Capstone requirements are standard and the same for all tracks/subplans.
Complete a minimum of 20 units of mathematics coursework.
- 1172271
- 1172291
- 1172301
- 2085321
- 2085281
AP credit may also be used to satisfy Math 19, 20 and/or 21. Please see the Stanford External Test Credit Equivalency Charts for additional details.
Complete at least 3 courses and 12 units in either the Biology Sequence or Humbio Sequence.
- 2193661
- 2193651
- 2193681
- 2193751
- 1115811
- 1115841
- 1115901
Students must complete CS106B, and one SoE-approved Engineering Fundamentals Elective course found at https://ughb.stanford.edu/courses/engineering-fundamentals.
Students may not use another CS106 course as their Engineering Fundamentals Elective.
- 1056451
Complete at least 8 courses and 25 units.
- 2071961
- 1057301
CS173A was previously offered as CS273A. Either CS173A or CS273A can be used to complete this requirement.
- 2258431
- 2010401
- 2275851
- 2255561
- 1059441
- 2244902
- 2186012
- 1272171
- 1410301
- 2122201
- 2064031
- 2094221
- 2214722
- 2117822
- 2159421
- 2162561
- 2085111
- 2149051
- 1209041
- 2242591
- 2234881
- 1058241
- 1057481
- 1057501
- 2253921
- 2164531
- 2190451
- 2158402
Complete one additional course from the Track D or Track E lists above, or one of the following.
- 2079241
- 1120641
- 2226471
- 1272881
- 2186012
- 1272171
- 1410301
- 2122201
- 2064031
- 2094221
- 2214722
- 2117822
- 1032821
- 2085111
- 2149051
- 2085161
- 1056761
- 2255561
- 1056781
- 1056821
- 2148161
- 2156861
- 1209041
- 2242591
- 2234881
- 1058241
- 1057481
- 1057501
- 2253921
- 2198851
- 2164531
- 2190451
- 2158402
- 1057741
- 2159421
- 2244902
- 1038991
- 2066521
- 2162561
- 1045271
- 1045581
- 2010471
- 1254201
- 1254211
- 1254231
- 1254241
- 1254293
- 1254901
- 1254911
Complete at least one additional course from the Track D list, or from the following.
- 2079241
- 2193621
- 2193661
- 2193651
- 2193671
- 2193681
- 2193751
- 2193681
- 1118852
- 1275793
- 1120201
- 1272881
- 2022622
- 2259361
- 2042511
- 2042531
- 1122461
- 1122501
- 2183881
- 2183891
- 1122861
- 2052151
- 1032821
- 1036782
- 1273491
- 2012731
- 2142151
- 2023031
- 1056911
- 1056921
- 1057051
- 2111641
- 2093121
CS 191W, 194W, and 210B also satisfies the Writing in the Major (WiM) requirement.
93 units minimum
25 units and 7 courses minimum of Computer Engineering Depth coursework.
- 2026971
- 2027851
Select two of the following:
- 2031031
- 2031041
- 2031051
- 2031061
Satisfy the requirements of one of the following concentration requirements below: Digital Systems, Robotics and Mechatronics, or Networking.
- 2037841
- 1039061
- 2234871
- 2197091
- 1057251
- 1057361
- 1051121
OR 1057431
Required Courses
- 2234871
OR 2197091 - 2075241
- 1057571
- 2223741
- 2172792
- 2274531
- 1038081
93 units minimum
25 units and 7 courses minimum of Human-Computer Interaction Depth coursework.
- 1056761
- 2215291
OR 2224681
OR 2265371
OR 2215301
OR 2215311
OR 2215321 - 2046501
Students may replace CS347 with a two-course combination of (1) COMM254 or COMM224 and (2) an additional HCI elective from the Track C or Track Elective course lists below.
- 2275851
- 2255561
- 2246171
- 2205711
- 1059441
Complete one additional course from the Track C List or from one of the following.
- 2164971
- 2188202
- 2093111
- 2263691
- 2248641
- 2215291
- 2224681
- 2265371
- 2215301
- 2215311
- 2215321
- 2249831
- 2167691
- 2207811
- 2199851
- 2277071
- 2212611
- 2176841
Students may use up to one Humanities course option in place of a Track Elective or Additional Elective. The list of Optional Humanities Electives Options can be found in the Electives section.
Complete at least one additional course from the Track C list, Track Elective list, or the CS General Electives list found in the Electives section.
Students may use up to one Humanities course option in place of a Track Elective or Additional Elective. The list of Optional Humanities Electives Options can be found in the Electives section.
93 Units minimum
25 units and 7 courses minimum of Information Depth coursework.
- 2085111
- 1056751
Complete two courses from different areas:
You can only select one course from each area.
- 1209041
- 2036822
- 1057501
- 2170091
- 2190451
You can only select one course from each area.
- 2234871
- 2197091
- 2255561
- 2205701
- 2010401
You can only select one course from each area.
- 2117823
- 1272172
- 1410302
You can only select one course from each area.
- 1058241
Complete at least three additional courses selected from Track B List, the General CS Electives listed in the Electives section, or up to one course from the list of Optional Humanities Elective courses found in the Electives section.
93 Units minimum
25 units and 7 courses minimum of Systems Depth coursework.
- 2234871
- 2197091
- 1056721
- 2027851
- 2075241
- 1056751
- 1056791
- 2016391
- 2205841
- 1057571
OR 2223741 - 1057611
- 1057621
- 2274531
- 1039061
- 1039231
Complete at least three additional courses selected from the Track C list above, the Subplan Electives listed below, or General CS Electives or up to one Humanities course listed in the Electives section.
- 2172792
- 2037561
- 2242391
- 2226881
- 2196851
- 2237801
- 2164112
- 2026971
- 2152401
- 2042331
- 1400391
You may also choose from the list of CS-BS General Electives courses listed in the Electives section. Up to one course from the Eligible Humanities Electives list (also found in the Electives section) may be used.
93 Units minimum
25 units and 7 courses minimum of Theory Depth coursework.
- 1056821
- 2156861
- 1057791
- 1057881
- 2145631
Complete two additional courses from Track B list, or one of the following:
- 1056721
- 2205701
- 2016391
- 1056841
OR 1222441 - 2148161
- 1057251
- 1057481
- 2170091
- 2117823
- 2205691
- 1057611
- 1040962
- 2171371
- 2107621
- 2136071
- 2225471
- 2103631
- 2186001
- 1058731
*Enrollment in CS369 with permission of undergraduate advisor.
Complete at least three additional courses selected from Track B or C lists above, the Subplan Electives listed below, or General CS Electives listed in the Electives section. Up to one course from the Eligible Humanities Electives list (also found in the Electives section) may be used.
- 1057521
- 2215691
- 1222451
93 Units minimum
25 units and 7 courses minimum of Unspecialized Depth coursework.
- 1056821
- 2234871
- 2197091
- 1056721
Complete one additional course from the list above, or one of the following:
- 2075241
- 2016391
- 1057611
- 2274531
- 2027851
- 1057301
- 1057361
- 1057481
- 1057501
- 1057371
- 2158402
- 1056751
- 1056761
- 1056781
- 2156861
- 2071961
- 1057741
- 1057761
- 2159421
Complete at least two additional courses selected from the CS-BS General Electives list in the Electives section. You may also choose up to one course from the list of Eligible Humanities courses listed in the Electives section.
93 Units minimum
25 units and 7 courses minimum of Visual Computing Depth coursework.
- 1057431
- 1057741
- 1057761
- 2164531
- 1057251
- 1057361
- 2242591
- 1057431
- 1057371
- 2164531
- 2170091
- 1057741
- 1057761
- 2182021
- 2224641
- 2199951
- 2164112
- 2168541
Complete at least three additional courses selected from the Visual Computing Depth course list above, from the Subplan Electives list below, or the CS-BS General Electives list in the Electives section. Up to one Humanities course may be used.
- 2254531
- 2149051
- 1056781
- 1056791
- 1057301
- 1209041
- 1057501
- 2198851
- 2190451
- 2205691
- 1059441
- 2171381
- 1038971
Students may propose an Individually Designed Track that includes a minimum of seven courses and 25 units, at least four of which must be CS courses numbered 100 or above. Proposals must be submitted and approved at least two quarters before graduation. To create an individually designed program, students should complete an Individually Designed Track program sheet and obtain approval from their undergraduate advisor and the Associate Chair for Education, Chris Gregg. Proposals will be evaluated for coherence and rigor. Approved program sheets should be submitted to the staff in the CS undergraduate program office, and any subsequent changes must go through the same proposal and approval process.