The program requires two years (four semesters) of full-time study and follows a cohort model during the first year in which all students take the same set of core courses. During the second year, students may choose from a rotating selection of graduate electives based on their interests and goals. Students develop several large software projects throughout their degree, including a substantial capstone project during their second year.
The program begins by providing students a broad, advanced background in software development and other core disciplines. All students in the same cohort take the core courses together.
Core courses include:
Principles of Software Development
understanding of advanced topics in computer science including software engineering, algorithms, artificial intelligence, programming languages, parallel computing, networking, and low-level systems
ability to design, implement, and debug large-scale software applications
ability to evaluate and understand advanced research from computer science literature
effective communication and team participation skills with respect to software development
Our students are required to complete a capstone project during their second year. Over the course of a semester, students work with an industry or faculty sponsor on the specification, design, development, and testing of a significant software system.
Students must take 16 units of 600-level graduate CS electives during their second year.
Practicum Option – Students may opt to replace an elective with practical work experience at tech companies and startups in the San Francisco Bay Area and Silicon Valley. This option is open to most international students. Learn more about the practicum.
Special Topics – We offer several special topic courses on the latest themes and technologies in computer science, including data mining, computer graphics, data visualization, and game engineering.
Directed Research – Students may opt to replace a graduate elective with a directed reading and research course, allowing them to work closely with a professor on a research project. Many students use this option to pursue additional research and publication opportunities.