skip to content

Bulletin Archive

This archived information is dated to the 2011-12 academic year only and may no longer be current.

For currently applicable policies and information, see the current Stanford Bulletin.

Master of Science in Computer Science

In general, the M.S. degree in Computer Science is intended as a terminal professional degree and does not lead to the Ph.D. degree. Most students planning to obtain the Ph.D. degree should apply directly for admission to the Ph.D. program. Some students, however, may wish to complete the master's program before deciding whether to pursue the Ph.D. To give such students a greater opportunity to become familiar with research, the department has instituted a program leading to a master's degree with distinction in research. This program is described in more detail below.

Admission—Applications to the M.S. program and all supporting documents must be submitted and received online by the published deadline. Information on admission requirements and deadlines is available at http://cs.stanford.edu/admissions/. Exceptions are made for applicants who are already students at Stanford and are applying to the coterminal program. See https://cs.stanford.edu/wiki/admissions/Applying/Deadlines.

University requirements for the coterminal M.S. are described in the "Coterminal Bachelor's and Master's Degrees" section of this bulletin. For University coterminal degree program rules and University application forms, see http://studentaffairs.stanford.edu/registrar/publications#Coterm.

REQUIREMENTS

A candidate is required to complete a program of 45 units. At least 36 of these must be graded units, passed with a grade point average (GPA) of 3.0 (B) or better. The 45 units may include no more than 10 units of courses from those listed below in Requirement 1. Thus, students needing to take more than two of the courses listed in Requirement 1 actually complete more than 45 units of course work in the program. Only well-prepared students may expect to finish the program in one year; most students complete the program in six quarters. Students hoping to complete the program with 45 units should already have a substantial background in computer science, including course work or experience equivalent to all of Requirement 1 and some prior course work related to their specialization area.

Requirement 1: Foundations—

Students must complete the following courses, or waive out of them by providing evidence to their advisers that similar or more advanced courses have been taken, either at Stanford or another institution:

  1. Logic, Automata, and Computability: CS 103
  2. Probability: CS 109 or STATS 116 or MS&E 220 or CME 106
  3. Algorithms: CS 161
  4. Computer Organization and Systems: CS 107
  5. Principles of Computer Systems: CS 110

Requirement 2: Significant Software Implementation—

Students must complete at least one course designated as having a significant software implementation component. The list of such courses includes: CS 140, 143, 144, 145, 148, 210B, 221, 243, 248, 346.

Requirement 3: Specialization—

Students may choose to satisfy this requirement through one of two options, Single Depth or Dual Depth, outlined following. All courses taken for this requirement must be taken for letter grades.

Specialization Areas—

Ten approved specialization areas which may be used to satisfy Requirement 3 are listed following. Students may propose to the M.S. program committee other coherent programs that meet their goals and satisfy the basic requirements.

