Students in the master's program take one core course from each of the three main required course areas: Development, Design, and Foundations. Within each core area students choose from multiple course options such as parallel programming, distributed systems, software architecture, evaluating software design, software management, allowing students to tailor their path through the program to meet their educational objectives. Depending on a student's background, one or two additional system core courses may be required at the request of faculty.
A variety of electives (minimum 20 credits) such as machine learning, mobile computing, advanced topics in computer vision, algorithm design and analysis, evidence-based design, and IoT serve to expose and help students explore the breadth of topics in computer science and software engineering.
To prepare for the culminating thesis or project, the curriculum includes a 1-credit faculty research seminar for students to interact and learn about current faculty research. In order to fully engage their writing abilities, students take a writing assessment in their first quarter to determine their graduate-level competency in technical & scientific writing and if they need to be placed in writing courses (0-3 credits).
Master's program candidates complete their degree requirements with a 10-credit project or thesis.
The master's degree is designed to accommodate the needs of working professionals. Enrollment is either part time or full time, with courses meeting in the evening two or three times a week. Most students complete the program in just over two years.