The Computer Science graduate program prepares students for research and professional practice in computer science and related technologies. The program includes both fundamentals and advanced work in the areas of artificial intelligence and databases, programming languages and software engineering, systems and networks, theoretical computer science, and visual computing. Graduate classes are divided into basic classes, which have no graduate course prerequisite, and advanced classes, which have a graduate class as a prerequisite. Graduate classes are generally offered in the late afternoon and evening. Financial aid in the form of graduate assistantships may be available for full-time degree-seeking students.

Admissions

In addition to fulfilling Mason's admission requirements for graduate study, applicants must meet the following requirements:

  • Hold a baccalaureate degree that includes Data Structures and Algorithms (CS 310 Data Structures) Automata Theory and Formal Languages (CS 330 Formal Methods and Models), and Computer Architecture including Assembly Language (CS 367 Computer Systems and Programming and CS 465 Computer Systems Architecture). Students also must have completed Calculus I and II and a substantial course in discrete mathematics (such as MATH 125 Discrete Mathematics I (Mason Core)). Students with some deficiencies in preparation may be admitted provisionally pending completion of foundation courses in mathematics or computer science. Undergraduate credit earned for this purpose may not be applied toward the graduate degree.
  • Earned a cumulative GPA of 3.00 for the last two years of undergraduate work, preferably with a major in a technical field such as computer science, mathematics, physical sciences, engineering, or information systems.
  • Submit transcripts of all post secondary education, complete the self-evaluation section of the online application, (This information is used by the admissions committee to assess an applicant's academic preparation for the MS program. Students with some deficiencies in preparation may be admitted provisionally pending completion of foundation courses required for the program), a goals statement, resume, two letters of recommendation, and an official GRE score (only required for those who have not earned a Bachelor's degree from a US institution).
  • International students must submit their English Proficiency scores.

Banner Code: VS-MS-CS

Degree Requirements

Total credits: 30

Required Courses and Plan of Study

In addition to general university requirements, completion of the MS in CS requires 30 credits of graduate courses.

To ensure that students have uniform preparation for the core courses, all students are required to take CS 530 Mathematical Foundations of Computer Science and CS 531 Computer Systems and Fundamentals of Systems Programming as their first two courses in the program. Students have the opportunity to indicate that they have the requisite knowledge corresponding to CS 530 and CS 531 by passing an exam. The exams are given before classes begin in January and August, and can only be taken once.  Students failing either one of the exams must take the equivalent course in their first semester.  Students who successfully test out of CS 530 or CS 531 will be required to fulfill the credit requirement with other coursework chosen under advisement. 

Courses are grouped in the following five broad areas: Artificial Intelligence and Databases, Programming Languages and Software Engineering, Systems and Networks, Theoretical Computer Science, and Visual Computing. The list of pre-approved courses with their areas follows.

All the following requirements should be satisfied for the MS in CS degree:

  • CS 583 Analysis of Algorithms (from the Theoretical Computer Science area) and two additional core courses from two other areas must be successfully completed with a grade of B- or better.
  • At least four courses (12 credits) must be chosen from the advanced courses in the list of pre-approved courses from at least three different areas.
  • At least six courses, including two advanced courses, must be designated CS.
  • At least eight courses must be taken from the list of pre-approved courses. Up to two computer science-related courses that are not on the list of pre-approved courses may be taken with the approval of the Computer Science Department.

Plan of Study

Before the end of the second semester, students must have a plan of study approved by their academic advisor. This plan should be kept up to date by regular consultation with the academic advisor. A final signed version of the plan must be included when the student submits a graduation application.

Core Courses by Area

Artificial Intelligence and Databases
Database Systems
Introduction to Artificial Intelligence
Theory and Applications of Data Mining
Programming Languages and Software Engineering
Language Processors
Object-Oriented Software Specification and Construction
Software Design and Architecture
Systems and Networks
Computer Communications and Networking
Operating Systems
Information Security Theory and Practice
Theoretical Computer Science
Analysis of Algorithms 1
Visual Computing
Computer Graphics

Preapproved Basic and Advanced MS CS Courses by Area

