Degree Requirements

The program requires the completion of 30 credits. The requirement is satisfied by taking 10 courses.

Students who want to pursue research can earn up to 6 of the 30 required credits by taking the CS 700B Master's Project, possibly followed by CS 701B Master's Thesis. These have special requirements described in the section 'Master's Project and Thesis'.

More specifically, the requirements are as follows:

Core Courses (12 credits) 

Courses covering fundamental topics in Computer Science.

Data Structures and Algorithms
Select three of the following:9
Operating System Design
Data Management System Design
Internet and Higher-Layer Protocols
Machine Learning
Total Credits12

Elective Courses (18 credits)

Electives include all graduate CS courses, and selected courses from other departments. A list of CS courses organized by specialized areas can be found here

Six courses from the following list:18
Bridge Courses &0
Foundations of Computer Science
Graduate CS Courses
All listed 600-level and 700-level courses &1
Courses from other departments
DS Courses with CS counterparts: DS 636, DS 644, DS 675, DS 677 &2
Up to one course from IS 601, IS 657, IS 665, DS 669, MATH 661, YWCC 691 &3
Up to one additional course from another department's graduate catalog &4
Total Credits18

0. Bridge Courses are recommended only to students who do not have a typical CS undergraduate degree.  The program has four bridge courses: CS 332CS 350CS 505CS 506
1. The list of CS courses. A small number of 700-level courses are restricted to doctoral students. 
2. Only one course from each pair counts toward degree requirements: CS/DS 636, CS/DS 644, CS/DS 675, CS/DS 677.
3.  YWCC 691 and CS 700B cannot count simultaneously toward degree requirements.
4. Courses from other departments must be relevant to CS and require prior program director approval.

All degree requirements apply to both on-campus and online programs. 

Back to Contents

List of Graduate CS Courses

The CS department offers courses in various specialized areas. Students are free to elect courses from one or more areas.

Algorithms and CS Theory
Data Structures and Algorithms
Introduction to Computational Complexity
Algorithms on Graphs
Design Techniques for Algorithms
Parallel Algorithms
Computational Optimization
Sequencing and Scheduling
Artificial Intelligence
Artificial Intelligence
Machine Learning
Reinforcement Learning
Deep Learning
Advanced Machine Learning
Pattern Recognition and Applications
Cybersecurity and Privacy
Cryptography and Security
Security and Privacy in Computer Systems
Network Protocols Security
Counter Hacking Techniques
Cyber Sec Investigations & Law
Topics in Smartphone Sec & Rel
Network Management and Security
Advanced Data Security and Privacy
Security and Privacy in Wireless Networks
Data Management
Data Management System Design
Advanced Database System Design
Data Mining
Introduction to Big Data
Applications of Database Systems
Data Mining and Management in Bioinformatics
Programming Languages and Environments
Java Programming
Computer Programming Languages
Data Analytics with R Program
Cloud Computing
High Performance Computing
Mobile Computing and Sensor Networks
Operating System Design
Distributed Systems
Computer Architecture
Cognitive Cloud Networking - Architectures and Applications
Internet and Higher-Layer Protocols
Linux Kernel Programming
Software Engineering
Software Design and Production Methodology
Software Project Management
Software Testing and Quality Assurance
Software Architecture
Software Studio
Seminar in Software Engineering
Seminar in Software Management and Production
Various Topics
Principles of Interactive Computer Graphics
Image Processing and Analysis
Systems Simulation
Cognitive Computing
Computer Vision
Special Emerging Topics:
Advanced Image Processing and Analysis

The complete list of CS courses can be found here.

Back to Contents


Master's Project and Thesis Policies

The contents of this section apply only to students who elect to do a Master's Project (CS 700B) or a Master's Thesis (CS 701B).

Students must first find a research advisor who must be a tenure-track faculty of the CS department, including faculty with a joint appointment. Tenure-track faculty are the department members including those who hold joint appointments with the rank of Assistant Professor, Associate Professor, Professor, and Distinguished Professor. 

In order to find a research advisor, students are encouraged to attend special presentations offered by the department or to directly contact professors. Professors may not always have availability for conducting an MS project/thesis. Students are therefore encouraged to start looking for an advisor as early as possible, especially if they are considering pursuing a Master’s Thesis that takes two semesters.

The students must be in close coordination with their research advisor who will determine the topic of the Project/Thesis and guide them to take specific elective courses that will prepare them for the research.


  • Master’s Project: With permission of their research advisor students must register in the CS 700B Master's Project course.
  • Master’s Thesis: With permission of their research advisor, students must first register in the CS 700B Master's Project course. They must receive a satisfactory (S) grade in CS 700B before CS 701B Master's Thesis registration in the immediately following semester, with the same advisor. The MS thesis topic should be continuation of the work done in CS 700B.

Thesis Requirements

  • An MS Thesis Committee must be formed, according to these requirements set forth by the Office of Graduate Studies. 
  • A written thesis must be submitted. The thesis must adhere to the style requirements set forth by the Office of Graduate Studies.
  • An oral defense is required. The defense must take place before the last day of the Examination period. 

Back to Contents

Frequently Asked Questions

Answers to frequently asked questions can be found here

Academic advisors are also available for guidance throughout the student's stay in the program.

Back to Contents