Computer Science

 

Master | Computer Science

Program Format:   
Entrance Exam: GRE

What's Special about Computer Science at NC State?


Our nationally recognized faculty consists of approximately 40 tenure-track professors, as well as a number of adjunct professors and visiting lecturers, many of whom possess extensive experience in industry. Included in this elite group of faculty are two Alumni Distinguished Professors, twenty recipients of the National Science Foundation's prestigious CAREER Award (which go to the nation's outstanding young faculty), a member of the National Academy of Engineering, a number of ACM and IEEE Fellows, and several University Outstanding Teachers.

World Class Education Online and Onsite 

The Master of Computer Science (Distance Education) program is a terminal professional degree program designed primarily to meet the needs of working professionals. The MCS-DE program is available to students residing in the United States, and to military personnel serving abroad. The degree is based on coursework only; no thesis or comprehensive examination is required. MCS-DE students typically take one or two courses a semester.

Courses are provided in streaming video form over the Internet. Coursework and results are exchanged electronically, and exams are taken (under properly proctored conditions) at the student's site. Students have the same access and privileges that on-campus students enjoy, and are encouraged to interact fully with their instructors and fellow students. Courses in most cases are simply recorded versions of on-campus courses, and as such have exactly the same content and requirements as would be experienced by any other graduate student. MCS-DE students may, if they so desire and are able, attend on-campus courses as well. The diploma and transcript indicate the degree is simply the Master of Computer Science, regardless of whether the student attends on campus or through Online and Distance Education delivery.

The Master of Computer Science (MCS) distance education program is designed for students with an undergraduate degree or sufficient undergraduate course work in computer science who wish to pursue a graduate degree in computer science. It is a 31 credit hour degree program that does not require a thesis, final oral exam or on- campus residency.

Eligibility

Students should have the following background in order to be considered for admission into the MCS degree program:

  • Undergraduate coursework in a three-semester sequence in differential and integral calculus, a calculus- based course in probability and statistics, and computer science courses equivalent to CSC 116, 216, 226, 236, 316 and either 333 or 456. 
  • A minimum grade point average (GPA) of 3.0.
  • Completion of the general Graduate Record Exam (GRE) for all applicants. The distance education MCS degree program is limited to those individuals who work or reside in the United States. The Graduate School requires that all international applicants take the TOEFL examination if they have not received a degree from a U.S. institution.

Cost

See Online and Distance Education Tuition and Fees for cost details.

Plan of Study

  • Completion of 31 credit hours of graduate coursework (ten courses). At least 22 hours must be in courses bearing the CSC prefix and must include CSC 600.
  • Completion of a minimum of three core CSC courses from the theory and systems categories, one from one category and two from the other category.
  • The remaining three courses may consist of any graduate level engineering, computer science, mathematics, or statistics courses offered through Engineering Online or on campus.

All requirements for the degree must be completed within six years of enrolling in the first course appearing on the NC State graduate transcript. Admitted students must comply with the Graduate School regulations for continuous enrollment or must request a leave of absence not to exceed one year.

Completion of the curriculum requires 31 graduate credits.

Core Requirements

CSC 600 - Computer Science Graduate Orientation

Units: 1

Introduction for new graduate students to [a] information about graduate program, department, and university resources, and [b] research projects conducted by CSC faculty.

Offered in Fall and Spring

Find this course:

2019 Fall Term 2020 Spring Term

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 505 - Design and Analysis Of Algorithms

Units: 3

Algorithm design techniques: use of data structures, divide and conquer, dynamic programming, greedy techniques, local and global search. Complexity and analysis of algorithms: asymptotic analysis, worst case and average case, recurrences, lower bounds, NP-completeness. Algorithms for classical problems including sorting, searching and graph problems [connectivity, shortest paths, minimum spanning trees].

Offered in Fall Spring Summer

Find this course:

2019 Fall Term

CSC 503 - Computational Applied Logic

Units: 3

Introduction to the conceptual and formal apparatus of mathematical logic, to mathematical concepts underlying the process of logical formalization, and to the applications of various logics across a broad spectrum of problems in computer science and artificial intelligence.

Offered in Fall Only

CSC 512 - Compiler Construction

Units: 3

The course will concentrate on the theory and practice of compiler-writing. Topics to be covered will include techniques for parsing, code generation, and optimization. Furthermore, the theoretical underpinnings of compilers such as LR parsing will be covered. Finally, the students will be exposed to compiler construction tools, and will obtain hands-on experience in building a compiler for a small programming language. Besides the listed prerequisite courses, other helpful courses include CSC 253, CSC 224, CSC 234, and MA 121.

Offered in Fall Only

CSC 565 - Graph Theory

Units: 3

Basic concepts of graph theory. Trees and forests. Vector spaces associated with a graph. Representation of graphs by binary matrices and list structures. Traversability. Connectivity. Matchings and assignment problems. Planar graphs. Colorability. Directed graphs. Applications of graph theory with emphasis on organizing problems in a form suitable for computer solution.

