Skip to main content

Computer Programming Certificate Courses

Completing the Computer Programming Certificate requires just 22-23 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 121Elements of Calculus3 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 116Introduction to Computing – Java3 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 216Software Development Fundamentals3 credit hours
Prerequisite: CSC 116 with a grade of C or better, Corequisite: CSC 217
The second course in computing, intended for majors and minors. Emphasis is on exploring encapsulation; polymorphism; composition; inheritance; finite state machines; linear data structures [including array lists, linked lists, stacks, queues, and the tradeoffs in implementation]; and recursion [including recursive linked lists] in the context of the software development lifecycle including the processes and practices for designing, implementing, and testing high quality software.
CSC 217Software Development Fundamentals Lab1 credit hour
Prerequisite: CSC 116 with a grade of C or better, Corequisite: CSC 216
Laboratory course to accompany CSC 216 lecture course. Application of the software processes and practices to design, implement, and test the development of software solutions requiring composition; inheritance; finite state machines; and linear data structures, including recursive linked lists.
CSC 226Discrete Mathematics for Computer Scientists3 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 230C and Software Tools3 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 246Concepts and Facilities of Operating Systems for Computer Scientists3 credit hours
Prerequisite: CSC 230 or ECE 209
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 316Data Structures for Computer Scientists3 credit hours
Prerequisite: CSC 216 and [CSC 226 or MA 225] 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 236 and CSC 333 may also be available, but not required.

CSC 236Computer Organization and Assembly Language for Computer Scientists3 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 333Automata, Grammars, and Computatility3 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 141Calculus I4 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