Computer Science at Stanford University

Last Updated on January 15, 2023

A lot of people are interested in computer science courses at stanford university. But it can be tough to figure out which classes you need to take during your first two years. Fortunately, the CS department at Stanford provides an extensive list of recommended courses for each major. The student handbook also contains this information. If you’re having trouble finding the requirements, keep reading.  

Stanford University is not only well-known for its high academic standards, but also for its popular computer science programs. The university requires a minimum set of courses so that every student has a firm foundation in the related subject. Students are encouraged to take at least two computer science classes in their freshman year.

Computer Science At Stanford University

Stanford University’s Computer Science Department is part of the School of Engineering. The department offers the degrees Bachelor of Science, Master of Science, and Doctor of Philosophy. It also participates in the following undergraduate inter-disciplinary programs: Computer Systems Engineering, Symbolic Systems, and Mathematical and Computational Sciences. Founded in 1965, the Department of Computer Science is a center for research and education at the undergraduate and graduate levels. Strong research groups exist in areas of artificial intelligence, robotics, foundations of computer science, scientific computing, and systems. Basic work in computer science is the main research goal of these groups, but there is also a strong emphasis on interdisciplinary research and on applications that stimulate basic research.

Fields in which interdisciplinary work has been undertaken include chemistry, genetics, linguistics, physics, medicine and various areas of engineering, construction, and manufacturing. Close ties are maintained with researchers with computational interests in other university departments. In addition, both faculty and students commonly work with investigators at nearby research or industrial institutions. The main educational goal is to prepare students for research and teaching careers either in universities or in industry.

Courses offered by the Department of Computer Science are listed under the subject code CS on the Stanford Bulletin’s ExploreCourses web site.

The Department of Computer Science (CS) operates and supports computing facilities for departmental education, research, and administration needs. Current CS students have access to a departmental student machine for general use and computer labs located in the Gates Building. In addition, most students have access to systems located in their research areas.

Each research group in Computer Science has systems specific to its research needs. These systems include workstations, computer clusters, GPU clusters, and local file servers. Servers and workstations running Linux , MacOS, or various versions of Windows are commonplace. Support for course work and instruction is provided on systems available through University IT (UIT) and the School of Engineering (SoE).

Mission of the Undergraduate Program in Computer Science

The mission of the undergraduate program in Computer Science is 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 areas such as 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.

Computer Science Course Catalog Numbering System

The first digit of a CS course number indicates its general level of sophistication:

Computer Science Course Catalog Numbering System
DIGITDESCRIPTION
001-099Service courses for nontechnical majors
100-199Other service courses, basic undergraduate
200-299Advanced undergraduate/beginning graduate
300-399Advanced graduate
400-499Experimental
500-599Graduate seminars

The tens digit indicates the area of Computer Science it addresses:

Computer Science Course Catalog Numbering System
DIGITDESCRIPTION
00-09Introductory, miscellaneous
10-19Hardware and Software Systems
20-39Artificial Intelligence
40-49Software Systems
50-59Mathematical Foundations of Computing
60-69Analysis of Algorithms
70-79Computational Biology and Interdisciplinary Topics
90-99Independent Study and Practicum

stanford university computer science requirements

These requirements are set and approved by the School of Engineering. Changes to these requirements must be approved by the School of Engineering Office of Student Affairs in Huang 135 one quarter prior to a student’s last quarter. For most students, this is winter quarter of senior year. More instructions and forms are available at the UGHB petitions website.

Using AP Credit to satisfy math and science requirements must also be approved by the Office of Student Affairs. To receive this approval, take a program sheet and unofficial transcript to Huang 135.

The math, science, and engineering fundamentals requirements for the biocomputation and computer engineering tracks differ from those listed here. Please see the program sheets for specifics.

Math

Calculus

CS majors may use Math 19/20/21, 41/42, or AP credit to satisfy the calculus requirement. For more information, refer to the Calculus sections of the Stanford AP Credit Chart.

Mathematics in Computer Science

The undergradute curriculum requires two CS math classes: Mathematical Foundations of Computing (CS103) and Introduction to Probability for Computer Scientists (CS109).

Math Electives

Two additional math electives are required for the CS major. The electives can be any combination of classes from an approved set of courses, listed on the first page of the program sheets. Because of significant overlap in the material covered, certain class combinations cannot be counted towards the math requirement. See your program sheet for more information.

Science

Physics

CS majors must take both a Mechanics class (PHYSICS21, PHYSICS41, PHYSICS61) and an Electricity and Magnetism class (PHYSICS23, PHYSICS43, PHYSICS63). Mixing classes from different series is acceptable. Physics labs are not required for the CS major. In general, almost any college level, first year physics class that covers mechanics and E&M will be awarded transfer credit and count towards the physics requirement. So if you want to take physics at Foothill College, the local community college, or at home over the summer, that is usually fine. The School of Engineering approves this requirement so it might be wise to check with them ahead of time if you’re planning to do this. AP credit will also satisfy the physics requirement. For more information, refer to the Physics sections of the Stanford AP Credit Chart.

