Skip to main content Skip to secondary navigation

MS | Available Specializations

Main content start


As an MS CS student, you can 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 list of sample classes is not exhaustive and not all of the sample classes are required. If you are interested in a specific specialization, feel free to explore the People page for professors in that area of concentration.

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

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.

Sample Classes:
221. AI Principles & Techniques
224N. Natural Language Processing with Deep Learning 
229. Machine Learning

Computational Biology

Computational Biology 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 or Artificial Intelligence.

Sample Classes
173A. Computational Tour of the Human Genome
279. Computational Biology: Structure and Organization of Biomolecules and Cells 

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 or Artificial Intelligence.

Sample Classes:
155. Computer and Network Security
255. Introduction to Cryptography
144. Introduction to Computer Networking

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, or Artificial Intelligence.

Sample Classes:
147. Introduction to HCI Design
247. Interaction Design Studios 

Information Management and Analytics

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 or Theoretical CS.

Sample Classes:
245. Database Systems Principles
246. Mining Massive Data Sets
276. Information Retrieval and Web Search

Software Theory

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, or Artificial Intelligence.

Sample Classes:
243. Program Analysis and Optimizations
265. Randomized Algorithms and Probabilistic Analysis


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, managing ever-expanding datasets, and balancing security and privacy. Also consider: Real-World Computing, Software Theory, or Artificial Intelligence.

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

Theoretical Computer Science

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, or Real-World Computing.

Sample Classes:
154. Introduction to Automata and Complexity Theory
261. Optimization and Algorithmic Paradigms

Visual Computing

Creating, manipulating, and interpreting visual information (images, videos, 3D geometry, and simulated virtual worlds) is pervasive in modern computing. We see “visual computing” play a huge role in applications ranging from entertainment (games, CGI for TV and film), digital imaging (smartphone cameras, AR/VR capture, scientific imaging), robotics (driver assistance, autonomous vehicles, health-care robotics), engineering, and commerce. The Visual Computing Track is a specialization at the intersection of AI/ML, Graphics, and Systems that aims to give students the background needed to master the fundamental techniques of visual computing and to develop new visual computing techniques and applications. Since visual computing applications involve deep connections between modern AI/ML, advanced computer systems, and detailed modeling of the physical world, the visual computing track provides opportunities for students to develop strong foundational knowledge in any of these areas.

Sample Classes:
248A. Computer Graphics: Rendering, Geometry, and Image Manipulation
248B. Fundamentals of Computer Graphics: Animation and Simulation
348C. Computer Graphics: Animation and Simulation

Department of Computer Science

MS Program Sheets

The program sheet is a representation of your academic plan and lists the courses you will use to satisfy the requirements of the MS CS program. Separate program sheets for each specialization are available online on GIN, the Gates Information Network.

Learn More

Gates Information Network