Computer Programming Certificate Courses

Completing the Computer Programming Certificate requires just 25-26 hours of coursework in mathematics, programming languages, and other core principles of computer science beyond the calculus requirement, which may be 3 or 4 credit hours depending on the calculus course taken. Specifically, there are eight required courses:

MA 121 Elements of Calculus 3 credit hours
Prerequisite: MA 107 or 111 with a C- or better, or 480 on the SAT Subject Test in Mathematics Level 2 or the NCSU Math Skills Test, or 2 or better on an AP Calculus exam. Credit is not allowed for both MA 121 and MA 131 or MA 141.
For students who require only a single semester of calculus. Emphasis on concepts and applications of calculus, along with basic skills. Algebra review, functions, graphs, limits, derivatives, integrals, logarithmic and exponential functions, functions of several variables, applications in management, applications in biological and social sciences. Credit is not allowed in more than one of MA 121, 131, 141. MA 121 may not be substituted for MA 131 or MA 141 as a curricular requirement


CSC 116 Introduction to Computing – Java 3 credit hours
An introductory course in computing in Java. Emphasis on algorithm development and problem-solving. Careful and methodical development of Java applications and applets from specifications; documentation and style; appropriate use of control structures; classes and methods; data types and data abstraction; object-oriented programming and design; graphical user interface design.


CSC 216 Programming Concepts – Java 4 credit hours
Prerequisite: CSC 116 with a grade of C or better
The second course in computing, intended for majors. Emphasis is placed on interpretation of inductive definitions (functions and data types); testing strategies; specification and implementation of finite-state machine; encapsulation; polymorphism; inheritance; class invariants; and resource management


CSC 226 Discrete Mathematics for Computer Scientists 3 credit hours
Prerequisite: MA 101 or equivalent completed in high school 
Propositional logic and the predicate calculus. Logic gates and circuits. Methods of proof. Elementary set theory. Mathematical induction. Recursive definitions and algorithms. Solving recurrences. The analysis of algorithms and asymptotic growth of functions. Elementary combinatorics. Introduction to graph theory. Ordered sets, including posets and equivalence relations. Introduction to formal languages and automata.


CSC 230 C and Software Tools 3 credit hours
Prerequisite: CSC 216 with a C or better
Details of C programming as compared with Java; Lexical structure, syntax, semantics, and pragmatics (idioms, common uses) of C; Stages of compilation, linking and execution; Strings, arrays, structures, pointers, and memory management; C libraries;Tools for design, maintenance, and debugging of programs; Separate compilation, modular programming; Integrated development environments.


CSC 236 Computer Organization and Assembly Language for Computer Scientists 3 credit hours
Prerequisite: CSC 230 or ECE 209
Computer architecture topics required by professional software developers, including binary and hexadecimal numbers, hardware component organization, machine instruction sets, assembler language programming, linking assembler language with high-level languages, program testing, computer hardware design issues, computer software design issues, and trends in current computer design.


CSC 246 Concepts and Facilities of Operating Systems for Computer Scientists 3 credit hours
Prerequisite: CSC 230 or ECE 209; Corequisite of CSC 236 or ECE 109
Fundamental concepts of computer operating systems for computer scientists, including memory management, file systems, process management, distributed systems, deadlocks, and basic security and system accounting.


CSC 316 Data Structures for Computer Scientists 3 credit hours
Prerequisite: CSC 216 and CSC 226 with a grade of C or better and MA 121 or MA 131 or MA 141
Abstract data types; abstract and implementation-level views of data types. Linear and branching data structures, including stacks, queues, trees, heaps, hash tables, graphs, and others at the discretion of the instructor. Best, worst, and average case asymptotic time and space complexity as a means of formal analysis of iterative and recursive algorithms.

Additional Courses

CSC 333 is also available, but not required.

CSC 333 Automata, Grammars, and Computatility 3 credit hours
Prerequisite: Grade of C or better in CSC 226, CSC Majors or 2.75 GPA
Study of three classical formal models of computation–finite state machines, context-free grammars, and Turing machines–and the corresponding families of formal languages. Power and limitations of each model. Parsing. Non-determinism. The Halting Problem and undecidability. The classes P and NP, and NP-completeness.


Students who intend to pursue graduate study after completion of the Computer Programming Certificate need MA 141 rather than MA 121.

MA 141 Calculus I 4 credit hours
Prerequisite: MA 111 or MA 108 with a grade of C- or better, or 550 or better on the SAT Subject Test in Mathematics Level 2 or the NCSU Math Skills Test, or 2 or better on an AP Calculus exam. Credit is not allowed for both MA 141 and MA 121 or MA 131.
First of three semesters in a calculus sequence for science and engineering majors. Functions, graphs, limits, derivatives, rules of differentiation, definite integrals, fundamental theorem of calculus, applications of derivatives and integrals. Use of computation tools. Credit is not allowed for more than one of MA 141, 131, 121