Science Elective

The science elective is one or perhaps two classes to bring the total science units to at least 11. The list of approved electives includes the School of Engineering science electives list, plus PSYCH30 (Perception). A 5 on the AP Chemistry exam will count as 4 units of science elective credit. This year’s Undergraduate Engineering Handbook will also have an up-to-date list of classes that can be counted towards the science elective.

Engineering Fundamentals

Programming Abstractions (CS106B or CS106X)

CS106X covers the same topics as CS106B, but with more in-depth coverage and at a faster pace. Note that it is also possible to take CS106X (rather than CS106B) after taking CS106A. It is also strongly recommended that you take CS106X even if you’ve had a considerable amount of prior programming experience, particularly if you do not know C++. This will ensure you have the necessary foundation for more advanced work expected in later CS classes.

Introductory Electronics (ENGR40)

ENGR40 is an introductory electronics class taught by the EE department. The class has weekly problem sets, labs, a midterm, and a final.

Engineering Fundamentals Elective

The engineering fundamentals elective is another class from the School of Engineering engineering fundamentals list. This year’s Undergraduate Engineering Handbook will also have an up-to-date list of classes that can be counted towards the engineering fundamentals elective. Effective as of the 2017-2018 program sheets, you can now count an additional CS depth course (track or general elective) in place of the second engineering fundamentals course.

Keep in mind that if you take ENGR40A instead of ENGR40M, you still have to fulfill the required number of units within the Engineering Fundamentals section. This can be done either by taking 5 unit Engineering Fundamentals Elective or making up the rest of the units in your depth courses. For example, if you take CS106B, ENGR40A, and a 3 unit Engineering Fundamentals, you need another additional 2 units, which you can make up by making sure you have 2 additional units in your depth courses on the back of the program sheet.

Technology in Society

The TIS classes are devoted to exploring issues arising from the interplay of engineering, technology, and society. Any class from the School of Engineering technology in society courses list can be counted towards this requirement. This year’s Undergraduate Engineering Handbook will also have an up-to-date list of classes that can be counted towards the technology in society requirement.

Computer Science Department Requirements

Core

Systems

Programming Abstractions (CS106B or CS106X)

CS106B introduces students to many fundamental programming concepts and software engineering techniques using the C++ language. The course will focus on teaching problem solving skills, basic abstract data typs, and recursion. General topics include basic programming methodology (engineering, modularity, documentation), data abstractions (stacks, queues, linked lists, hash tables, binary trees, generics and templates), recursion (procedural, backtracking), searching and sorting, and basic algorithmic analysis (including Big-Oh notation).

Computer Organization and Systems (CS107)

CS107 transitions students to programming on the UNIX machines. The class aims to teach students about computer systems from the hardware up to the source code. Topics include machine architecture (registers, I/O, basic assembly language), memory models (pointers, memory allocation, data representation), compilation (stack frames, semantic analysis, code generation), and basic concurrency (threading, synchronization).

Principles of Computer Systems (CS110)

CS110 will teach students how to build larger scale systems using operating system and networking abstractions. Topics include processes (threading, context switching, interprocess communication), storage and file management (file systems, virtual memory), networking (sockets, TCP/IP, routing) and an understanding of distributed systems.

Theory

Mathematical Foundations of Computing (CS103)

CS103 will give students the mathematical foundations necessary for computer science. Topics include proof techniques and logic; induction; sets, functions, and relations; an introduction to formal languages; DFA’s, NFA’s, and Regular Expressions; Context-Free Grammars, Turing Machines, and NP-Completeness.

Introduction to Probability for Computer Scientists (CS109)

CS109 is designed to teach students material from probability and statistics that is relevant to computer science. Topics include combinatorics; probability theory; conditional probability, and independence; probability distributions; Bayes’ Theorem, Law of Large Numbers, and the Central Limit Theorem; and hypothesis testing. The class will also cover applications of probability including hashing, data analysis, inference, and an introduction to machine learning.

Data Structures and Algorithms (CS161)

CS161 gives students the tools to analyze data structures and algorithms. Students will also practice devising algorithms for various problems. These skills are widely applicable and alumni report CS161 as one of the most useful classes at Stanford. Topics include algorithmic complexity analysis (Big Oh, Omega, Theta), recurrence relations, and the master method. In addition, students learn about several different classes of algorithms and data structures, including randomized algorithms, divide and conquer strategies, greedy algorithms, hasing, heaps, graph algorithms, and search algorithms (including blind and A* search).

