Choosing a Specialization

As an MSCS student, you must choose one of nine predefined specializations. 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 approve 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 AI and Systems specializations can be completed entirely remotely; for the other specializations, you will need to come to campus for at least some of the classes. 


Artificial Intelligence

AI

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

Sample Classes Sample Profs More Resources
221. AI Principles & Techniques
224N. Natural Language Processing with Deep Learning 
229. Machine Learning
Jeannette Bohg
Emma Brunskill
Stefano Ermon
Chelsea Finn
Mike Genesereth
Leo Guibas
Dan Jurafsky
Oussama Khatib
Mykel Kochenderfer
Fei Fei Li
Percy Liang
Karen Liu
Tengyu Ma
Chris Manning
Andrew Ng
Chris Re
Dorsa Sadigh
Kenneth Salisbury
Silvio Savarese 
Program Sheets
AI Lab
Bio-X

Biocomputation

Biocomputation

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

Sample Classes Sample Profs More Resources
235. Computational Methods for Biomedical Image Analysis and Interpretation 
273A. The Human Genome Source Code
CS274. Representations and Algorithms for Computational Molecular Biology
Russ Altman
Gill Bejerano
Ron Dror
Anshul Kundaje
Stephen Montgomery
James Zou
Program Sheets
Bio-X
Helix Group

Computer and Network Security

Computer and Network Security

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 Classes Sample Profs More Resources
155. Computer and Network Security
255. Introduction to Cryptography
144. Introduction to Computer Networking

Dan Boneh
Zakir Durumeric
David Mazieres
Nick McKeown
John Mitchell

Program Sheets
Security Lab
High-Performance Networking Group

Human-Computer Interaction

Human-Computer Interaction

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

Sample Classes Sample Profs More Resources
147. Introduction to HCI Design
247. Interaction Design Studios 
 

Maneesh Agrawala
Michael Bernstein
Sharad Goel
James Landay
Roy Pea
Camille Utterback
Ge Wang

Program Sheets
HCI Group
CSLI

Information Management and Analytics

Stanford iLab

Information Management and Analytics provides coverage of the principles underlying modern database and information management systems, as well as methods for mining massive data sets. The track spans topics ranging from developing applications for database and information systems; to system design, architecture, and management; to applying algorithms and techniques from data mining and machine learning to perform analyses over massive data sets. Related topics include distributed systems, networking, and security on the system side, as well as text mining, bioinformatics, web search, and social media on the applications side.

Also consider: Systems, Theoretical CS

Sample Classes Sample Profs More Resources
245. Database Systems Principles
246. Mining Massive Data Sets
276. Information Retrieval and Web Search
Noah Goodman
Ramesh Johari
Dan Jurafsky
Jure Leskovec
Chris Manning
Chris Potts
Matei Zaharia
Program Sheets
InfoLab

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.

Sample Classes Sample Profs More Resources

223A. Robotics
248. Computer Graphics
348C. Computer Graphics: Animation and Simulation

Maneesh Agrawala
Kayvon Fatahalian
Ron Fedkiw
Leonidas Guibas
Patrick Hanrahan
Doug James
Oussama Khatib
Gordon Wetzstein

Program Sheets
Graphics Lab
Bio-X

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

Sample Classes Sample Profs More Resources
243. Program Analysis and Optimizations
265. Randomized Algorithms and Probabilistic Analysis
Alex Aiken
Monica Lam
Greg Valiant
Program Sheets
Theory Group
Security Lab

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.

Also consider: Real-World Computing, Software Theory, Artificial Intelligence

Sample Classes Sample Profs More Resources

190. Software Design Studio
240. Topics in Operating Systems
244. Advanced Topics in Networking 

Alex Aiken
Peter Bailis
Clark Barrett
Dawson Engler
Sachin Katti
Christos Kozyrakis
Monica Lam
Philip Levis
David Mazieres
Kunle Olukotun
John Ousterhout
Balaji Prabhakar
Chris Re
Mendel Rosenblum
Keith Winstein
Matei Zaharia
Program Sheets
HPNG
InfoLab

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

Sample Classes Sample Profs More Resources
154. Introduction to Automata and Complexity Theory
261. Optimization and Algorithmic Paradigms

Nima Anari
Dan Boneh
Moses Charikar
Mike Genesereth
Ashish Goel
Omer Reingold
Aviad Rubinstein
Aaron Sidford
Li-Yang Tan
Greg Valiant
Mary Wootters

Program Sheet
Theory Group
Security Lab