CSC140 - C++ Programming
4 Credit hours - 2 Lecture, 4 Lab
Prerequisite(s): Grade of “C” or better in CIS120 or MTH130 (College Algebra)
Course Rationale:
C++ is a standard programming language used in engineering and science. This course provides the student with the necessary problem solving skills; introductory program design skill; and programming skills required for scientific and engineering computing.
Catalog Description:
This course is an introduction to scientific and engineering computer programming using C++. Topics included are control structures, data types, functions, classes, pointers and software development tools.
Course Objectives
Upon successful completion of this course, the student should be able to:
Identify, explain and apply the basic features and syntax of the C++ programming language used to write scientific and engineering software. All course assignments and exams are closely aligned to, and assess the student's mastery of these core objectives.
Enter, edit, document, save, compile, execute, debug and print C++ programs using modern development tools.
Identify and explain certain problem solving techniques for scientific and engineering program design.
Apply techniques from above to analyze a task/problem statement to create a program design.
Using a program design, write structured computer programs using sequence, decision and repetition control structures.
Create and manipulate data files using streams, arrays and data structures.
Identify, explain, and apply Internet resources, manuals, textbooks and other reference materials.
Identify and explain the concepts and terminology of object oriented programming.
All course assignments and exams are closely aligned to, and assess the student's mastery of these core objectives.
Core Outcomes
Upon successful completion of this course, the student should be able to:
1. Understand the fundamentals of the C++ programming language
a. Identify characteristics that are inherited from the C language
b. Implementation of programming practices expected in code structure, documentation and memory management
c. Implementing and Understanding the C++ Programming Language library documentation
2. Demonstrate the use of variables and expressions
a. Declare and use primitive data type variables - data types, including char, int, double, float, boolean;
b. Construct and evaluate code that manipulates strings – identify string literals, comparisons, concatenation, case and length; Use of C string (char strings) vs C++ string class
c. Utilize effectively and understand the importance of the scope of variables and where they exist in memory.
d. Manipulation of pointers to store memory addresses
e. Construct and evaluate arithmetic expressions - arithmetic operators, assignment, compound assignment operators, operator precedence
f. Understanding the difference between variables, data structures stored by value or by reference to memory address
3. Implement flow control in code
a. Construct and evaluate code that uses branching statements - if, else, else if, switch; single-line versus block; nesting; logical and relational operators
b. Construct and evaluate code that uses loops - while, for, do while; break and continue; nesting; logical, relational, and unary operators
c. Instantiate and use a class object in a program - instantiation; initialization; null; accessing and modifying data members; accessing methods; accessing and modifying static members; importing packages and classes
4. Utilizing data structures
a. Construct data structures arrays, vectors and structs
b. Create code that iterates, and manipulates the data structures - including initialization, null, size, iterating elements, accessing elements; including adding and removing elements, traversing the list
5. Perform input and output operations
a. Construct and analyze code segments that perform file input and output operations - open; close; read; write; append; check existence; delete;
b. Construct and analyze code segments that perform console input and output operations - read input from console; print formatted text
6. Implement and Perform Object-Oriented Programming
a. Construct and evaluate a class definition - constructors; constructor overloading; inheritance and overriding at a basic level
b. Declare, implement, and access data members in a class - private, public, protected; instance data members; static data members; using static final to create constants; describe encapsulation
c. Declare, implement, and access methods - private, public, protected; method parameters; return type; void; return value; instance methods; static methods; overloading
d. Instantiate and use a class object in a program - instantiation; initialization; null; accessing and modifying data members; accessing methods; accessing and modifying static members;
e. Implementation of namespace, and header files
7. Demonstrate proper steps of debugging and troubleshooting code
a. Troubleshoot syntax errors, logic errors, and runtime errors - print statement debugging; analyzing code for logic errors; console exceptions after running the program; evaluating a stack trace
b. Utilize IDE debugger tools to walk through code analysis. Use of breakpoints, step into, step out, watch, immediate window and continue commands to troubleshoot program flow
Test Out Requirements
Students who wish to demonstrate proficiency in this course will need to complete a Departmental proficiency exam. Departmental proficiency examinations are created by appropriate college faculty to allow students to demonstrate their mastery of course content in designated subjects. These examinations will be equivalent to the cumulative final assessment used in the course. Faculty will determine the minimum score required to earn credit by exam for these courses.
The college’s test out policy is outlined in policy 2.12 - Credit by Exam (Test Out)
Last updated