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 hold a four-year (120-credit minimum) baccalaureate degree in an appropriate discipline from an accredited institution and have earned a GPA of 3.00 or better in the last 60 credits of undergraduate study.

Applicants must also submit the following:

  • Transcripts of all post secondary education
  • A one-page statement of educational and career goals
  • A current resume
  • Two letters of recommendation, preferably from instructors
  • Internationally-educated applicants must submit an English Proficiency Exam Score, if applicable
  • The baccalaureate degree must include the following subjects:
    • Calculus I and II (equivalent to MATH 113 Analytic Geometry and Calculus I (Mason Core) and  MATH 114 Analytic Geometry and Calculus II)
    • Introductory and Object-Oriented Programming (equivalent to CS 112 Introduction to Computer Programming (Mason Core) and CS 211 Object-Oriented Programming )
    • Discrete Mathematics (equivalent to MATH 125 Discrete Mathematics I (Mason Core)
    • Computer Architecture including Assembly Language (equivalent to CS 367 Computer Systems and Programming)
    • Data Structures and Algorithms (equivalent to CS 310 Data Structures)
    • Automata Theory and Formal Languages (equivalent to CS 330 Formal Methods and Models)

Alternatively, students may take equivalent courses after their undergraduate program and before applying to the MSCS program, and submit appropriate transcripts. George Mason’s School of Computing offers the following foundation courses, which students can use to bridge into the MS CS program:

  • Introductory and Object-Oriented Programming: COMP 501 Computer Programming Foundations I
  • Discrete Mathematics: COMP 502 Mathematical Foundations of Computing I
  • Computer Architecture: COMP 503 Computer Systems Foundations I
  • Data Structures and Algorithms: COMP 511 Computer Programming Foundations II
  • Automata Theory and Formal Languages: COMP 512 Mathematical Foundations of Computing II

The COMP bridge courses can be taken in non-degree status, provisional status, while enrolled in the Foundations of Computing (bridge) program, or while enrolled in a different MS program. Students who earn a B or better in all the foundation courses they did not have in their undergraduate degree can then apply for full admission into the MSCS program. Eligible domestic students who lack one or more foundation courses may be admitted provisionally and may be required to take the appropriate foundation courses before converting to full degree status.

Banner Code: EC-MS-CS

Degree Requirements

Total credits: 30

Required Courses and Plan of Study

In addition to general university requirements, students must complete 30 approved graduate credits (10 courses), divided into five core (required) basic courses, four advanced constrained elective courses, and one constrained elective.

Students must take the two core courses of CS 530 Mathematical Foundations of Computer Science and CS 531 Computer Systems and Fundamentals of Systems Programming as early as possible, preferably as their first two courses in the program.

Students with a strong academic background in computer science may have CS 530 and CS 531 substituted for other elective courses at the discretion of the program director. Students enrolled in PhD CS or the Bachelor’s-Accelerated Master’s program cannot take CS 530 or CS 531 for credit. Students may also demonstrate that they have the requisite knowledge corresponding to CS 530 or CS 531 by passing an exam. The exams are given before classes begin in January and August, and can only be taken once. Students who fail either one of the exams must take the 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 into five areas: Artificial Intelligence and Databases, Programming Languages and Software Engineering, Systems and Networks, Theoretical Computer Science, and Visual Computing. These areas apply at both the basic and the advanced level.

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

  • Core: Students must take CS 583 Analysis of Algorithms (from the Theoretical Computer Science area) and two additional core courses from two other areas. Core courses must be successfully completed with a grade of B- or higher. Students receiving lower than a B- must retake the course, or choose a different core course and use the B- grade as an elective.
  • Advanced: At least four courses (12 credits) must be chosen from the advanced courses in the list given below. These four courses must come from at least two different areas.
  • CS designation: At least six courses, two of which must be advanced, must be designated CS.
  • Alternative electives: Up to two courses that are not on the list of pre-approved courses may be taken with prior approval of the program director.

Plan of Study

Before the end of the first semester, students must have a plan of study approved by their academic advisor.

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

Basic and Advanced MS CS Electives 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
Advanced Natural Language Processing
Instructable Cognitive Agents
Autonomous Robotics
Advanced Artificial Intelligence
Machine Learning
Planning Motions of Robots and Molecules
Special Topics in Artificial Intelligence and Databases
Deep Learning
Advanced Machine Learning
Decision Guidance Systems
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
Software Project Management
Advanced Courses:
Advanced Compilers
Special Topics in Programming Languages and Software Engineering
Software Design Patterns
User Interface Design and Development
Software Testing
Software Engineering for the World Wide Web
Component-Based Software Development
Secure Software Design and Programming
Secure Software Design and Programming
Special Topics in Software Engineering
Reusable Software Architectures
Advanced Software Testing
Software Analysis and Design of Real-Time Systems
Advanced Topics in Software Engineering
Directed Readings in Software Engineering
Systems and Networks
Basic Courses:
Computer Systems and Fundamentals of Systems Programming
Computer Communications and Networking
Operating Systems
Introduction to Cryptography
Information Security Theory and Practice
Security Laboratory
Advanced Courses:
Foundations of Parallel Computation
Wireless and Mobile Computing
Networked Virtual Environments
Computer System Performance Evaluation
Multimedia Computing and Systems
Distributed Systems
Special Topics in Systems and Networks
Concurrent Software Systems
Scalable Internet Services
Performance Analysis of Computer Networks
Real-Time Systems Design and Development
Topics in Resilient and Secure Computer Systems
Autonomic Computing
Network Security
Operating Systems Security
Intrusion Detection
Topics in Information Security
Security Protocol Analysis
Security Experimentation
Research in Digital Forensics
Software Engineering for Real-Time Embedded Systems
Theoretical Computer Science
Basic Courses:
Mathematical Foundations of Computer Science
Analysis of Algorithms
Advanced Courses:
Theory of Computation
Advanced Algorithms
Computational Geometry
Parallel Algorithms
Graph Algorithms
Special Topics in Theoretical Computer Science
Visual Computing
Basic Courses:
Computer Graphics
Advanced Courses:
Computer Graphics Game Technologies
Computational Design
Virtual Reality
Biometrics and Identity Management
Computer Vision
Image Processing and Applications
Special Topics in Visual Computing
Interactive Graphics Software
Computational Vision
Human-Computer Intelligent Interaction
Elective courses not classified by area 1
Basic Courses
Basic Topics in Computer Science
Advanced Courses
Special Topics in Computer Science
Independent Reading and Research
Advanced Topics in CS
Research Project
MS Thesis
Research Topics in CS

Project or Thesis

With approval from a faculty advisor and the Program Director or Associate Chair, six credit hours of the advanced classes may be replaced by a thesis. A thesis must be advised by a member of the Graduate Faculty who is a full-time or affiliate member of the CS Department. A thesis committee must be formed, consisting of the thesis advisor and two members of the Graduate Faculty, at least one of whom must be in the CS Department. An MS thesis must have a research component and must result in a written document, and may include software. An MS thesis usually spans two semesters and the student takes three credits of CS 799 in each semester.

Three credits of the advanced classes may be replaced by a project. A project must be advised by a member of the Graduate Faculty who is a full-time or affiliate member of the CS Department. An MS project must result in a written document, and may include software.

Requests for either a project or a thesis must be initiated by the thesis advisor, and approved by the CS Department Chair or delegate.

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

Concentration in Cyber Security (CYSC)

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
Software Testing
Secure Software Design and Programming
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):

