Skip to main content Skip to secondary navigation

Computer Science Program

Main content start

2023-24 Computer Science Program Requirements

Looking at technology today, it is hard to believe that the first computers were developed only seventy years ago. Computers are everywhere, and much of modern engineering involves the application of computer technology.

(Click link for a short presentation on Choosing Introductory CS Courses)

The undergraduate major in computer science offers a broad and rigorous training for students interested in the science of computing. The track structure of the CS program also allows you to pursue the area(s) of CS you find most interesting while giving you a solid overall foundation in the field.

Many students obtaining a BS in CS will go on to work in industry or do graduate work in a branch of CS such as artificial intelligence, robotics, software design, graphics, theory, or hardware design. But CS is not just for future computer scientists. There is an increasing demand for people trained in CS and some other field. If you are interested in working as a manager of a high-tech company, a BS in CS along with an MBA is a great combination. If you want to work on court cases involving software piracy, you will be well served by a BS in CS combined with a JD. Similar opportunities exist for those who combine a BS in CS with an MD or other graduate degree.

The minimum major in computer science consists of 96 units, including 26 units of math, 11 units of science, 10 units of engineering fundamentals, one course in TIS (Technology in Society), one Writing in Major (WIM) course, and 43 units of core depth. After learning essential programming techniques in CS106 (via the CS106A/B courses) and the mathematical foundations of computer science in CS103, the computer science major offers coursework in areas such as artificial intelligence, computational biology, computer engineering,  human-computer interaction, information, systems, theory, and visual computing.

The Computer Science Department also participates in two interdisciplinary majors: Mathematical and Computational Sciences, and Symbolic Systems.

Undergraduate Research Opportunities

In addition to the honors program in CS (see the link to Honors on the home page of this site), there are many opportunities for undergraduates to get involved in research. Here is a partial list:

CURIS (Undergraduate Research in Computer Science)

Each summer undergraduates work with CS faculty through the summer research college. Interested students apply for positions during the winter quarter (the deadline is mid-February), and CURIS decisions are then made and offers sent out before spring quarter begins. These positions are fully-funded and provide invaluable experience in cutting-edge research. All CS students are notified via email of CURIS opportunities and the application process.

Research Seminars and Talks

At various times throughout the year the CS department hosts talks and presentations on various research and technology topics. In addition to these one-time events, there are regularly scheduled seminars that are open to undergraduates. Many of these seminars are available as 1 unit, 500-level courses, but enrollment is not required for attendance.

For students Interested in pursuing a Research-Oriented Undergraduate Program:

Freshman and Sophomore Year
Students interested in pursuing research should plan to finish the majority of the CS core (CS 103, 106, 107, 109, 111, and 161) by the end of the sophomore year. If you already have an idea of the area in CS you'd like to pursue, you may find these course suggestions useful:
If you’re considering…

  • Possible AI courses: make sure to take CS 109 freshman/sophomore year
  • Possible visual computing courses: make sure to take Math 51 and/or Math 104 freshman/sophomore year
  • Possible theory courses: make sure to take CS 109, CS 154, or CS 161 freshman/sophomore year

Students doing summer research through CURIS should expect to take a course or two spring quarter to prepare them for their research project.

Junior Year
During the junior year students considering research can take one of the following sequences, depending upon your field of interest:

  • Artificial Intelligence: Autumn: CS 221, Winter: Any 22X, Spring: Coursework suggested by CURIS advisor
  • Databases: Autumn: CS 145, Winter: CS 245, Spring: Coursework suggested by CURIS advisor
  • Visual Computing: Autumn: CS 148, Winter: CS 248A, Spring: Coursework suggested by CURIS advisor
  • Human-Computer Interaction: Autumn: CS 147, Winter: CS 247, Spring: Coursework suggested by CURIS advisor
  • Systems: Autumn: CS 144, Winter: CS 140, Spring: Coursework suggested by CURIS advisor
  • Theory: Autumn: CS 157 & 161, Winter: CS 212, Spring: Coursework suggested by CURIS advisor

Students doing summer research through CURIS should expect to take a course or two spring quarter to prepare them for their research project.

Senior Year
At the end of the junior year students who qualify are encouraged to apply for the CS honors program (see the Computer Science ‘honors’ section on the Honors Programs page in the ToC). Students who are accepted spend the senior year exploring a research topic in depth and writing an honors thesis.