stanford university computer science courses

CSD Course Timetables and Websites:

Numbering System

The first digit of a CS course number indicates its general level of difficulty:

  • 0-99 service course for non-technical majors
  • 100-199 other service courses, basic undergraduate
  • 200-299 advanced undergraduate/beginning graduate
  • 300-399 advanced graduate
  • 400-499 experimental
  • 500-599 graduate seminars

The ten’s digit indicates the area of Computer Science it addresses:

  • 00-09 Introductory, miscellaneous
  • 10-19 Hardware Systems
  • 20-29 Artificial Language
  • 30-39 Numerical Analysis
  • 40-49 Software Systems
  • 50-59 Mathematical Foundations of Computing
  • 60-69 Analysis of Algorithms
  • 70-79 Computational Biology and Interdisciplinary Topics
  • 90-99 Independent Study and Practicum

stanford cs major 4 year plan

Freshman and Sophomore Year
Students interested in pursuing research should plan to finish the majority of the CS core (CS 103, 106, 107, 109, 110, 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 graphics 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
  • Graphics: Autumn: CS 148, Winter: CS 248, 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 259, 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.

CS Requirements

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

Mathematics

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

  • MATH 19, 20, 21. Calculus, 10 units, Aut-Wtr-Spr (or up to 10 units AP credit and placement via Math Diagnostic into MATH 51 or CME 100) — 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 63). Electricity and Magnetism, 4 units,  — Freshman year
  • Science Elective (see 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 — 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 orCS 107EComputer Organization and Systems55AWSAWSophSoph
CS 110orCS 111Principles of Computer Systemsor
Operating Systems Principles
5 5AWS SSoph/Jr
Soph/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, or 294W (see Note 8 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 228, 229, 234, 238

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

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

    iv. Robotics: CS 223A, 237A

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

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

    ii. Comp Bio: CS 235, 279, 371

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

    iv. Other: CS 151, 227B, 379

    v. Robotics and Control: CS 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 237B, 257, 275, 326, 329D, 330, 333, 336, 338, 398, 428; EE 263, 278, 364A, 364B; ECON 286; MS&E 252, 352, 355; PHIL152; PSYCH 204A, 204B, 209; STATS 200, 202, 205, 271.

  • BiocomputationTrack:  

See Biocomputation Track program sheet; 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
Any two of: CS 112, 112E, 140, or 140E 
2. Robotics and Mechatronics concentration:
CS 205L, 223A, 225A; ME 210, 
3. Networking concentration:
CS 1112 or 112E, or 140 or 140E, 144
Any one of: CS 240 or 240LX, 241, 244, 244B; EE 179

  • Graphics Track

a) CS 148, 248
b) Any one of: CS 205L (strongly recommended); CME 104 (prereq of CME 102), 108; Math 52, 113
c) Any two of: CS 131 or 231A, 233, 348 (any suffix), 448
d) Track Electives: At least two additional courses selected from (b), (c), the general CS electives list (see Note 5 below), or the following: ARTSTUDI 160, 170, 179; CME 302, 306; EE 168, 262, 264, 278, 368; ME 101; PSYCH 30, 221.

  • Human-Computer Interaction Track

a) CS 147, 247 (any suffix), 347

b) CS 142

c) Any one of: CS 194H, 206, 210A, 247 (any suffix, beyond the course used in section a), 278, 377 (any suffix 3 or more units), 448B
d) At least one additional course selected from (c) or the general CS electives list in Note 5.

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), 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 (if using 111), 112E, 140 (if using 110) or 140E, 142, 151, 245, 246, 341
iii. Information Systems in Biology: CS 235, 270, 274
iv. Information Systems on the Web: CS 224W, 276
c) At least three additional courses selected from (b) or the general CS electives list (see Note 5 below).

  • Systems Track

a) CS 112, 112E, 140 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, 269Q, 316, 341, 344 (3 or more units, any suffix), 349 (with advisor approval), 357S, 448; EE 108, 382C, 384A, 384C, 384E, 384F, 384S.

  • Theory Track

a) CS 154
b) Any one of: CS 168, 255, 261, 265, 268
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, 252, 254, 259 (with advisor approval), 263, 269I, 351, 353, 354, 355, 357, 358, 359 (with advisor approval), 369 (with advisor approval); 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, 269G; CME 302, 305; Phil 152.

  • Unspecialized Track

a) CS 154
b) Any one of: CS 112, 112E, 140 or 140E, 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, 248
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

About the author

The Editorial Team at Infolearners.com is dedicated to providing the best information on learning. From attaining a certificate in marketing to earning an MBA, we have all you need. If you feel lost, reach out to an admission officer.
Study on Scholarship Today -- Check your eligibility for up to 100% scholarship.

Leave a Comment