Master of Computer Science
The Master of Computer Science program is a terminal professional degree program. The degree is based on course work. No research, thesis or comprehensive examination is required. MCS students are normally self-supported, and some enroll on a part-time basis.
Curriculum
A summary of the curriculum requirements for the Master of Computer Science is below:
| Requirement | Credit Hours |
|---|---|
| Core courses | 9 |
| Orientation Course (CSC 600) | 1 |
| Computer Science graduate electives | 12 |
| Computer Science graduate electives, or other “restricted” electives | 9 |
| Total | 31 |
Completion of the curriculum requires 31 graduate credits. All incoming MCS students must register for an orientation course: CSC 600 (Computer Science Graduate Orientation).
At least three courses must be taken from the following list of core courses, one taken from one category, and two taken from the other category:
- Category 1: Theory
CSC 503 (Computational Applied Logic), CSC 505 (Algorithms), CSC 512 (Compiler Construction), CSC 514(Foundations of Cryptography), CSC 565 (Graph Theory), CSC 579 (Performance Evaluation), CSC 580 (Numerical Analysis), CSC 707 (Theory of Computation). - Category 2: Systems
CSC 501 (Operating Systems), CSC 506 (Parallel Architectures), CSC 510 (Software Engineering), CSC 520 (Artificial Intelligence), CSC 540 (Database Systems), CSC 561 (Graphics), CSC 570 (Networks), CSC 574 (Computer and Network Security).
CSC 720 may be substituted for CSC 520 and CSC 573 may be substituted for CSC 570. Special topics courses (CSC 59x or 79x) may not be used to satisfy core course requirements.
Additional Requirements
- At least 21 hours must be in graduate 500- and 700-level Computer Science courses (note: the Graduate School does not allow 500- and 700-level courses to be taken pass-fail).
- “Restricted elective” courses may be any graduate letter-graded (500- or 700-level) course within the College of Engineering (including Computer Science), or within the College of Sciences. Exceptions that will *not* count towards graduation:
- ST 511(if taken after Spring 2014)
- special topics courses (including EGR 590) in departments other than Computer Science (if taken after Fall 2012).
- All Computer Science credits must be at or above the 500 level.
- To graduate, a student must have at least a 3.00 grade point average (GPA). In addition, for students beginning their degree on or after Fall 2013, the GPA in the group of courses used to satisfy the core course requirement must be at least 3.0 as well. For additional Graduate School requirements regarding degree completion see the Graduate School Handbook.
- A maximum of four special topics courses (either CSC 591 or CSC 791) may be counted towards graduation (for students beginning Fall 2012 or later).
- Registration by MCS students in Independent Study (CSC 630) requires approval by the faculty member who will supervise the work, followed by submission to the DGP of a one page written description of the topic and expected outputs, and approval of the DGP. A grade of “S” will require submission of a report describing the work done, and the results obtained. A maximum of three credits of CSC 630 may be counted towards graduation.
- Minors are neither required nor permitted.
Advisor and Graduate Degree Audit
An academic advisor assists all MCS students with Graduate School procedures, and answers questions about courses and requirements. MCS student fill out a Graduate Degree Audit showing the courses they intend to take.
Examinations
There are no comprehensive examinations required for the MCS degree.
Continuous Enrollment and Time Limits
The Graduate School has a continuous enrollment policy. While pursuing a graduate degree, the student must be registered every Fall and Spring semester until completion. Otherwise, a student must request an official leave of absence from the Graduate School.
All masters students must complete their degree requirements within six (6) calendar years of starting their program.
Internships
Many of our Masters students take internships, either full-time (usually, during the summer) or part-time (during the academic year). International students who are required to be registered full-time during the academic year, must meet the following requirements to be eligible for an internship:
- They must have completed two semesters of study and be in good academic standing with a GPA of 3.0 or higher.
- Students with a GPA between 3.0-3.2 must receive approval from the DGP or their graduate advisor before accepting an internship offer.
- Students must be registered in at most three graduate-level courses during a semester in which they plan to engage in a part-time internship (20 hours or less).
Patent Agreement
Graduate students must sign a statement agreeing to abide by the University’s patent policies. This statement is now part of the Graduate Degree Audit. Patent and copyright procedures of NC State are available here. Students wishing to be exempted due to policies of their companies should contact the university’s Office of Technology Transfer at 919-515-7199.
The Accelerated Bachelors-Masters (ABM) Degree
The ABM degree program combines bachelors and masters degrees, and is intended for high-achieving undergraduates (completion of at least 75 credit hours, with GPA of at least 3.5) in the Department of Computer Science . Four graduate courses taken while still in the undergraduate program may be “double-counted” for both degrees, allowing the masters degree to be earned in two semesters beyond the bachelors. Prospective students must be reviewed and recommended by the Computer Science Undergraduate Advisor, and then apply to the Graduate School for admission into a graduate degree, program to follow immediately upon completion of their Bachelors degree. Please see the Computer Science Undergraduate Advisor to start this process. If approved, the student must prepare a Graduate Degree Audit form that shows what courses will be double-counted, and what courses are proposed for completion of the degree in two semesters (MCS without thesis). More information about the program and the requirements is available in the Graduate School Handbook.
Artificial Intelligence Track