Note: The above are meant to be taken only as suggestions. If you have questions, contact the CS course advisor at advisor@cs.stanford.edu.

Program Sheets (Excel & pdf)

CS 4-Year Plans

CS Flowchart

CS Requirements

Find current major requirements for this and all other School of Engineering major programs at Explore Degrees

Mathematics

(26 units minimum; see Note 1 or program sheet footnotes for options and restrictions)

  • MATH 19, 20, 21. Calculus, 10 units, Aut-Wtr-Spr (or up to 10 units AP, IB, or transfer credit and placement via Math Diagnostic into MATH 51 or CME 100) (see Note 1) -- Freshman year
  • CS 103. Mathematical Foundations of Computing, 5 units, Aut-Wtr-Spr- Freshman year
  • CS 109. Introduction to Probability for Computer Scientists, 5 units, Aut-Spr -- Sophomore year
  • Mathematics electives, two required, 6 units minimum -- see footnotes on program sheets

Science

(11 units minimum)

  • PHYSICS 41 (or 21 or 61). Mechanics, 4-5 units, -- Freshman year
  • PHYSICS 43 (or 23 or 71). Electricity and Magnetism, 4 units,  -- Freshman year
  • Science Elective (see Note 3 or footnotes on program sheets for options and restrictions)

Engineering Fundamentals

(10 units minimum)

  • ENGR 40M (A,W,S,Sum). An Intro to Making: What is EE, 5 units  -OR-
    ENGR 76 (S). Information Science & Engineering -- Sophomore year
  • CS 106B. Programming Abstractions. 5 units -- Freshman or Sophomore year

Technology in Society

(One course, 3-5 units) See list of approved courses on Approved Courses page; a course must be on list the year it is taken.

Writing in the Major

One course: Choose from CS 181W, 182W, 191W, 194W, 210B, or 294W

Core (15 units)

CourseTitleUnitsOfferedYear

CS 107 or

CS 107E

Computer Organization and Systems

5

5

AWS

AW

Soph

Soph

CS 111Operating Systems Principles5AWSSoph/Jr
CS 161Design and Analysis of Algorithms5AWSumSoph/Jr

See Program Sheet footnotes for crucial details about Core & Depth course and unit requirements
 

Senior Project

CS 191, 191W, 194, 194H, 194W, 210B, 294 (see Note 4 below) 3 units, Sr

Depth

Choose one of the following tracks: minimum of 7 courses (25 units minimum required)

  • Artificial Intelligence Track

a) CS 221

b) Two courses, each from a different area:

    i. AI Methods: CS 224R, 228, 229, 234, 238

    ii. Natural Language Processing: CS 124, 224N, 224S, 224U, 224V

    iii. Vision: CS 131, 231A, 231N

    iv. Robotics: CS 123, 223A, 237A

c) One additional course from category (b) or the following:

    i. AI Methods: CS 157, 205L, 230, 236, 257; Stats 315A, 315B

    ii. Comp Bio: CS 235, 279, 371

    iii. Information and the Web: CS 224W, 276

    iv. Ethics: CS 256

    v. Other: CS 151, 227B, 379

    vi. Robotics and Control: CS 225A, 327A, 329 (with advisor approval), ENGR 205, MS&E 251, MS&E 351
d) Track Electives: At least three additional courses selected from (b), (c), the general CS electives list in Note 5, or the following: CS 325B, 326, 329D, 330, 338, 428; EE 263, 278, 364A, 364B; ECON 286; MS&E 252, 352, 355; PHIL152; PSYCH 204A, 204B, 209; STATS 200, 202, 203, 205, 271. Students can replace one of these electives with a course found at Eligible Humanities Courses.

  • Computational Biology (formerly Biocomputation)Track:  

See Computational Biology/Biocomputation Track requirements below; Mathematics, Science, and Engineering Fundamentals requirements are non-standard

  • Computer Engineering Track

a) EE 108A, 180
b) Any two of: EE 101A, 101B, 102A, 102B.
c) Satisfy the requirements of one of the following concentrations:
1. Digital Systems concentration:
EE 109, 271; CS 112 or 140E
2. Robotics and Mechatronics concentration:
CS 205L, 223A; ME 210 or CS 225A 
3. Networking concentration:
CS 112 or 140E, 144
Any one of: CS 240, 240LX, 241, 244, 244B; EE 179

  • Human-Computer Interaction Track
  1. CS 147, 247 (any suffix), 347

  2. CS 142 or 147L

  3. HCI Mezzanine: CS 177 or 278 or 448B

  4. One course selected from (3), or any of: CS 177, 194H, 206, 210A, 247 (any suffix, beyond the course used in section 1), 377 (any suffix 3 or more units)

  5. At least one additional course selected from (3), (4), or the general CS electives list in Note 5. Students can replace one of these electives with a course found at: Eligible Humanities Courses.

