Computer Science (CS)

The Computer Science program prepares students for success in a broad range of computing activities.

This preparation emphasizes the scientific, mathematical and engineering-oriented aspects of computing necessary to contribute in information technology at multiple levels. The program in CS offers three tracks, each of which leads to a frontier of computing. The three track areas are:

  • Theoretical Computer Science (Theory)
  • Computer Systems (Systems)
  • Artificial Intelligence (AI)
  • High Performance Computing

A student seeking a degree in Computer Science must specify one track area as a major. For the M.S. degree, course requirements include four designated Core courses, as well as a minimum of three Immersion courses and one Specialty course from the student’s chosen major area. Additional elective coursework to meet the credit requirements for the degree gives students the flexibility to pursue further breadth and/ or depth in their program. Each course carries 3 credit hours.

The M.S. degree requirement is 30 credits of courses (generally comprised of 10 courses). Typically, students will take 12 credits (4 courses) per semester in the program, completing the M.S. program in 3 semesters (1.5 years).

Students pursuing a Ph.D. must first satisfy the coursework requirements for the M.S. program, take at least 6 additional credits (for a minimum of 12 courses overall), pass qualifying examinations and pursue original research culminating in a doctoral dissertation. Ph.D. coursework in CS includes diversity requirements in applied and computational mathematics that connect the computer scientist to principal drivers of computer science from other disciplines. Completing the Ph.D. program generally takes 3 additional years beyond the completion of the M.S. program requirements. Further details on degree coursework requirements as well as Ph.D. program qualification and requirements are described in Section 4.

The courses required for all students in the CS program include:

  • Artificial Intelligence (CS 221)
  • Operating Systems and Systems Programming (CS 240)
  • Programming Languages (CS 242)
  • Algorithmic Paradigms (CS 261)

The Immersion courses in each CS track are as follows:

Theoretical Computer Science

  • Linear and Nonlinear Optimization (CS 211)
  • Machine Learning (CS 229)
  • Computer Graphics (CS 248)
  • Design and Analysis of Algorithms (CS 260)
Computer Systems
  • Computer Networks (CS 244)
  • Databases (CS 245)
  • Computer Graphics (CS 248)
  • Computer Architecture and Organization (CS 282)
Artificial Intelligence
  • Linear and Nonlinear Optimization (CS 211)
  • Machine Learning (CS 229)
  • Databases (CS 245)
  • Computational Methods in Data Mining (CS 340)
High Performance Computing
  • Computer Architecture and Organization (CS 282)
  • Scientific Software Engineering (CS 291)
  • Parallel Programming Paradigms (CS 292)
  • High Performance Computing I (CS 311)
  • High Performance Computing II (CS 312)

The Specialty courses in the CS program are specified by individual faculty members and may vary from year to year.


Course Descriptions