Artificial Intelligence Track Curriculum
Requirement Credit Hours CSC 520 3 Artificial Intelligence Foundations Courses 12 Artificial Intelligence Applications Courses 9 Computer Science core courses, graduate electives, or restricted electives 6
Orientation Course (CSC 600)1 Total 31
Completion of the curriculum requires 31 credits. Students must also satisfy all the MCS requirements. All incoming MCS students must register for an orientation course: CSC 600 (Computer Science Graduate Orientation)
Artificial Intelligence Track Courses
- CSC 520 – Artificial Intelligence
Artificial Intelligence Foundations
- CSC 523 – Cognitive Systems
- CSC 529 – Trustworthy and Efficient Deep Learning
- CSC 555 – Social Computing and Decentralized AI
- CSC 591 – Neuro-Symbolic AI
- CSC 720 – Artificial Intelligence II
- CSC 722 – Machine Learning
- CSC 791 – Machine Learning with Graphs
- CSC 791 – Natural Language Processing
- CSC 791 – Efficient Deep Learning
- CSC 791 – Deep Learning Beyond Accuracy
Artificial Intelligence Applications
- CSC 522 – Automated Learning
- CSC 526 – Software Engineering and AI
- CSC 559 – Foundations of Generative AI for Systems
- CSC 582 – Computational Models of Interactive Narrative
- CSC 584 – Building Game AI
- CSC 591 – Foundation of Data Science
- CSC 591 – Artificial Intelligence of Things
- CSC 591 – Self-Driving Cars, Theory and Practice
- CSC 591 – Advanced Robotics
- CSC 791 – Geospatial AI
Certificate
Upon completion of the Artificial Intelligence Track curriculum, students may request an official letter from one of the Graduate Office Staff, or email [csc-gradoffice@ncsu.edu]. The letter will be on department letterhead, signed by the DGP, and will mention you by name, your degree program, and that you have successfully completed the Masters Track in Artificial Intelligence.
Data Science Track