Artificial Intelligence and Databases
Basic Courses:
Database Systems
Introduction to Artificial Intelligence
Theory and Applications of Data Mining
Web Search Engines and Recommender Systems
Advanced Courses:
Advanced Database Management
Mining Massive Datasets with MapReduce
Biometrics and Identity Management
Instructable Cognitive Agents
Autonomous Robotics
Advanced Artificial Intelligence
Machine Learning
Planning Motions of Robots and Molecules
Advanced Pattern Recognition
Advanced Machine Learning
Decision Guidance Systems
Research Topics in Machine Learning and Inference
Research Topics in Artificial Intelligence
Advanced Topics in Computer Vision and Robotics
Database Programming for the World Wide Web
Advanced Database Management
Intelligent Agents and the Semantic Web
Enterprise Architecture
Programming Languages and Software Engineering
Basic Courses:
Language Processors
Object-Oriented Software Specification and Construction
Software Requirements Analysis and Specification
Software Design and Architecture
Distributed Software Engineering
Advanced Courses:
Advanced Compilers
Secure Software Design and Programming
Software Design Patterns
User Interface Design and Development
Software Testing
Software Engineering for the World Wide Web
Component-Based Software Development
Reusable Software Architectures
Advanced Software Testing
Software Analysis and Design of Real-Time Systems
Systems and Networks
Basic Courses:
Computer Systems and Fundamentals of Systems Programming
Computer Communications and Networking
Operating Systems
Information Security Theory and Practice
Security Laboratory
Advanced Courses:
Foundations of Parallel Computation
Networked Virtual Environments
Computer System Performance Evaluation
Multimedia Computing and Systems
Distributed Systems
Concurrent Software Systems
Scalable Internet Services
Advanced Computer Networks
Performance Analysis of Computer Networks
Real-Time Systems Design and Development
Topics in Resilient and Secure Computer Systems
Autonomic Computing
Topics in Computer Systems
Network Security
Operating Systems Security
Intrusion Detection
Topics in Information Security
Security Protocol Analysis
Security Experimentation
Research in Digital Forensics
Theoretical Computer Science
Basic Courses:
Mathematical Foundations of Computer Science
Analysis of Algorithms
Advanced Courses:
Theory of Computation
Computational Methods for Genomics
Advanced Algorithms
Computational Geometry
Parallel Algorithms
Graph Algorithms
Visual Computing
Basic Courses:
Computer Graphics
Advanced Courses:
Computer Graphics Game Technologies
Biometrics and Identity Management
Computer Vision
Image Processing and Applications
Interactive Graphics Software
Computational Vision
Human-Computer Intelligent Interaction
Advanced Topics in Computer Vision and Robotics

Project/Thesis (optional)

Three to six credit hours of the advanced classes may be replaced by a project or thesis. The project or thesis must be guided and approved by a committee of three appropriate faculty members and presented at an appropriate forum. The thesis must meet relevant university requirements.

Select one from the following:
Project Seminar (3 credits)
Thesis (6 credits)

Additional Pre-approved CS Courses

These courses are not classified by area. Note that CS 695 Topics in Computer Science/CS 795 Advanced Topics in CS can be used to satisfy the breadth requirement if the area is listed in the syllabus for the course.

CS 695Topics in Computer Science3
CS 697Independent Reading and Research1-3
CS 795Advanced Topics in CS3
CS 798Project Seminar3
CS 799Thesis1-6
CS 895Research Topics in CS3

Concentration in Cyber Security (CYSC)

In addition to the existing program requirements, MS CS degree students must satisfy the following requirements.

Students must take 5 courses from the following categories:

Required:
ISA 656Network Security3
ISA 562Information Security Theory and Practice3
Choose 2-3 elective courses:6-9
Introduction to Cryptography
Security Laboratory
Operating Systems Security
Intrusion Detection
Secure Software Design and Programming
Security Protocol Analysis
Security Experimentation
Choose 0-1 related course:0-3
Language Processors
Computer Communications and Networking
Operating Systems
Theory of Computation
Wireless and Mobile Computing

Thesis (optional):

Students, with the consent of a faculty sponsor and faculty advisor, may also elect a 6-credit thesis (CS 799 Thesis). The thesis must be guided and approved by a committee of three appropriate faculty members and presented at an appropriate forum. If the faculty advisor and the program director agree that the thesis is appropriate for the concentration the students will need to complete the two courses from the category 1 and one course from the category 2 in addition to the thesis to complete the Concentration requirements.

Concentration in Machine Learning (ML)

In addition to the existing program requirements, MS CS degree students must satisfy the following requirements.

