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.

RequirementCredit Hours
CSC 510 -- Software Engineering3
Software Science courses9
Software Foundations courses 6
Computer Science core courses, graduate electives, or restricted electives 12
Orientation Course (CSC 600)1
Total31
Three research projectsN/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 mail [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.

Meet us at the intersection of technology and life