Courses marked with an asterisk (*) require consent of the faculty adviser. Courses marked with a double asterisk (**) may be waived by students with equivalent course work and with the approval of their adviser.

  1. Artificial Intelligence—
    1. CS 221**
    2. At least four of: CS 223A, 224M, 224N, 224S, 224U, 224W, 226, 227, 228, 229, 231A
    3. Sufficient depth units from category (b) and the following: CS 124, 205A, 222, 225A, 225B, 227B, 228T, 231B, 246, 262, 270, 273A, 274, 275, 276, 277, 278, 279, 294A*, 321, 322, 327A, 328, 329, 331, 341, 345, 364A, 364B, 374, 377,* 379*; 393*, 395*, 399*; EE 263, 363, 364A, 364B, 376A; ENGR 205, 209A; MS&E 251, 252, 339, 351, 352, 353; PSYCH 202, 205; STATS 202, 315A, 315B
      • Students with a 27- or 21-unit depth option (Option 1 or 2 above) must take 27 or 21 units respectively subject to satisfying the area (a), (b), and (c) requirements above.
      • Students with a secondary area of specialization (per Option 2 above) in Artificial Intelligence must take five total courses satisfying the area (a) and (b) requirements above.
      • Those students who have waived out of CS 221 may take an additional course in either area (b) or (c).

    Artificial Intelligence Breadth Courses—CS 140, 143, 144 or EE 284, 145, 147, 148, 149, 154, 155, 157, 164, 240, 240E, 242, 243, 244, 244B, 244E, 249A, 255, 258, 259, 261, 268; CME 108, 302; EE 108B, 282.

  2. Biocomputation—
    1. at least four of: CS 262, 270, 272, 273A, 274, 278, 279
    2. Sufficient depth units from category (a) and the following: CS 228, 229, 245, 246, 261, 268, 275, 277, 341, 345, 346, 365, 374, 393*, 395*, 399*; BIOC 218; GENE 203, 211; SBIO 228
      • Students with a 27- or 21-unit depth option (Option 1 or 2 above) must take 27 or 21 units respectively subject to satisfying the area (a) and (b) requirements above.
      • Students with a secondary area of specialization (per Option 2 above) in Biocomputation must take five total courses, three courses of which must come from area (a) and the remaining two courses may come from either area (a) or (b).

    Biocomputation Breadth Courses—CS 121 or 221, 124, 140, 143, 144 or EE 284, 145, 147, 148, 149, 154, 155, 157, 164, 205A, 222, 223A, 224M, 224N, 224S, 224U, 224W, 226, 227, 227B, 231A, 240, 240E, 242, 243, 244, 244B, 244E, 249A, 255, 258, 259, 276, 279; CME 108, 302; EE 108B, 282.

  3. Computer and Network Security—
    1. CS 140**, 144**, 155, 244, 255
    2. At least three of: CS 142, 240, 241, 244B, 244C, 259, 261, 340, 344, 355, 365
    3. Sufficient depth units from category (b) and the following: CS 240E, 244E, 245, 294S*, 295, 341, 344B, 345, 347, 361A, 393*, 395*, 399*; EE 384A, 384B, 384C, 384M, 384S, 384X, 384Y
      • Students with a 27- or 21-unit depth option (Option 1 or 2 above) must take 27 or 21 units respectively subject to satisfying the area (a), (b), and (c) requirements above.
      • Students with a secondary area of specialization (per Option 2 above) in Computer and Network Security must take five courses; those five courses must satisfy the area (a) requirement and additional courses from area (b) should be taken if any area (a) requirements are waived.

    Computer and Network Security Breadth Courses—CS 121 or 221, 124, 143, 147, 148, 149, 154, 157, 164, 205A, 222, 223A, 224M, 224N, 224S, 224U, 224W, 226, 227, 227B, 228, 229, 231A, 242, 243, 249A, 258, 262, 268, 270, 273A, 274, 276, 279; CME 108, 302; EE 108B, 282.

  4. Human-Computer Interaction—
    1. CS 147**
    2. One of: CS 247, 294H
    3. One of: CS 376, 378, 448B
    4. One of: CS 124, 142, 148
    5. One of: CS 303; COMM 206, 268; PSYCH 110, 252
    6. One of: ARTSTUDI 160; ME 203, 216A, 313, 377
    7. One or more courses from areas (b) through (f), or the following: CS229, 242, 246, 248, 295, 341, 393*, 395*, 399* or any d.school class listed at http://www.stanford.edu/group/dschool/participate/classes.php, or any HCI class listed at http://hci.stanford.edu/courses noted as counting toward the CS M.S. degree. Such courses must be numbered 100 or above and be taken for at least 3 units to count for this requirement.
      • Students with a 27- or 21-unit depth option (Option 1 or 2 above) must take 27 or 21 units respectively subject to satisfying the area (a) through (g) requirements above.
      • Students with a secondary area of specialization (per Option 2 above) in Human-Computer Interaction must take five courses as follows:
        1. one course each from areas (a), (d), (e), and (f)
        2. then one course from either area (b) or (c)
      • Students waiving out of the area (a) requirement should take one additional course from areas (b) through (g).

    Human-Computer Interaction Breadth Courses—CS 121 or 221, 140, 143, 144 or EE 284, 145, 149, 154, 155, 157, 164, 205A, 222, 223A, 224M, 224N, 224S, 224U, 224W, 226, 227, 227B, 228, 231A, 240,240E, 243, 244, 244E, 249A, 255, 258, 259, 261, 262, 268, 270, 273A, 274, 276, 279; CME 108, 302; EE 108B, 282.

  5. Information Management and Analytics—
    1. CS 145**
    2. At least four of: CS 224N, 224W, 229, 245, 246, 276, 345, 346, 347
    3. Sufficient depth units from category (b) and the following: CS 224S, 224U, 228, 228T, 231A, 240, 242, 243, 244, 244B, 244C, 249A, 249B, 255, 262, 270, 271, 272, 273A, 274, 275, 279, 315A, 321, 341, 344, 364B, 374, 393*, 395*, 399*; STAT 315A, 315B.
      • Students with a 27- or 21-unit depth option (Option 1 or 2 above) must take 27 or 21 units respectively subject to satisfying the area (a), (b), and (c) requirements above.
      • Students with a secondary area of specialization (per Option 2 above) in Information Management and Analytics must take five courses satisfying the area (a) and (b) requirements above. Note that if CS145 was waived in area (a), students should take an additional course from either area (b) or (c) in its place.

    Information Management and Analytics Breadth Courses—CS 121 or 221, 124, 140, 147, 148, 149, 154, 155, 157, 164, 205A, 222, 223A, 224M, 226, 227, 227B, 240E, 244E, 258, 259, 261, 268; CME 108, 302; EE 108B, 282.

  6. Mobile and Internet Computing—
    1. Two of: CS 140**, 144, 244
    2. One of: CS 142, 147, 247
    3. One of: CS 155, 255
    4. CS 294S
    5. Sufficient depth units from categories (a) through (d) and the following: CS 224W, 244E, 246, 344, 344E, 364A, 376, 393*, 395*, 399*; EE 359, 384A, 384B, 384C, 384E, 384M, 384P, 384S; COMM 268, 280; PSYCH 252.
      • Students with a 27- or 21-unit depth option (Option 1 or 2 above) must take 27 or 21 units respectively subject to satisfying the area (a) through (e) requirements above.
      • Students with a secondary area of specialization (per Option 2 above) in Mobile and Internet Computing must take five courses satisfying the area (a) through (d) requirements above.

    Mobile and Internet Computing Breadth Courses—CS 121 or 221, 124, 143, 145, 148, 149, 154, 157, 164, 205A, 222, 223A, 224M, 224N, 224S, 224U, 226, 227, 227B, 228, 229, 231A, 240, 240E, 242, 243, 244B, 249A, 258, 259, 261, 262, 268, 270, 273A, 274, 276, 279; CME 108, 302; EE 108B, 282.

  7. Real-World Computing—
    1. At least three of: CS 148, 223A, 231A, 248
    2. At least three of: CS 205A, 205B, 226, 249A, 249B, 262, 268, 277, 348A, 348B, 374; CME 302, 306, 326
    3. Sufficient additional units chosen from the above and from the following: CS 225A, 225B, 228, 229, 247, 270, 271, 272, 273A, 274, 294A*, 327A, 328, 331, 448, 393*, 395*, 399*
      • Students with a 27- or 21-unit depth option (Option 1 or 2 above) must take 27 or 21 units respectively subject to satisfying the area (a), (b), and (c) requirements above.
      • Students with a secondary area of specialization (per Option 2 above) in Real-World Computing must take five total courses satisfying area (a) and two of the three courses in the area (b) requirements above (i.e., three courses in area (a) and two courses in area (b).

    Real-World Computing Breadth Courses—CS 121, or 221, 124, 140, 143, 144 or EE 284, 145, 147, 149, 154, 155, 157, 164, 222, 224M, 224N, 224S, 224U, 224W, 227, 227B, 240, 240E, 242, 243, 244, 244B, 244E, 246, 255, 258, 259, 261, 276, 279; CME 108, 302; EE 108B, 282.

  8. Software Theory—
    1. CS 242, 243
    2. At least one of: CS 241, 258, 259
    3. At least one of: CS 244, 245, 295, 341, 343, 345
    4. At least one course from the following: CS 255, 261, 268, 355, 361A, 361B, 365
    5. At least two additional courses chosen from (b), (c), (d), or the following: CS 294S*, 346, 393*, 395*, 399*
      • Students with a 27- or 21-unit depth option (Option 1 or 2 above) must take 27 or 21 units respectively subject to satisfying the area (a)-(e) requirements above.
      • Students with a secondary area of specialization (per Option 2 above) in Software Theory need to take 5 total courses satisfying the area (a) through (d) requirements above:
        1. two courses in area (a)
        2. one course each in areas (b) through (d).

    Software Theory Breadth Courses—CS 121 or 221, 124, 140, 147, 148, 149, 154, 155, 157, 164, 205A, 222, 223A, 224M, 224N, 224S, 224U, 224W, 226, 227, 227B, 228, 229, 231A, 240, 240E, 244B, 244E, 249A, 262, 270, 273A, 274, 276, 279; CME 108, 302; EE 108B, 282.

  9. Systems—
    1. CS 140**, 144**, 240, 242
    2. At least three of: CS 243, 244, 245, 248, 348B; EE 271, 282
    3. At least two additional courses chosen from category (b) and the following: CS 240E, 240H, 244B, 244C, 244E, 246, 249A, 249B, 255, 259, 262, 270, 271, 272, 276, 294S*, 295, 315A, 315B, 340, 341, 343, 344, 344B, 345, 346, 347, 348A, 349, 374, 448, 393*, 395*, 399*; EE 273, 382A, 382C, 384A, 384B, 384C, 384M, 384S, 384X, 384Y
      • Students with a 27-unit depth option (Option 1 above) must take 27 units subject to satisfying the area (a), (b), and (c) requirements above.
      • Students with a 21-unit depth option (Option 2 above) must take that many units subject to satisfying the area (a) and (b) requirements above, and additional courses may be taken from area (c) if any courses in the area (a) requirement are waived.
      • Students with a secondary area of specialization (per Option 2 above) in Systems need to take five courses; those courses must satisfy the area (a) requirement and additional courses may be taken from area (b).

    Systems Breadth Courses—CS 121 or 221, 124, 147, 154, 155, 157, 164, 205A, 222, 223A, 224M, 224N, 224S, 224U, 224W, 226, 227, 227B, 228, 229, 231A, 255, 258, 261, 268, 273A, 274, 279; CME 108, 302

  10. Theoretical Computer Science—
    1. CS 241 or 258 or 259, 261 (361A or 361B may be used as substitutes for 261)
    2. Sufficient additional units chosen from: CS 228, 241, 246, 254, 255, 258, 259, 262, 268, 341, 345, 355, 356, 357, 358, 359,* 361A, 361B, 364A, 364B, 365, 369,* 374, 393*, 395*, 399*, 468*; MS&E 310
      • Multiple CS 359, CS 369, and/or CS 468 courses may be taken as long as they are each on different topics, denoted by different letter suffixes for the courses.
      • Students with a 27- or 21-unit depth option (Option 1 or 2 above) must take 27 or 21 units respectively subject to satisfying the area (a) and (b) requirements above.
      • Students with a secondary area of specialization (per Option 2 above) in Theoretical Computer Science need to take 5 total courses satisfying the area (a) and (b) requirements above:
        1. two courses in area (a)
        2. three courses in area (b).

    Theoretical Computer Science Breadth Courses—CS 121 or 221, 124, 140, 143, 144 or EE 284, 145, 147, 148, 149, 154, 155, 157, 164, 205A, 222, 223A, 224M, 224N, 224S, 224U, 224W, 226, 227, 227B, 229, 231A, 240,240E, 242, 243, 244, 244B, 244E, 249A, 270, 273A, 274, 276, 279; CME 108, 302; EE 108B, 282.

* With consent of faculty adviser.

** Students with equivalent course work may waive with approval of their adviser.

Requirement 4—

Additional elective units must be technical courses (numbered 100 or above) related to the degree program and approved by the adviser. All CS courses numbered above 110 (with the exception of CS 196 and 198) taken for 3 or more units are pre-approved as elective courses. Additionally, up to a maximum of 3 units of 500-level CS seminars, CS 300, EE 380, EE 385A, or other 1-2 unit seminars offered in the School of Engineering may be counted as electives. Elective courses may be taken on a satisfactory/no credit basis provided that a minimum of 36 graded units is presented within the 45-unit program.

MASTER OF SCIENCE WITH DISTINCTION IN RESEARCH

A student who wishes to pursue the M.S. in CS with distinction in research must first identify a faculty adviser who agrees to supervise and support the research work. The research adviser must be a member of the Academic Council and must hold an appointment in Computer Science. The student and principal adviser must also identify another faculty member, who need not be in the Department of Computer Science, to serve as a secondary adviser and reader for the research report. In addition, the student must complete the following requirements beyond those for the regular M.S. in CS degree:

  1. Research Experience—The program must include significant research experience at the level of a half-time commitment over the course of three academic quarters. In any given quarter, the half-time research commitment may be satisfied by a 50 percent appointment to a departmentally supported research assistantship, 6 units of independent study (CS 393, 395, or 399), or a prorated combination of the two (such as a 25 percent research assistantship supplemented by 3 units of independent study). This research must be carried out under the direction of the primary or secondary adviser.
  2. Supervised Writing and Research—In addition to the research experience outlined in the previous requirement, students must enroll in at least 3 units of independent research (CS 393, 395, or 399) under the direction of their primary or secondary adviser. These units should be closely related to the research described in the first requirement, but focused more directly on the preparation of the research report described in the next section. The writing and research units described in parts (1) and (2) may be counted toward the 45 units required for the degree.
  3. All independent study units (CS 393, 395, 399) must be taken for letter grades and a GPA of 3.0 (B) or better must be maintained.
  4. Research Report—Students must complete a significant report describing their research and its conclusions. The research report represents work that is publishable in a journal or at a high-quality conference, although it is presumably longer and more expansive in scope than a typical conference paper. A copy of the research report must be submitted to the student services office in the department three weeks before the beginning of the examination period in the student's final quarter. Both the primary and secondary adviser must approve the research report before the distinction-in-research designation can be conferred.

© Stanford University - Office of the Registrar. Archive of the Stanford Bulletin 2011-12. Terms of Use | Copyright Complaints