HCI is an interdisciplinary field. As you fulfill your WAYS requirements at Stanford, the HCI faculty suggest you choose WAYS courses that build competency in the non-CS HCI disciplines. Common paths include behavioral science (e.g., Psychology, and media psychology courses in Communications) and design (e.g., d.school, Product Design/Design), but HCI also intersects with fields such as Art Practice, STS, MS&E, Electrical Engineering, Education, and Music.

  • Information Track

a) CS 124, 145
b) Two courses, which must be from different areas below:
i. Information-based AI applications: CS 224N, 224S, 229, 233, 234
ii. Database and Information Systems: CS 112, 140E, 142, 147L,151, 245, 246
iii. Information Systems in Biology: CS 235, 270, 274
iv. Information Systems on the Web: CS 224W
c) At least three additional courses selected from (2) or the general CS electives list (see Note 5 below). Students can replace one of these electives with a course found at: Eligible Humanities Courses.

  • Systems Track

a) CS 112 or 140E
b) One of: CS 143 or EE 180
c) Two additional courses from category (b) or the following: CS 144, 145, 149, 155, 190, 217, 240 or 240LX, 242, 243, 244, 245; EE 271, 282
d) Track Electives: At least three additional courses selected from (c), the general CS electives list (see Note 5 below), or the following: CS 241, 295, 340R, 343D, 349H, 448I; EE 108, 383A, 382C, 384S. Students can replace one of these electives with a course found at: Eligible Humanities Courses.

  • Theory Track

a) CS 154
b) Any one of: CS 168, 255, 261, 264, 265
c) Two additional courses from category (b) or the following: CS 143, 151, 155, 157 (or Phil 151), 163, 166, 205L, 228, 233, 235, 236, 242, 250, 251, 254,  259Q, 263, 269I, 353; MS&E 310
d) Track Electives: At least three additional courses selected from (b), (c), the general CS electives list (see Note 5 below), or the following: CS 254B; CME 302, 305; Phil 152. Students can replace one of these electives with a course found at: Eligible Humanities Courses.

  • Visual Computing (formerly Graphics) Track

a) Any two of CS 225A, 248A, 248B, and 231N
b) Any three of: CS 205L, 223A, 225A, 231A, 231N, 233, 248A, 248B, 348B, 348C, 348E, 348K, 348N, 448I; EE 267
c) Track Electives: Any course from (b), or one of the following: CS 123, 131, 148, 149, 221, 224N, 224R, 229, 230, 234, 236, 236G, 331B, 448B, 448M, 448Z; EE 261

  • Unspecialized Track

a) CS 154
b) Any one of: CS 112, 140E or 143
c) One additional course from (b) or the following: CS 144, 155, 190, 242, 244; EE 180
d) Any one of: CS 221, 223A, 228, 229, 231A
e) Any one of: CS 145, 147, 148, 235, 248A
f) At least two courses from the general CS electives list (see Note 5 below)

  • Individually Designed Track: Students may propose an individually designed track. Proposals should include a minimum of seven courses, at least four of which must be CS courses numbered 100 or above

 

  • Computational Biology Track (formerly Biocomputation)
  • Math: Math 19/20/21 (see Note 1); CS 103, 109
  • Science (12 units min): BIO (any 3 of 82, 83, 85, 86) OR HUMBIO 2A, 3A, 4A
  • Engineering Fundamentals (10 units minimum): CS 106B and options from Approved List
  • Technology in Society (one course, 3-5 units) Find options from Approved List
  • Writing in the Major (WIM): One 3-5 unit course (CS 181W, 182W, 191W, CS210B fulfill the WIM requirement)
  • Core (15 units): CS 107 or 107E; CS 111, CS161
  • Senior Project: Choose from CS 191, CS 191W, 194, 194H, 194W, 294 (see Note 5)
  • Depth
  1. CS 173a
  2. CS 221
  3. CS145 or 246
  4. CS 142, 147L, or 448B
  5. Any one of: CS 279, 371; BIOMEDIN 210, 214, 215, 217, 219, 220, 222, 260, 273B; IMMUNOL 207
  6. One course from the following areas:

    a.      AI Methods: CS222, 224R, 224W, 228, 229, 229S, 234, 238

    b.      Natural Language Processing: CS124, 224N, 224V

    c.      Vision: CS 131, 231N

  7. One course from category  (5) or (6) or the following: CS 147, 148, 154, 166, 168, 185, 230, 248, 353, BIO 183, 187; BIOC 241; BIOMEDIN 248B; EE263, 364A; MS&E 152, 252; STATS 141, 202, 203, 205, 206, 211, 315A, 315B; CHEMENG 150; AppPhys 294; or a class from CS 142, 147L, 448B
  8. One course from: BIOE 220; ChemEng 150, 174; GENE 211; ME 281; AppPhys 294; BIO 81, 82, 83, 84, 85, 86,112, 214, 230; CHEM 31A, 31B, 31M, 33, 141, 143, 171; BIOC 241; Dbio 210; SURG 101 or a class from category (5)   