Data Science Track Curriculum
The curriculum requirements for the Data Science Track are summarized in this table.
| Requirement | Credit Hours |
|---|---|
| Data Science core courses | 9 |
| Data Science electives | 9 |
| Computer Science core courses, graduate electives, or restricted electives | 12 |
| Orientation Course (CSC 600) | 1 |
| Total | 31 |
Completion of the curriculum requires 31 credits. Students must also satisfy all the MCS requirements. All incoming MCS students must register for an orientation course: CSC 600 (Computer Science Graduate Orientation)
Data Science Core
Three core courses must be taken as follows:
- Any three courses from the list of Algorithmics courses below
Data Science Electives
Three courses must be taken from the three Data Science Course Categories:
- Algorithmics
- Systems
- Applications
Students must take courses from at least two categories
Data Science Course Categories
Algorithmics
- CSC 505 — Algorithms
- CSC 520 — Artificial Intelligence I
- CSC 522 — Automated Learning and Data Analysis
- CSC 720 — Artificial Intelligence II
- CSC 722 — Advanced Topics in Machine Learning
- CSC 591/791 — Graph Data Mining
- CSC 591/791 — Spatial and Temporal Data Mining
- CSC 591/791 — Machine Learning for User Adaption
- CSC 591/791 — Advanced Algorithms
- CSC 591/791 — Algorithms for Data Guided Business Intelligence
- CSC 591 — Foundations of Data Science
Systems
- CSC 540 — Database Management Concepts and Systems
- CSC 541 — Advanced Data Structures
- CSC 547 — Cloud Computing Technology
- CSC 548 — Parallel Systems
- CSC 591 — Data Intensive Computing
- CSC 742 — Database Management Systems
- CSC 724 — Advanced Distributed Systems
- CSC 750 — Service-Oriented Computing
Applications
- CSC 530 — Computational Methods for Molecular Biology
- CSC 554 — Human Computer Interaction
- CSC 555 — Social Computing
- CSC 561 — Graphics
- CSC 591 — Spoken Dialogue Systems
- CSC 591/495 — Intelligent Game Learning
- CSC 591/495 — Educational Data Mining
Certificate
Upon completion of the Data Science Track curriculum, students may request an official letter from one of the Graduate Office Staff, or email [csc-gradoffice@ncsu.edu]. The letter will be on department letterhead, signed by the DGP, and will mention you by name, your degree program, and that you have successfully completed the Masters Track in Data Science.
Security Track

Security Track Curriculum
The curriculum requirements for the Security Track are summarized in this table.
| Requirement | Credit Hours |
|---|---|
| Security core courses | 12 |
| Security Foundations courses | 9 |
| Computer Science core courses, graduate electives, or restricted electives | 9 |
| Orientation Course (CSC 600) | 1 |
| Total | 31 |
Completion of the curriculum requires 31 credits. Students must also satisfy all the MCS requirements. All incoming MCS students must register for an orientation course: CSC 600 (Computer Science Graduate Orientation).
Security Courses
Four security core courses must be taken as follows:
- CSC 574 – Computer and Network Security
- CSC 514 – Foundations of Cryptography
- CSC 515 – Software Security
- CSC 533 – Privacy
- CSC 537 – Systems Attacks and Defenses
- CSC 591/791 – Human Centered Security
- CSC 705 – Operating Systems Security
- CSC 774 – Advanced Network Security
- CSC 789 – Cellular and Telecommunications Security
Security Foundations Course Categories
Three courses must be taken from the Security Foundations Categories:
- Systems Foundations
- Theory Foundations
- Privacy Foundations
Students must take take courses from at least two categories.
Systems Foundations
- CSC 501 – Operating Systems Principles
- CSC 510 – Software Engineering
- CSC 540 – Database Management Concepts and Systems
- CSC 548 – Parallel Systems
- CSC 570 – Computer Networks
- CSC 573 – Internet Protocols
- CSC 575 – Introduction to Wireless Networking
- CSC 712 – Software Testing and Reliability
- CSC 724 – Advanced Distributed Systems
Theory Foundations
- CSC 505 – Design and Analysis of Algorithms
- CSC 512 – Compiler Construction
- CSC 541 – Advanced Data Structures
- CSC 565 – Graph Theory
- CSC 707 – Automata, Languages and Computability Theory
- CSC 722 – Advanced Topics in Machine Learning
Privacy Foundations
- CSC 522 – Automated Learning and Data Analysis
- CSC 554 – Human-Computer Interaction
- CSC 555 – Social Computing
- CSC 591 – Foundations of Data Science
Certificate
Upon completion of the Security Track curriculum, students may request an official letter from one of the Graduate Office Staff, or email [csc-gradoffice@ncsu.edu]. The letter will be on department letterhead, signed by the DGP, and will mention you by name, your degree program, and that you have successfully completed the Masters Track in Security.
Software Track

