Master of Computer Science | Computer Science
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.
MCS Tracks
Artificial Intelligence
Data Science
Security
Software Engineering
Curriculum
A summary of the curriculum requirements for the Master of Computer Science is below:
Requirement
Credit Hours
Core courses
Orientation Course (
CSC 600
Computer Science graduate electives
12
Computer Science graduate electives, or other “restricted” electives
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
AI is taking over the world. Besides end-user applications such as chatbots and content creation, AI is having a major impact on how every knowledge-based discipline proceeds.
The Masters Track in Artificial Intelligence teaches students the concepts, theories, and skills necessary to engineer and evaluate AI algorithms and AI-infused tools and software systems. Topics include foundations of machine learning, cognitive modeling, natural language processing and understanding, and multiagent systems, as well as engineering of and with deep learning, games, software, the Internet of Things, immersive environments, and large-scale geospatial reasoning.
The NC State College of Engineering launched an Applied AI Initiative two years ago, which builds on these themes and will provide access for students to collaborate in a wide variety of fields, including aerospace engineering, agriculture, biomedical engineering, education, manufacturing, materials science, robotics, transportation, and many more. Students will have an opportunity to learn on a campus with thriving groups and many informal opportunities to learn, going beyond their coursework.
2024 Computer Science graduation in William Neal Reynolds Coliseum
Artificial Intelligence Track Curriculum
Requirement
Credit Hours
CSC 520
Artificial Intelligence Foundations Courses
12
Artificial Intelligence Applications Courses
Computer Science core courses, graduate electives, or restricted electives
Orientation Course (
CSC 600
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 has become increasingly important in nearly every industry sector and academic field, and the discovery and forecasting of insightful patterns from “Big Data” is at the core of analytical intelligence in government, industry, and science.
The Masters Track in Data Science instills students the skills essential to knowledge discovery efforts to identify standard, novel and truly differentiated solutions and decision making, including skills in managing, querying, analyzing, visualizing, and extracting meaning from extremely large data sets.
Fall 2024 Computer Science graduation in William Neal Reynolds Coliseum
Data Science Track Curriculum
The curriculum requirements for the Data Science Track are summarized in this table.
Requirement
Credit Hours
Data Science core courses
Data Science electives
Computer Science core courses, graduate electives, or restricted electives
12
Orientation Course (
CSC 600
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
As information technology continues to become ingrained in society, there are real-world impacts whenever the security or privacy of these systems fail.
The Masters Track in Security teaches students the skills necessary to build, analyze, and reason about secure and private systems. Topics include both an overview of computer and network security and a variety of more in-depth topics, including systems security, software security, privacy, and cryptography. The track can be customized to be more practice-oriented or theoretically-oriented based on the interests of the student.
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
Computer Science core courses, graduate electives, or restricted electives
Orientation Course (
CSC 600
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
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
Software Science courses
Software Foundations courses
Computer Science core courses, graduate electives, or restricted electives
12
Orientation Course (
CSC 600
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
Software Science courses
Software Foundations courses
Computer Science core courses, graduate electives, or restricted electives
12
Orientation Course (
CSC 600
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.
Find NC State websites, locations and people
TOP LINKS
MyPack Portal
Access vital records, resources and information for students, families, faculty and staff.
University Libraries
Our campus libraries are your destinations for studying, research and expanding your mind.
Academic Calendar
Look up important dates and university holidays for the upcoming academic year and beyond.
Majors and Careers
Explore our 100-plus degree programs and see where an NC State education can take you.
US