Stanford > CS > Master's Degree > Specializations

Choosing a Specialization

As an MSCS student, you need to choose one of ten predefined specializations, or you can design your own. As you can see in the map at right, there is some overlap between the different specializations, as some courses can be applied to more than one specialization.

You're not bound at all by the initial "interest" you list on your application, and you can switch specializations at any time. To do this, just complete a new program sheet and have your advisor sign it.

Note:The lists of "sample" classes, professors, and research groups is in no way exhaustive. Also not all of the sample classes are required.

Remote HCP students: Only the Systems specialization can be completed entirely remotely; for each other specialization, you will need to come to campus for at least some of the classes.


AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Artificial Intelligence

Stanley

Artificial Intelligence includes the study of AI principles and techniques, as well as foundational material on topics such as logic, probability, and language. Topics in the AI concentration include knowledge representation and logical reasoning, robotics, machine learning, probabilistic modeling and inference, natural language processing, cognition, and applications in domains such as biology and text processing.
Also consider: Real-World Computing, HCI, Theoretical CS




AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Biocomputation

TeamSpace

Biocomputation is an interdisciplinary specialization focusing on computational challenges and solutions in the biological and medical informatics application areas. Courses covering advanced algorithms, databases, networking, modeling and simulation, as well as those covering biocomputation, bioengineering, and medical informatics are included in this specialization.
Also consider: Real-World Computing, Artificial Intelligence




AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Computer and Network Security

TeamSpace

Provides students with an in-depth understanding of the current challenges facing computer scientists designing and developing secure, safety-critical systems. Course work includes networking and network security, advanced operating systems, cryptography, secure databases, etc.
Also consider:Systems, Artificial Intelligence


Sample Profs

Dan Boneh
John Mitchell


AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Database Systems

Stanford iLab

Database Systems provides coverage of the principles underlying modern database systems, including their design, architecture, and management as well as potential applications. Topics addressed include implementation issues, such as file organization and replication, query processing and optimization, and transaction management. Additional foundational topics include distributed systems, networking, and security as well as advanced applications such as bioinformatics, data mining, and text retrieval.
Also consider: Systems, Theoretical CS




AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Human-Computer Interaction

TeamSpace

How do you design for users? Is a keyboard and mouse the best we can do? Human-computer interaction spans interfaces from large wall-size computing down to handheld devices and invisible "ubiquitous computers". HCI teaches user-centered design thinking and methods for user studies. HCI research applies to areas like collaborative work, information visualization, and "tangible computing".
Also consider: Real-World Computing, Systems, Artificial Intelligence




AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Numerical Analysis and Scientific Computation

Solid fluid coupling

How do you model fluid dynamics or the muscles in your face? Numerical analysis and scientific computing features coursework in computational math, and its applications to graphics, robotics and vision, and other areas. Research focuses on simulation, modeling, and computational methods.
Also consider: Real-World Computing, Artificial Intelligence


Sample Profs

Gene Golub
Ron Fedkiw

More Resources

08-09 Program Sheet
ICME


AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Real-World Computing

Forma Urbis Romae fragment

Real-World Computing lets you dabble in a little of everything, sharing coursework in common with each of the other specializations. Many people who want to focus on graphics choose Real-World Computing, because it is the only specialization that lets you count all our graphics courses toward your depth. It's also a popular choice for people who want to study robotics.
Also consider: AI, Systems, Numerical Analysis




AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Software Theory

PwdHash

How do you write secure code? How smart can you make a compiler? Software theory looks at properties of programming languages and applications to areas like security. This area is very similar to Theoretical Computer Science, but slightly more applied: in particular, ST students tend to take more systems-ish courses on programming languages, compilers, and databases.
Also consider: Theoretical Computer Science, Systems, Artificial Intelligence




AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Systems

NetFPGA

Want to build an operating system? Or a router? The systems specialization is home to most of the "hard-core programming" classes that usually come to mind when you think of CS. But the challenges are bigger--designing the next-generation Internet backbone, managine ever-expanding datasets, and balancing security and privacy. Systems is also the only specialization that can be completed entirely remotely by Honors Co-op (HCP) students, making it a popular choice.
Also consider: Real-World Computing, Software Theory, Artificial Intelligence




AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Theoretical Computer Science

Stanford Temporal Prover

How do you find the most efficient and fair network topology? How do you make computers reason about logic? Theoretical CS looks at reactive systems, programming language theory, and algorithms. This specialization is very similar to Software Theory, but slightly more abstract. TCS students tend to take more courses in logic and formal methods.
Also consider: Software Theory, Artificial Intelligence, Real-World Computing




AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top

Individually Designed Specialization

?

Do your interests not quite fit into one of the other specializations? You can design your own. In the past, people have designed specializations in computational biology, computer vision, and networking; Claire has these on file in Gates 182 if you'd like to see them. To design your own:

  1. Choose at least 21 units of "depth" (distinct from the standard breadth courses), including courses at the 200 and 300 level. These should reflect a "coherent area of study".
  2. Get a CS faculty member to endorse your proposal.
  3. Send your proposal and the endorsement to Claire Stager (stager@cs).
  4. The MS program committee will review your proposal and decide whether to approve it.


Sample Classes

Up to you.

Sample Profs

Up to you.

More Resources

08-09 Program Sheet


AI | Biocomputation | Computer and Network Security | Database Systems | HCI | Num. Analysis | Real-World Comp. | Software Theory | Systems | Theoretical CS | Individ. Design | Top