Graduate breadth course requirement

The purpose of the breadth course requirement is to expose students to diverse computer science research topics and methods.

All students are required to take classes in three subject areas:

The specific breadth requirement varies by program:

  • M.S. students are required to take three (3) breadth courses, one from each area, and maintain an overall GPA of at least 3.25
  • M.C.S students are required to take three (3) breadth courses, one from each area, and maintain an overall GPA of at least 3.0
  • Ph.D. students are required to take a total of five (5) courses, at least one from each subject area, and must have an average GPA of 3.45. 

If students want to take a more advanced course in a sub-area than the listed options–typically, one for which one of the listed options is a prerequisite–they may petition the Director of Graduate Studies to use this course for satisfying the requirement. However, substitutions are rarely permitted and transfer courses will not count towards the breadth requirement. All courses must be taken for graduate credit and on the A-F grading basis.

Breadth Areas

Theory and algorithms

  • CSCI 5302 - Analysis of Numerical Algorithms
  • CSCI 5304 - Computational Aspects of Matrix Theory
  • CSCI 5403 - Computational Complexity
  • CSCI 5421 - Advanced Algorithms & Data Structures
  • CSCI 5481 - Computational Techniques for Genomics
  • CSCI 5525 - Machine Learning

Architecture, systems, and software

  • CSCI 5103 - Operating Systems
  • CSCI 5104 - System Modeling and Performance Evaluation
  • CSCI 5105 - Introduction to Distributed Systems
  • CSCI 5106 - Programming Languages
  • CSCI 5161 - Introduction to Compilers
  • CSCI 5204 - Advanced Computer Architecture
  • CSCI 5211 - Data Communications and Computer Networks
  • CSCI 5221 - Foundations of Advanced Networking
  • CSCI 5231 - Wireless and Sensor Networks
  • CSCI 5451 - Introduction to Parallel Computing: Architectures, Algorithms, and Programming
  • CSCI 5552 - Sensing and Estimation in Robotics
  • CSCI 5708 - Architecture and Implementation of Database Management Systems
  • CSCI 5751 - Big Data Engineering and Architecture
  • CSCI 5801 - Software Engineering I
  • CSCI 5802 - Software Engineering II

Applications

  • CSCI 5115 - User Interface Design, Implementation, and Evaluation
  • CSCI 5123 - Recommender Systems
  • CSCI 5125 - Collaborative and Social Computing
  • CSCI 5127W - Embodied Computing: Design and Prototyping
  • CSCI 5271 - Introduction to Computer Security
  • CSCI 5461 - Functional Genomics, Systems Biology, and Bioinformatics
  • CSCI 5471 - Modern Cryptography
  • CSCI 5511 - Artificial Intelligence I
  • CSCI 5512 - Artificial Intelligence II
  • CSCI 5521 - Introduction to Machine Learning
  • CSCI 5523 - Introduction to Data Mining
  • CSCI 5551 - Introduction to Intelligent Robotic Systems
  • CSCI 5561 - Computer Vision
  • CSCI 5607 - Fundamentals of Computer Graphics I
  • CSCI 5608 - Fundamentals of Computer Graphics II
  • CSCI 5609 - Visualization
  • CSCI 5611 - Motion and Planning in Games
  • CSCI 5619 - Virtual Reality and 3D User Interaction
  • CSCI 5707 - Principles of Database Systems
  • CSCI 5715 - From GPS and Virtual Globes to Spatial Computing