Students must take 5 courses from the following categories:

Required:
CS 584Theory and Applications of Data Mining3
CS 688Machine Learning3
Choose 2-3 elective courses:6-9
Mining Massive Datasets with MapReduce
Instructable Cognitive Agents
Deep Learning
Advanced Machine Learning
Choose 0-1 related course:0-3
Introduction to Artificial Intelligence
Advanced Artificial Intelligence
Autonomous Robotics
Computer Vision

Thesis (optional):

Students, with the consent of a faculty sponsor and faculty advisor, may also elect a 6-credit thesis (CS 799 Thesis). The thesis must be guided and approved by a committee of three faculty members and presented to the committee. If the faculty advisor and the program director agree that the thesis is appropriate for the concentration the student will need to complete the two courses from category 1 and one course from category 2 in addition to the thesis to complete the concentration requirements.

Applied Computer Science, BS/Computer Science, Accelerated MS

Overview

Highly-qualified students in the Applied Computer Science, BS have the option of obtaining an accelerated Computer Science, MS.

For more detailed information, see AP.6.7 Bachelor's/Accelerated Master's Degrees. For policies governing all graduate degrees, see AP.6 Graduate Policies.

Admission Requirements

Students in the Applied Computer Science, BS program may apply to this option if they have earned 90 undergraduate credits with an overall GPA of at least 3.30. Students must have successfully completed:

CS 310Data Structures3
CS 330Formal Methods and Models3
CS 367Computer Systems and Programming4
Total Credits10

Accelerated Option Requirements

Students must complete all requirements for the BS and MS programs, with 6 credits overlap.

Students register for 6 credits of CS 500-level basic courses in place of the corresponding CS 400-level courses required for the undergraduate degree requirements. Specifically, students must register for CS 583 Analysis of Algorithms and one of the following courses in place of the corresponding 400-level course:

CS 540Language Processors3
CS 550Database Systems3
CS 551Computer Graphics3
CS 555Computer Communications and Networking3
CS 571Operating Systems3
CS 580Introduction to Artificial Intelligence3
CS 584Theory and Applications of Data Mining3

Note:

Students are permitted to take additional graduate basic courses in their undergraduate programs. In such cases, those classes cannot be counted toward requirements for the MS.

Degree Conferral

Students must apply the semester before they expect to complete the BS requirements to have the BS degree conferred. In addition, at the beginning of the student's final undergraduate semester, students must complete a Bachelor's/Accelerated Master's Transition form that is submitted to the Office of the University Registrar and the VSE Graduate Admissions Office. At the completion of MS requirements, a master's degree is conferred.

Computer Science, BS/Computer Science, Accelerated MS

Overview

Highly-qualified students in the Computer Science, BS have the option of obtaining an accelerated Computer Science, MS

For more detailed information, see AP.6.7 Bachelor's/Accelerated Master's Degrees. For policies governing all graduate degrees, see AP.6 Graduate Policies.

Admission Requirements

Students in the Computer Science, BS program may apply to this option if they have earned 90 undergraduate credits with an overall GPA of at least 3.30. Students must have successfully completed CS 310 Data StructuresCS 330 Formal Methods and Models and CS 367 Computer Systems and Programming.

Accelerated Option Requirements

Students must complete all requirements for the BS and MS programs, with 6 credits overlap.

Students register for 6 credits of CS 500-level basic courses in place of the corresponding CS 400-level courses required for the undergraduate degree requirements. Specifically, students must register for two of the following courses in place of the corresponding 400-level courses:

CS 540Language Processors3
CS 550Database Systems3
CS 551Computer Graphics3
CS 555Computer Communications and Networking3
CS 571Operating Systems3
CS 580Introduction to Artificial Intelligence3
CS 583Analysis of Algorithms3
CS 584Theory and Applications of Data Mining3

Note:

Students are permitted to take additional graduate basic courses in their undergraduate programs. In such cases, those classes cannot be counted toward requirements for the MS.

Degree Conferral

Students must apply the semester before they expect to complete the BS requirements to have the BS degree conferred. In addition, at the beginning of the student's final undergraduate semester, students must complete a Bachelor's/Accelerated Master's Transition form that is submitted to the Office of the University Registrar and the VSE Graduate Admissions Office. At the completion of MS requirements, a master's degree is conferred.