Software Engineering Track Curriculum
The curriculum requirements for the Software Engineering Track are summarized in this table.
| Requirement | Credit Hours |
|---|---|
| CSC 510 — Software Engineering | 3 |
| Software Science courses | 9 |
| Software Foundations courses | 6 |
| Computer Science core courses, graduate electives, or restricted electives | 12 |
| Orientation Course (CSC 600) | 1 |
| Total | 31 |
| Three research projects | N/A |
Completion of the curriculum requires 31 credits and the completion of three research projects. Students must also satisfy all the MCS requirements. All incoming MCS students must register for an orientation course: CSC 600 (Computer Science Graduate Orientation)
Software Engineering Research Projects
Students must complete three research projects over the course of their degree, with no more than two per semester. A research project can be voluntarily participating in an approved software engineering research experiment, or it can be a research paper completed during one of the software science courses, in addition to that course’s normal coursework. Research experiments will typically involve some software development task, such as fixing a bug, and will generally take a few hours to complete. Faculty will send out email announcements to the graduate student mailing list with opportunities.
Software Engineering Courses
Graduate Program – Master Track in Software Engineering
As software becomes increasingly important to our day-to-day lives, building and maintaining high quality software is critical.
The Masters Track in Software Engineering teaches students the skills necessary to build and maintain such software systems. Topics include both an overview of software engineering and a variety of more in-depth topics, including software security, testing, and DevOps. The track has offerings both in the state-of-the-practice and state-of-the-art software engineering, with a special focus on evidence-based practice.
SOFTWARE ENGINEERING TRACK CURRICULUM
The curriculum requirements for the Software Engineering Track are summarized in this table.
| Requirement | Credit Hours |
|---|---|
| CSC 510 — Software Engineering | 3 |
| Software Science courses | 9 |
| Software Foundations courses | 6 |
| Computer Science core courses, graduate electives, or restricted electives | 12 |
| Orientation Course (CSC 600) | 1 |
| Total | 31 |
| Three research projects | N/A |
Completion of the curriculum requires 31 credits and the completion of three research projects. Students must also satisfy all the MCS requirements. All incoming MCS students must register for an orientation course: CSC 600 (Computer Science Graduate Orientation)
SOFTWARE ENGINEERING RESEARCH PROJECTS
Students must complete three research projects over the course of their degree, with no more than two per semester. A research project can be voluntarily participating in an approved software engineering research experiment, or it can be a research paper completed during one of the software science courses, in addition to that course’s normal coursework. Research experiments will typically involve some software development task, such as fixing a bug, and will generally take a few hours to complete. Faculty will send out email announcements to the graduate student mailing list with opportunities.
SOFTWARE ENGINEERING COURSES
Software Science
- CSC 515 — Software Security
- CSC 519 — DevOps
- CSC 591 — Data-Driven Privacy
- CSC 710 — Software Engineering as a Human Activity
- CSC 712 — Software Testing
- CSC 791 — Automated Software Engineering
Software Foundations
- CSC 503 — Computational Applied Logic
- CSC 512 — Compiler Construction
- CSC 517 — Object-Oriented Design and Development
- CSC 520 — Artificial Intelligence I
- CSC 522 — Automated Learning and Data Analysis
- CSC 540 — Database Management Concepts and Systems
- CSC 547 — Cloud Computing Technology
- CSC 554 — Human-Computer Interaction
- CSC 750 — Service-Oriented Computing
Certificate
Upon completion of the Software Engineering Track curriculum, students may request an official letter from one of the Graduate Office Staff, or email [csc-gradoffice@ncsu.edu]. The letter will be on department letterhead, signed by the DGP, and will mention you by name, your degree program, and that you have successfully completed the Masters Track in Software Engineering.