Clearing Breadth Requirements: Course waiver process
The purpose of the Breadth Requirement for the Doctoral program is to ensure that each graduate of the program has adequate knowledge of the core areas in the field of Computer Science. The Breadth Requirements are divided into 3 areas: Mathematical & Theoretical Foundations, Computer Systems, and Artificial Intelligence & Applications. You need to pass 2 subareas within each of the 3 areas. If you have passed 2 breadth requirements out of each of the 3 areas(A, B, & C of the listing below), you have cleared your breadth requirements! Congratulations! If you think this is the case, please let phdstudentservices@cs.stanford.edu know so that your records can be updated.
If you wish to waive a breadth requirement as the result of coursework completed at another school, you must:
- Complete the waiver form.
- Send the link of the completed saved form to the breadth area approver and cc: phdstudentservices@cs.
- Attach a copy of your transcript showing the grade you received in the "breadth course equivalent" course you completed at your previous institution.
Please complete one form per waiver request.
When you fill out waivers, individual links for each waiver and an "All Waivers" link will be generated. Use the appropriate individual link when submitting your request for a waiver to each corresponding approver.
Note: This form is not to serve as a substitute for meeting with the appropriate faculty member. Rather, the goal of this form is to give students a chance to gather all of their necessary documentation for breadth waivers and in the process save paper since you don't have to print all this out!
Please make sure the breadth area approver notifies phdstudentservices@cs.stanford.edu of the decision so that your records can be updated accordingly.
Current Breadth Requirements Listing (A grade of A- or better must be earned).
Area A: Mathematical & Theoretical Foundations
- Analysis of Algorithms: CS 168, CS261, CS265
- Theory of Computation and Complexity Theory: CS154, CS254
- Numerical Analysis and Convex Optimization: Note: "Generally speaking, to get a waiver, one needs to have the very least used a textbook quite similar to those that would have been use for the same course here." CS205L, CS334a, EE364a, EE364b
- Logic: CS157, Phil251, CS258
Area B: Computer Systems
- Computer Architecture: EE180, EE282, EE382E, CS149, CS316
- Compilers: CS143, CS243
- Networks: CS144, CS244, CS244b
- Programming Languages: CS242, CS358 Note: CS242 is generally expected to be offered once a year; there is currently no instructor for CS358 but it may be offered again in the future.
- Software Systems: Approved breadth area courses can be found here
Area C: Applications
- Artificial Intelligence: CS121, CS221 OR any TWO of the following:
- Computational Biology: CS173A, CS271, CS272, CS274, CS273A , CS273B, CS273C, CS279, CS371, CS373
- Computer and Network Security: CS155, CS251, CS255, CS355, CS 356
- Data Management and Mining: CS145, CS245, CS246, CS345, CS346, CS347
- Graphics: CS148, CS248, CS348A, CS348B, CS348C, CS348E, CS348I, CS 348K, CS438N
- HCI: CS147, CS247 A/B/C series...., CS347
Breadth Area Approvers
Area A: Mathematical and Theoretical Foundations
- Analysis of Algorithms: Moses Charikar
- Theory of Computation and Complexity Theory: Omer Reingold
- Numerical Analysis and Convex Optimization: Ron Fedkiw
- Logic: Mike Genesereth
Area B: Computer Systems
- Computer Architecture: Christos Kozyrakis
- Compilers: Monica Lam
- Networks: Nick McKeown
- Programming Languages: Alex Aiken
- Software Systems: Please visit this page.
Area C: Applications
- Artificial Intelligence: Stefano Ermon
- Computational Biology: Anshul Kundaje
- Computer and Network Security: Dan Boneh
- Databases: Matei Zaharia
- Graphics: Doug James
- HCI: Michael Bernstein