If a student in a concentration choose a thesis option, the 6 credits of CS 799 MS Thesis can replace two electives or related courses in the concentration.

Concentration in Machine Learning (ML)

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
Advanced Natural Language Processing
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):

If a student in a concentration choose a thesis option, the 6 credits of CS 799 MS Thesis can replace two elective or related courses in the concentration.

Applied Computer Science, BS/Computer Science, Accelerated MS

Overview

Highly-qualified students in the Applied Computer Science, BS can complete both a BS-ACS and a Computer Science, MS in five years through the BS-MS accelerated (BAM) program.

General BAM policies are in the catalog under AP.6.7 Bachelor's/Accelerated Master's Degrees. Policies governing all graduate degrees are in the catalog under AP.6 Graduate Policies.

Admission Requirements

Students in the Applied Computer Science, BS program are encouraged to apply to the BAM program after earning 60 undergraduate credits with an overall GPA of at least 3.30. Students must have successfully completed CS 310 Data Structures and CS 330 Formal Methods and Models.

Accelerated Option Requirements

Students accepted to the BAM program may earn up to 12 credits of graduate coursework that count towards both the BS and MS degrees. They may begin taking graduate courses after completing 75 undergraduate credits and successfully completing CS 367 Computer Systems and Programming.

The following graduate courses can replace the corresponding undergraduate courses.

