Academic Catalogs

CS A150: C++ Programming Language 1

Course Outline of Record
Item Value
Curriculum Committee Approval Date 03/12/2025
Top Code 070710 - Computer Programming
Units 4 Total Units 
Hours 90 Total Hours (Lecture Hours 63; Lab Hours 27)
Total Outside of Class Hours 0
Course Credit Status Credit: Degree Applicable (D)
Material Fee Yes
Basic Skills Not Basic Skills (N)
Repeatable No
Open Entry/Open Exit No
Grading Policy Standard Letter (S), 
  • Pass/No Pass (B)

Course Description

First course in ANSI/ISO Standard C++ programming language. Topics include data types, strings, operators, expressions, control flow, input/output, functions, pointers, arrays, preprocessor, streams, enumerated data type, dynamic memory allocation, objects, classes, vectors, inheritance, object-oriented design and recursion. PREREQUISITE: CS A100 or CS A122 or CS A131 or CS A170. Transfer Credit: CSU; UC.

Course Level Student Learning Outcome(s)

  1. Use C++ to solve problems that incorporate the use of correct data types, arrays, loops, branching, and operators.
  2. Use C++ to solve problems that use classes and functions.

Course Objectives

  • 1. Apply structured programming techniques to solve various problems using the C++ language.
  • 2. Apply the correct data type to solve various problems.
  • 3. Apply various forms of arrays, vectors and enumerated data type to solve problems.
  • 4. Apply recursion and iteration to solve various problems.
  • 5. Produce programs that use the concept of dynamic memory allocation.
  • 6. Produce programs using various forms of loops and branching statements.
  • 7. Produce programs that use various operators that exist in the C++ language.
  • 8. Produce programs which show student?s understanding of how data is passed between various modules without resorting to global variables.
  • 9. Produce programs which use sequential access file I/O concepts.
  • 10. Apply object-oriented methodology to solve problems.
  • 11. Apply inheritance and polymorphism to solve a variety of problems.

Lecture Content

Introduction to C++ Writing and compiling a simple C++ program Fundamental data types Numeric types integer and floating-point Variables, assignment, arithmetic operators, input, output and comments Cast operator Combining assignment and arithmetic operators Const variables, enumerated data type Using functions String variables, string member functions Formatted output Using objects Use simple classes defined by the author to learn how to work with objects Constructors, calling member functions using the dot operator Use simple graphics classes defined by the author to draw simple shapes Basic control flow If statement, selector operator, relational operators Comparison of floating-point values Input validation While loop Correctness proofs Functions Function definition and function comments Function prototype Passing arguments by value and by reference Const reference parameters Assertion Classes Class definition, function implementation Constructors, mutator functions and accessor functions Constructors with field initializer list Member and non-member functions Separate compilation Advanced control flow Multiple alternatives and nested if statements Switch statement Boolean operators For-loop and do-while loop Nested loops Processing text input Redirection and pipes Simulations and approximations Testing and debugging Designing test harnesses for testing components of your program Debugger Vectors and arrays

  • Using vectors to solve problems Passing and returning vectors to and from functions Using arrays to solve problems Two-dimensional arrays Pointers Dynamic memory allocation using the new operators Pointer variable definition, dereferencing operator and address-of operator The pointer Deallocating memory using the delete operator Inheritance Defining derived classes Derived class constructor calling base class constructor Protected access Polymorphism Virtual functions Streams Reading and writing text files String streams Processing command-line arguments Sequential vs random access Object-oriented design Software life cycle Concepts of cohesion and coupling CRC card method UML class diagrams Recursion Relationship between recursion and iteration How to think recursively Recursive helper functions

    Lab Content

    Programming labs and exercises should include: Design, code and run a C++ input, processing and output program. Demonstrate the use of different data types and C++ operators to produce functions with parameters and return values. Write functions which use simple and sequential selection and logical operators. Write functions using the string member functions to find and manipulate substrings. Write functions which use range loops, counter-controlled loops and references to process strings and substrings. Create a function library using conditional compilation and make files and which demonstrates the use of limit loops to solve mathematical problems. Solve programming problems by writing recursive functions. Write functions that use the standard C++ stream classes to write filter programs, programs which open and process text files, and which format and parse text. Write functions which throw, try, and catch different kinds of exceptions and which make use of assertions. Write simple function templates to solve problems with different data types. Define and create struct

    Method(s) of Instruction

    • Lecture (02)
    • DE Online Lecture (02X)
    • Lab (04)
    • DE Online Lab (04X)

    Instructional Techniques

    Lecture/discussion

    Reading Assignments

    Students will spend a minimum of 6 hours per week completing weekly programming assignments.

    Writing Assignments

    Students will spend a minimum of 6 hours per week writing code.

    Out-of-class Assignments

    Students will spend a minimum of 6 hours per week writing code.

    Demonstration of Critical Thinking

    Laboratory exercises.

    Required Writing, Problem Solving, Skills Demonstration

    Written examination

    Eligible Disciplines

    Computer science: Master's degree in computer science or computer engineering OR bachelor's degree in either of the above AND master's degree in mathematics, cybernetics, business administration, accounting or engineering OR bachelor's degree in engineering AND master's degree in cybernetics, engineering mathematics, or business administration OR bachelor's degree in mathematics AND master's degree in cybernetics, engineering mathematics, or business administration OR bachelor's degree in any of the above AND a master's degree in information science, computer information systems, or information systems OR the equivalent. Note: Courses in the use of computer programs for application to a particular discipline may be classified, for the minimum qualification purposes, under the discipline of the application. Master's degree required.

    Textbooks Resources

    1. Required Horstmann, C.. Big C++, Latest ed. New Jersey: Wiley, 2020 2. Required Dale, N., Weems, C., & Richards, T.. Programming and Problem Solving with C++, 7th ed. Jones & Bartlett, 2023