Notes

1. MATH 19, 20, 21, or 10 units AP BC credit or equivalent transfer work (and placement via Math Diagnostic into MATH 51 or CME 100), may be used as long as at least 26 math units are taken. Six units of IB, AP BC, or AP AB credit on the SU transcript is equal to MATH 19+20, not 21, which may not be skipped. If the Math Placement Diagnostic places into CME 100/MATH 51, and a grade or C or better is achieved, students without AP/IB credit may petition to waive up to 6 units math (Math 19/20).
2. The Mathematics electives list consists of: Math 51, 52, 53, 104, 107, 108, 109, 110, 113; CS 157, 205L; PHIL 151; CME 100, 102; ENGR 108 (formerly CME/EE 103). Restrictions: CS 157 and PHIL 151 may not be used in combination to satisfy the Math electives requirement. Students who have taken both Math 51 and 52 may not count CME 100 as an elective, and students who take Math 51 and CME 100 receive a maximum of 8 units of credit in the major (due to overlapping material).
3. Any course of 3 or more units from the School of Engineering Approved Science Courses; PSYCH 30; or AP Chemistry or Physics credit (and placement via Chemistry and/or Physics Diagnostic) may also be used. Either of the physics sequences 61/81 (formerly 63) or 21/23 may be substituted for 41/43 as long as at least 11 science units are taken.
4. CS 191 and 191W independent study projects require faculty sponsorship and must be approved, in advance, by the advisor, faculty sponsor, and the CS senior project advisor (Chris Gregg). A form bearing these signatures, along with a brief description of the project, should be filed with the department representative and emailed to cgregg@stanford.edu the quarter before work on the project is begun.
5. General CS Electives: CS 108, 112, 123, 124, 131, 140E or 212, 142, 143, 144, 145, 146, 147, 147L,148, 149, 151, 154, 155, 157 (or Phil 151), 163, 166, 168, 173A, 177, 190, 195 (4 units maximum), 197, 197C, 205L, 206, 210A, 212, 217, 221, 223A, 224N, 224R, 224S, 224U, 224V, 224W, 225A, 227B, 228, 229, 229M, 229T, 230, 231A, 231N, 232, 233, 234, 235, 237A, 237B, 238, 240, 240LX, 242, 243, 244, 244B, 245, 246, 247 (any suffix), 248 (any suffix), 250, 251, 252, 254, 254B, 255, 256, 257, 259Q, 261, 263, 265, 269I, 269Q, 270, 271, 272, 273A, 273B, 273C, 274, 275 276, 278, 279, 281, 330, 333, 334A, 336, 342, 348 (any suffix), 351, 352, 353, 361,  369L, 398, 448B; CME 108; EE 180, 267, 282, 364A, 374. MS&E 234.
7. Of the category (b) options for the Visual Computing (formerly Graphics) track, CS 205L is strongly recommended as a preferred choice. Note that students taking CME 104 are also required to take its prerequisite course CME 102.

Coterm Deadlines and Contact

DeptApplication DeadlinesContactWebsite
Computer Science

10/13/23 for Wtr 23-24

1/12/24 for Spr 23-24

3/22/24 - Aut 24-25

LaToya Powell

admissions@cs.stanford.edu

https://cs.stanford.edu/admissions/coterminal-program

Declaring CS

For instructions on declaring CS, go the the Declaring page on the CS site.