CS 540Language Processors (to replace CS 440)3
CS 550Database Systems (to replace CS 450)3
CS 551Computer Graphics (to replace CS 451)3
CS 555Computer Communications and Networking (to replace CS 455)3
CS 571Operating Systems (to replace CS 471)3
CS 580Introduction to Artificial Intelligence (to replace CS 480)3
CS 584Theory and Applications of Data Mining (to replace CS 484)3
CS 583Analysis of Algorithms (to replace CS 483)3
CS 587Introduction to Cryptography (to replace CS 487)3
SWE 619Object-Oriented Software Specification and Construction (to replace SWE 419)3
SWE 637Software Testing (to replace SWE 437)3
SWE 642Software Engineering for the World Wide Web (to replace SWE 432)3

Notes:

  • Students may not use both the graduate course and the undergraduate alternative for their BS degree.
  • Students must satisfy all recommended and required prerequisites for the graduate courses they take.
  • Students also have the option to take up to 6 additional credits of graduate coursework on reserve, which can be used for the MS degree only.

Degree Conferral

Students must apply for degree conferral the semester before they expect to complete their BS requirements. At the beginning of their final undergraduate semester, students must submit a completed Bachelor's-Accelerated Master's Transition form to the CS department office. The master’s degree will be conferred after the student completes the MS requirements.

Computer Science, BS/Computer Science, Accelerated MS

Overview

Highly-qualified students in the Computer Science, BS can complete both a BS-CS and a Computer Science, MS in five years through the BS-CS accelerated (BAM) program.

General BAM policies are in the catalog under AP.6.7 Bachelor's/Accelerated Master's Degrees. Policies governing all graduate degrees are in the catalog under AP.6 Graduate Policies.

Admission Requirements

Students in the Computer Science, BS program are encouraged to apply to the BAM program after earning 60 undergraduate credits with an overall GPA of at least 3.30. Students must also have successfully completed CS 310 Data Structures and CS 330 Formal Methods and Models.

Accelerated Option Requirements

Students accepted to the BAM program may earn up to 12 credits of graduate coursework that count towards both the BS and MS degrees. They may begin taking graduate courses after completing 75 undergraduate credits and successfully completing CS 367 Computer Systems and Programming.

The following graduate courses can replace the corresponding undergraduate courses.

CS 540Language Processors (to replace CS 440)3
CS 550Database Systems (to replace CS 450)3
CS 551Computer Graphics (to replace CS 451)3
CS 555Computer Communications and Networking (to replace CS 455)3
CS 571Operating Systems (to replace CS 471)3
CS 580Introduction to Artificial Intelligence (to replace CS 480)3
CS 583Analysis of Algorithms (to replace CS 483)3
CS 584Theory and Applications of Data Mining (to replace CS 484)3
CS 587Introduction to Cryptography (to replace CS 487)3
SWE 619Object-Oriented Software Specification and Construction (to replace SWE 419)3
SWE 637Software Testing (to replace SWE 437)3
SWE 642Software Engineering for the World Wide Web (to replace SWE 432)3

Notes:

  • Students may not use both the graduate course and the undergraduate alternative for their BS degree.
  • Students must satisfy all recommended and required prerequisites for the graduate courses they take.
  • Students also have the option to take up to 6 additional credits of graduate coursework, on reserve, which can be used for the MS degree only.

Degree Conferral

Students must apply for degree conferral the semester before they expect to complete their BS requirements. At the beginning of their final undergraduate semester, students must submit a completed Bachelor's-Accelerated Master's Transition form to the CS department office. The master's degree will be conferred after the student completes the MS requirements.