45.00 Hours Required

The Master of Science degree in Computer Science indicates two things to prospective employers. First, it guarantees that you have a broad grounding in computer science as a discipline. Second, it certifies that you have studied a particular area in detail and thus have additional depth in a particular specialty. Both components are important to the Master's program, and it is not possible to secure a Stanford MSCS degree that does not meet both requirements. The central requirement for the MSCS degree is completion of at least 45 units that represent an approved academic plan. The concrete representation of that academic plan is your program sheet, which lists the courses you intend to use to satisfy the 45-unit requirement.

Breadth Requirement

Students are asked to demonstrate breadth by taking courses in three general areas:

  • Mathematical and Theoretical Foundations
  • Computer Systems
  • AI and Applications

Typically, each area is organized as a small set of required courses and a larger set from which you can choose particular courses that fit best with your overall program. To satisfy the breadth requirement, you must demonstrate that you have taken each of the required courses, along with an appropriate subset of the higher-level breadth courses that meet the requirements for each area. It is important to understand that only coursework can be used to satisfy the breadth requirement. Additionally, you may not count more than 21 units from the set of courses that comprise the program prerequisites (courses numbered between CS100 and CS109) and the courses listed under the breadth requirement category. If you need to take more courses in these categories, your program will have to include more than 45 total units. Sometime early in your first quarter - preferably in the first week or two - you should schedule a meeting with your academic advisor and go over your breadth requirements. Contact the department of Computer Science for detailed information on the Breadth Requirement by sending email to: admissions@cs.stanford.edu


The MSCS program requires you to complete at least one 500-level CS seminar (or EE380 or EE385A) so that you have some exposure to the research activity of the department. Although they may take more, students may only count a maximum of three units of seminars (or other 1-2 unit courses) toward the MSCS degree.

Depth Requirement

In addition to the breadth requirement, the Stanford MSCS program requires that all students take at least 21 units in a specific area of specialization. Most students complete one of the ten department approved specializations, but may also petition the MSCS committee to approve a specialization of their own design. The ten approved specializations are:

  • Artificial Intelligence
  • Biocomputation
  • Computer and Network Security
  • Database Systems
  • Human-Computer Interaction
  • Numerical Analysis/Scientific Computation
  • Real-World Computing
  • Software Theory
  • Systems
  • Theoretical Computer Science

In most cases, a specialization consists of a set of required courses, a larger set of courses out of which you must select some subset, and a larger set from which you select additional courses to fill out the 21-unit requirement. More detailed information about breadth requirements and specialization areas can be found at: CS degree planning tool. Questions about admission to the graduate program in Computer Science should be directed to: admissions@cs.stanford.edu


Elective courses are really up to the student to select, even though the entire program must be approved by their advisor. In general, courses in computer science numbered at the 100-level or above (with the exception of CS196, 197, and 198) are suitable as electives. Courses in related departments, such as Electrical Engineering, Mathematics, and Statistics, numbered at the 100-level or above and technical in nature are also likely to be approved. On the other hand, courses that are completely unrelated to computer science would not normally be appropriate as electives.

Additional Requirements

Minimum GPA requirement: In order to receive an MSCS degree, the student's GPA in the courses they submit on their program sheet must be at least 3.0, which corresponds to a B in Stanford's grading scale. Note that students need not get a B in every course. All the requirement states is that the overall GPA, which is simply the average of the numeric grade weighted by the number of units in each course, must be at least a 3.0. Note, however, that the GPA is computed only for the courses students submit on their program sheet. If a student does poorly in several courses, it may be wise for them to eliminate those courses from their program sheet and substitute other courses in which they have done better. Substitutions may require the student to take more than 45 units, but it is important to know that a single disastrous grade will not necessarily doom their entire program.

Letter-grade requirement: This requirement is mostly self-explanatory but nonetheless deserves emphasis. At least 36 of the required 45 units, including all of the depth units submitted for specialization, must be taken for a letter grade. Note that seminar courses, which must be taken on an S/NC basis, are not letter-graded courses. The remaining 9 units may be taken on a credit/no credit basis if the student so chooses.


For course tuition and fees, please click Tuition & Fees.

Time Commitment

Most part-time students take an average of 3 to 5 years to complete the 45-unit requirement.  You must complete a Master's degree within 5 years of starting the program.


Detailed information about the graduate degree program and admission process can be found on the Computer Science Department web site: Computer Science Graduate Program. For assistance while in the application process, please contact the Computer Science Student Services Office using the following email address: admissions@cs.stanford.edu

Expected Background

The MSCS program assumes that all entering students have acquired the foundations of computer science at the level of an undergrad minor. At Stanford, these foundations are represented by the following courses, which are considered as the standard prerequisites for the program:

  • CS103 (Logic, Automata and Complexity)
  • CS109 or STAT116 or CME106 or MS&E220(Probability)
  • CS161 (Algorithmic Analysis)
  • CS107 (Computer Organization and Systems)
  • CS110 (Principles of Computer Systems)

If you have taken these courses - either at Stanford or elsewhere - you have the necessary background to begin studying at the MSCS level.

Program Proposal

Students must file their initial program sheet before the end of your first registered quarter as a MSCS student. Filing the program sheet, however, does not lock you into taking exactly the set of courses you originally propose. If you need to change your plan of study, you must simply renegotiate the contract, which means filing a new program sheet that represents your updated course of study. You must get your advisor's signature on the revised plan but need not get new signatures for individual courses that were approved on a previously filed program. The important thing to remember is that, before you will be cleared for graduation, you must have a program sheet on file that matches the courses that you in fact completed. If you decide to change your course of study, you should get a new program sheet signed as soon as possible to ensure that the changes are in fact approved.