Computer Science

The NC State Computer Science program is accredited by the Computing Accreditation Commission of ABET,

Below you will find the Program Educational Objectives (PEOs), student learning outcomes, and recent enrollment and graduation information.


Within a few years after graduation, alumni of the CSC program will:

1. Apply their knowledge of computer science to problems encountered in their professional careers or in pursuit of advanced degrees.

2. Use evolving technologies, analytical thinking, and design to address contemporary issues.

3. Communicate well orally and in writing, interact professionally, and work effectively on multidisciplinary teams to achieve project objectives.

4. Uphold high ethical standards, including concern for the impact of computing on individuals, organizations, and society.

5. Engage in lifelong learning to enhance their professional capabilities.

Student Outcomes

Upon graduation CSC students at NCSU will
1. be competent in theoretical and mathematical foundations of computer science and be able to
1.1. apply fundamental concepts of discrete mathematics such as logic, proofs, set theory, relations, functions, and combinatorics to model computational problems,
1.2. demonstrate the application of abstract structures such as graphs, finite state machines, and recurrence relations to the solution of computer science problems,
1.3. analyze and evaluate comparative performance of algorithms and data structures appropriate to solving computer science problems,
1.4. apply concepts related to data structures such as lists, stacks, queues, arrays, graphs, trees, heaps, and hashing to design and create algorithms.
2. be proficient in one programming language and have a basic knowledge of several others and be able to
2.1. write efficient solutions to specific problems using an object-oriented programming language,
2.2. write programs in assembly language,
2.3. write programs in a procedural programming language.
3. understand the hardware and software architecture of computer systems and be able to
3.1. explain the function and interaction of computer processing units, memories and input/output devices,
3.2. define and explain elements of operating systems such as memory management, process scheduling, synchronization and interaction, and input/output devices,
3.3. distinguish computer network elements and understand issues related to computer security.
4. demonstrate the ability to participate in professional practices related to software engineering and be able to
4.1. negotiate, clarify, and document customer requirements,
4.2. apply knowledge of fundamental algorithms, programming language concepts and design patterns to determine an overall design for a software system,
4.3. implement a fully specified system,
4.4. test a fully specified system,
4.5. plan and monitor the progress of software projects to ensure on time delivery of a        high-quality system.
5. be able to communicate effectively about computer science-related topics and be able       to
5.1. deliver an audience-sensitive oral technical presentation,
5.2. write an audience-sensitive technical document,
5.3.contribute effectively on software-based system development teams.
6. demonstrate the ability to be responsible practitioners of computer science and understand the social and ethical implications of computing and be able to
6.1. demonstrate ways in which computers pose new ethical questions or pose new versions of standards, moral problems and dilemmas,
6.2. recognize and, when appropriate, to re solve ethical problems or dilemmas related to the computing profession.

Undergraduate Enrollment and Degrees Awarded

Fall 2015 Undergraduate Enrollment 841
2014 – 2015 Undergraduate Degrees Awarded 167