Bachelor of Science Degree in Computer Science
Curriculum Objectives and Outcomes
Following are the objectives and outcomes of the computer science (CSC) curriculum
at NC State University's College of Engineering.
- CSC students will be competent in theoretical and mathematical foundations
of computer science. The outcomes associated with this objective are
that, upon graduation, CSC students should be able to:
a. apply fundamental concepts of discrete mathematics such as logic & proofs, set theory, relations & functions, and combinatorics to model computational problems.
b. demonstrate the application of abstract structures such as graphs, finite state machines, and recurrence relations to the solution of computer science problems.
c. analyze and evaluate comparative performance of algorithms and data structures appropriate to solving computer science problems.
- CSC students will be able to construct algorithms and data structures
applicable to problems solved by computer scientists. The outcomes
associated with this objective are that, upon graduation, CSC students
should be able to:
a. apply concepts related to data structures such as lists, stacks, queues, arrays, graphs, trees, heaps, and hashing to design and create algorithms.
b. recognize design patterns and use these to guide solutions to computer science problems.
- Upon graduation, computer science students will be proficient in
one programming language and have a basic knowledge of several others.
The outcomes associated with this objective are that, upon graduation,
CSC students should be able to:
a. write efficient solutions to specific problems using an object-oriented programming language.
b. write programs in assembly language.
c. write programs in a procedural programming language.
- CSC students will understand the hardware and software architecture
of computer systems. The outcomes associated with this objective are
that, upon graduation, CSC students should be able to:
a. define and explain instruction sets
b. explain the function and interaction of computer processing units, memories, and input/output devices
c. define and explain elements of operating systems such as memory management, process scheduling, synchronization and interaction, and input/output devices.
d. distinguish computer network elements and understand issues related to computer security.
- CSC students will demonstrate the ability to participate in professional
practices related to software engineering. The outcomes associated
with this objective are that, upon graduation, CSC students should
be able to:
a. negotiate, clarify, and document customer requirements.
b. apply knowledge of fundamental algorithms, programming language concepts, and design patterns to determine an
overall design for a software system.
c. implement a fully specified system.
d. test a fully specified system.
e. plan and monitor the progress of software projects to ensure on time delivery of a high-quality system.
- CSC students will be able to communicate effectively about computer
science-related topics. The outcomes associated with this objective
are that, upon graduation, CSC students should be able to:
a. deliver an audience-sensitive oral technical presentation.
b. write an audience-sensitive technical document.
c. contribute effectively on software-based system development teams.
- CSC students will demonstrate the ability to be responsible practitioners
of computer science and understand the social and ethical implications
of computing. The outcomes associated with this objective are that,
upon graduation, CSC students should be able to:
a. demonstrate ways in which computers pose new ethical questions or pose new versions of standards, moral problems and dilemmas.
b. recognize and, when appropriate, to resolve ethical problems or dilemmas related to the computing profession.
Related links
Proposed Program of Study
Undergraduate
CSC Program Policies
Return
to Programs