Curriculum - Computer Science, MS

Degree Requirements

To satisfy the requirements for the master’s degree, you must complete 30 credits, as described below, with an overall average of B. In addition, a B average is required across the 6 core courses, as indicated below. The master’s curriculum has 2 components: 18 credits of core elective courses and 12 credits of general elective courses.

Core Electives and Requirements

Core electives are organized into 3 core areas: Computer Systems, Programming/Software, and Theory. You must take at least 6 core elective courses, with 2 courses coming from each of the core areas.

Computer Systems Core Area

CS 6133 Computer Architecture I, Credits: 3.00
CS 6143 Computer Architecture II, Credits: 3.00
CS 6233 Introduction to Operating Systems, Credits: 3.00
CS 6243 Operating Systems II, Credits: 3.00 
CS 6253 Distributed Operating Systems, Credits: 3.00
CS 6843 Computer Networking, Credits: 3.00
CS 6813 Information, Security and Privacy, Credits: 3.00
CS 6823 Network Security, Credits: 3.00

Theory Core Area

CS 6003 Foundations of Computer Science, Credits: 3.00
CS 6033 Design and Analysis of Algorithms I, Credits: 3.00
CS 6043 Design and Analysis of Algorithms II, Credits: 3.00
CS 6753 Theory of Computation, Credits: 3.00
CS 6903 Modern Cryptography, Credits: 3.00
CS 6703 Computational Geometry, Credits: 3.00

Programming/Software Core Area

CS 6063 Software Engineering I, Credits: 3.00
CS 6073 Software Engineering II, Credits: 3.00
CS 6083 Principles of Database Systems, Credits: 3.00
CS 6373 Programming Languages, Credits: 3.00
CS 6413 Compiler Design and Construction, Credits: 3.00
CS 6533 Interactive Computer Graphics, Credits: 3.00
CS 6613 Artificial Intelligence I, Credits: 3.00
CS 9163 Application Security, Credits: 3.00

Additionally, you are not permitted to repeat any of the following courses if you have already taken it or its equivalent at the undergraduate or graduate level and received a grade of B or better: 

  • CS 6033 Design and Analysis of Algorithms I, Credits: 3.00
  • CS 6133 Computer Architecture I, Credits: 3.00
  • CS 6233 Introduction to Operating Systems, Credits: 3.00
  • CS 6373 Programming Languages, Credits: 3.00

General Electives Requirements

In addition to the core electives, you are required to take 4 general elective courses but have considerable flexibility. The only restriction is that no more than 2 of the courses may be taken from outside the Department of Computer Science and Engineering. In particular:

  • Master’s thesis (6 credits) and/or independent study courses may be part of your 4 elective courses
  • Any of the courses in the 3 core areas may be chosen as electives
  • Graduate-level courses from outside of the department (at most 2) may be chosen as electives
  • Any CS graduate course not included in the core areas may be chosen as electives. These courses include:

CS 6273 Performance Evaluation of Computer Systems, Credits: 3.00
CS 6643 Computer Vision and Scene Analysis, Credits: 3.00
CS 6673 Neural Network Computing, Credits: 3.00
CS 9013 UNIX and PERL, Credits: 3.00
CS 9053 Introduction to Java, Credits: 3.00
CS 9073 Human Computer Interaction, Credits: 3.00
CS 6093 Advanced Database Systems, Credits: 3.00
CS 9093 Biometrics, Credits: 3.00
CS 9103 Object Oriented Design in Java, Credits: 3.00
CS 6923 Machine Learning, Credits: 3.00
CS 6913 Web Search Engines, Credits: 3.00

Preparatory Courses

We offer 2 preparatory bridge courses for students who do not have a working knowledge of a high level, general-purpose programming language:

  • CS 5303 Introduction to Programming
  • CS 5403 Data Structures

Master's Thesis

Exceptional students may elect to write a master's thesis, for which no more than 6 credits may be earned toward the degree. Such students should find an appropriate adviser who has agreed to monitor the thesis research. Such research need not be original, but should adequately demonstrate the proficiency in the subject material. An oral defense of the master's thesis with at least 3 professors in attendance is required.

(see overview)