Offered in Spring Only

YEAR: Offered Alternate Even Years

Find this course:

CSC 579 - Introduction to Computer Performance Modeling

Units: 3

Workload characterization, collection and analysis of performance data, instrumentation, tuning, analytic models including queuing network models and operational analysis, economic considerations.

Offered in Fall and Spring

Find this course:

2020 Summer Term 1

CSC 580 - Numerical Analysis I

Units: 3

Algorithm behavior and applicability. Effect of roundoff errors, systems of linear equations and direct methods, least squares via Givens and Householder transformations, stationary and Krylov iterative methods, the conjugate gradient and GMRES methods, convergence of method.

Offered in Fall and Spring

CSC 707 - Automata, Languages and Computability Theory

Units: 3

Formal models of language and computation; finite automata and regular languages, pushdown automata and context-free languages, Turing machines. Relative power of models, Chomsky hierarchy. Inherent complexity of problems: undecidability, computational complexity, intractable problems.

Offered in Fall Only

Category 2: Systems

CSC 501 - Operating Systems Principles

Units: 3

Fundamental issues related to the design of operating systems. Process scheduling and coordination, deadlock, memory management and elements of distributed systems.

Offered in Fall and Spring

Find this course:

2019 Fall Term

CSC 506 - Architecture Of Parallel Computers

Units: 3

The need for parallel and massively parallel computers. Taxonomy of parallel computer architecture, and programming models for parallel architectures. Example parallel algorithms. Shared-memory vs. distributed-memory architectures. Correctness and performance issues. Cache coherence and memory consistency. Bus-based and scalable directory-based multiprocessors. Interconnection-network topologies and switch design. Brief overview of advanced topics such as multiprocessor prefetching and speculative parallel execution. Credit is not allowed for more than one course in this set: ECE 406, ECE 506, CSC 406.

Offered in Fall and Spring

Find this course:

2020 Spring Term

CSC 510 - Software Engineering

Units: 3

An introduction to software life cycle models; size estimation; cost and schedule estimation; project management; risk management; formal technical reviews; analysis, design, coding and testing methods; configuration management and change control; and software reliability estimation. Emphasis on large development projects. An individual project required following good software engineering practices throughout the semester.

Offered in Fall Only

Find this course:

2020 Spring Term

CSC 520 - Artificial Intelligence I

Units: 3

Introduction to and overview of artificial intelligence. Study of AI programming language such as LISP or PROLOG. Elements of AI problem-solving technique. State spaces and search techniques. Logic, theorem proving and associative databases. Introduction to knowledge representation, expert systems and selected topics including natural language processing, vision and robotics.

Offered in Fall and Spring

Find this course:

2019 Fall Term

CSC 540 - Database Management concepts and Systems

Units: 3

Advanced database concepts. Logical organization of databases: the entity-relationship model; the relational data model and its languages. Functional dependencies and normal forms. Design, implementation, and optimization of query languages; security and integrity, consurrency control, transaction processing, and distributed database systems.

Offered in Fall and Spring

Find this course:

2019 Fall Term 2020 Spring Term

CSC 561 - Principles of Computer Graphics

Units: 3

Fundamentals of the OpenGL API. 2D and 3D transformations, perspective and orthographic projection, and the mathematical foundations that underlie these concepts. Geometric primitives, clipping, depth buffering, scan conversion, and rasterization. Lighting, shadows, and texture mapping. Curves and surfaces.

Offered in Fall Only

CSC 570 - Computer Networks

Units: 3

General introduction to computer networks. Discussion of protocol principles, local area and wide area networking, OSI stack, TCP/IP and quality of service principles. Detailed discussion of topics in medium access control, error control coding, and flow control mechanisms. Introduction to networking simulation, security, wireless and optical networking.

Offered in Fall and Spring

Find this course:

2019 Fall Term

Advanced or specialized versions of core courses may be used as substitutes (e.g., CSC720 (AI II) may substitute for CSC520 (AI), and CSC573 (Internet Protocols) may substitute for CSC570 (Computer Networks)). Special topics courses (CSC 59x or 79x) may not be used to satisfy core course requirements.

Additionally:

  1. 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.)
  2. "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).
  3. All Computer Science credits must be at or above the 500 level. At most 3 credits outside of Computer Science may be at the 400 level.
  4. 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. See the Graduate Handbook for additional Graduate School regulations concerning grades.
  5. 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).
  6. 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.
  7. Minors are neither required nor permitted.
Entry Semester Application Deadlines and Details
FallSee program website
SpringSee program website

Dr. George N. Rouskas

Director of Graduate Programs, Department of Computer Science

College of Engineering

919.515.3860
rouskas@ncsu.edu

Contact me for: Program details