Specialization Requirements

Each graduate student in computer science must take coursework to develop and demonstrate depth of understanding in one of three areas: foundations, data science, and systems. This complements breadth coursework and other electives, to provide deeper knowledge in one area alongside a broad foundation in computer science. 


Breadth and Depth Requirements for MS/PhD 

A checklist to help students track their progress can be found in the MS requirements form.

Breadth Requirement 

To meet this requirement, students must take one class from an approved list from each of three areas: foundations, data science, and systems. Students must earn a grade of B- or higher. 

  • Approved classes to meet breadth requirement for foundations: CIS621 
  • Approved classes to meet breadth requirement for data science: CIS670 
  • Approved classes to meet breadth requirement for systems: CIS630 or CIS 631 

Depth Requirement 

To meet this requirement, students must take three classes from one of three approved lists. At least one of the three classes must be at the 600-level. Students must earn a grade of B- or higher. 

  • Approved courses for Foundations: 
  • 600-level options: 624 
  • 500-level options: 513, 520, 527, 543, 545, 561 
  • Approved courses for Data Science: 
  • 600-level options: TBD** 
  • 500-level options: 543, 551, 553, 571, 572, 573 
  • Approved courses for Systems: 
  • 600-level options: 630, 631, 632, 633, 650 - 500-level options: 531, 532, 533, 534, 541, 561 

** Note that our Department currently has no 600-level options for data science. Students pursuing the data science track can use 500-level courses until new courses are added by petition to the Graduate Education Committee.