CST 180 - C++ Programming
Uses the C++ language to solve software problems. Develops solutions to computing problems through algorithm design, development, implementation, and testing. Includes control structures, arrays, files, strings, pointers, and fundamental object-oriented programming. Credit may be earned in CST 180 or CST 181 but not both.
Prerequisite(s): CST 173 or CST 177 or permission of instructor
Lecture Hours: 45 Lab Hours: 0
Meets MTA Requirement: Natural Science
Outcomes and Objectives 1. Design software solutions for a variety of problems.
A. Create a logic plan to map design of a software solution.
B. Read and interpret algorithms represented in pseudocode or flowchart form.
C. Interpret requirements and specifications for a software problem to initiate accruate design of a computer program.
D. Construct program code to implement program design specifications.
2. Demonstrate computer literacy skills to successfully use software development environments.
A. Utilize an integrated development environment to create a project workspace.
B. Enter and edit C++ source code using a text editor.
C. Manage multiple project, data, and source code files.
D. Use a compiler to check program diagnostics and correct syntax errors.
E. Implement a software application on more than one operating system.
3. Apply basic structuring concepts of C++ to build working programs.
A. Describe the basic program format and structure of a C++ program.
B. Describe and accurately apply rules for variable and identifier naming in C++.
C. Define and apply C++ primitive data types including the integer and floating point data type families.
D. Describe results and potential side effects for using mixed data type operations.
E. Effectively use and distinguish between variables and constants.
F. Define the uses and value of global constants.
G. Recognize usage of preprocessor directives and header files for required functionality.
H. Implement user-friendly console input and output with C++ programs.
I. Format program output using appropriate console formatting manipulators.
J. Describe C++ arithmetic operators including operator precedence and associativity.
K. Distinguish between operands and unary, binary, and tertiary operators.
L. Apply C++ arithmetic operators to build and evaluate arithmetic expressions.
M. Define issues with integer and floating-point division.
N. Convert basic mathematical formulas to C++ arithmetic expressions.
O. Utilize standard C++ function library including math and string functions.
P. Define and utilize the C++ Boolean data type for logical operations.
Q. Describe C++ relational operators and use them to construct relational expressions.
R. Describe C++ logical operators (AND, OR, NOT) including their truth tables.
S. Apply C++ logical operators to construct compound logical expressions.
T. Build selection statements with appropriate C++ if/else/switch constructs.
U. Define the most appropriate use of while, do/while, and for loops.
V. Build repetition statements with C++ to construct iterative algorithms.
W. Define and apply the basic random number generation feature available in C++.
4. Design modular programming solutions.
A. Implement programming problem sub-tasks into user-defined functions.
B. Describe rules for C++ function implementation including the use of prototypes.
C. Distinguish between void and value-return functions and correctly design functions using both.
D. Distinguish between value and reference parameters and define the uses and restrictions of using both.
E. Effectively pass value and reference parameters to and from functions.
F. Distinguish between global and local variables and define variable scope.
G. Define the value and purpose of separation of user-defined function specifications and implementations into multi-file projects.
H. Implement functions using separate specification (.h) and implementation (.cpp) files.
5. Use data organization techniques.
A. Allocate arrays and properly define index ranges for array processing.
B. Describe the risks and precaurtions necessary for safe array processing.
C. Process data elements of an array using looping algorithms.
D. Describe use of arrays for basic list processing algorithms.
E. Describe fundamental searching algorithms including the linear search and binary search.
F. Describe and apply fundamental sorting algorithms.
G. Desing and implement algorithms to process two-dimensional arrays using nested for-loops.
6. Build software solutions that apply input/output features.
A. Open, read, process, and close a sequential text input file stream.
B. Utilize loops to read and process the contents of a text file.
C. Write program output to a text output file.
D. Compare and contrast text files with binary files.
E. Compare and contrast sequential access files with direct access files.
F. Allocate pointer variables and access data using indirection.
G. Perform basic pointer operations including assignment, address-of, and dereferencing.
H. Pass pointers to and from functions.
I. Apply C++ pointers for dynamic data allocation with appropriate use of keywords “new” and “delete.”
J. Desing and implement solutions using record structures.
K. Correctly utilize a record structure including use of member selections of record fields.
L. Pass record structures to and from functions.
M. Allocate C++ character strings and manipulate strings using string character array processing.
N. Utilize standard C++ string functions to assign, compare, and concatenate strings.
O. Apply string functions and methods to solve character string manipulation problems.
7. Build software solutions that apply fundamental object-oriented programming concepts.
A. Define and discuss the object-oriented approach to programming.
B. Recognize specific terminology related to object-oriented programming.
C. Compare and contrast between procedural and object-oriented programming paradigms.
D. Define modularity and procedural abstraction.
E. Describe the purpose of information hiding.
F. Identify limitations of global variables.
G. List advantages of encapsulation as related to object oriented programming.
H. Discuss relationship of objects and classes.
I. Design an abstract data type from specifications.
J. Build a C++ class as an implementation of an abstract data type.
K. Implement a C++ class including both specification and implementation files.
L. Effectively apply a C++ class as data object for a specific problem.
8. Perform critical analysis to create C++ software solutions.
A. Analyze alternative solutions to a given programming problem and select the best approach.
B. Develop and implement a variety of testing strategies to verify correctness of C++ programs.
C. Diagnose and debug syntax, run-time, linker, and logic errors to create a working and correct software solution.
D. Document program source code for clarity and readability using accepted documentation standards including comments, indentation, and
E. Integrate and re-use previously working program code into new software development.
F. Develop systematic test plans, create test cases and test data to verify program correctness.
G. Execute tests and correct logic errors based on test results.
H. Build user-friendly computer programs for a variety of real-world problems.
Add to Portfolio (opens a new window)