Active Outline

General Information


Course ID (CB01A and CB01B)
CISD022A
Course Title (CB02)
Beginning Programming Methodologies in C++
Course Credit Status
Credit - Degree Applicable
Effective Term
Fall 2023
Course Description
This course covers the fundamental constructs of programming and introduces the concept of object-oriented programming. Its primary objective is to teach problem-solving using the C++ programming language. Emphasis will be placed on structured procedural programming with an introduction to object-oriented programming. Designed primarily for computer science and related transfer majors.
Faculty Requirements
Course Family
Not Applicable

Course Justification


This course is a major preparation requirement in the discipline of computer science for at least one CSU or UC. This course belongs on the Systems Programming A.A. degree. This course teaches the fundamentals of programming in C++ and is the first course in a sequence that is compliant with the standards of the Association for Computing Machinery.

Foothill Equivalency


Does the course have a Foothill equivalent?
No
Foothill Course ID

Course Philosophy


Formerly Statement


Course Development Options


Basic Skill Status (CB08)
Course is not a basic skills course.
Grade Options
  • Letter Grade
  • Pass/No Pass
Repeat Limit
0

Transferability & Gen. Ed. Options


Transferability
Transferable to both UC and CSU
°®¶¹´«Ã½ GEArea(s)StatusDetails
2G4MDA and 4-yr GE Math AgApproved
C-IDArea(s)StatusDetails
COMPComputer ScienceApprovedC-ID COMP 122

Units and Hours


Summary

Minimum Credit Units
4.5
Maximum Credit Units
4.5

Weekly Student Hours

TypeIn ClassOut of Class
Lecture Hours4.08.0
Laboratory Hours1.50.0

Course Student Hours

Course Duration (Weeks)
12.0
Hours per unit divisor
36.0
Course In-Class (Contact) Hours
Lecture
48.0
Laboratory
18.0
Total
66.0
Course Out-of-Class Hours
Lecture
96.0
Laboratory
0.0
NA
0.0
Total
96.0

Prerequisite(s)


(Students may receive credit for either (CIS D022A and CIS D022B (or CIS D22BH)) or CIS D027.)

Corequisite(s)


Advisory(ies)


  • ESL D272. and ESL D273., or ESL D472. and ESL D473., or eligibility for EWRT D001A or EWRT D01AH or ESL D005.
  • Intermediate algebra or equivalent (or higher), or appropriate placement beyond intermediate algebra

Limitation(s) on Enrollment


Entrance Skill(s)


General Course Statement(s)


Methods of Instruction


Lecture and visual aids

Discussion of assigned reading

Discussion and problem solving performed in class

Quiz and examination review performed in class

Homework and extended projects

Collaborative learning and small group exercises

Collaborative projects

On-line tutorial

Class presentations

Assignments


  1. Reading: Required reading from the text
  2. Programs: 8-12 programming homework assignments pertaining to the topics listed in X as Lab Topics, including several of more than 200 lines and several which use 5 or more functions.

Methods of Evaluation


  1. Completion of programming assignments evaluated on use of structured design principles, documentation programming style, efficiency, and correctness of output.
  2. One or more examinations requiring some programming demonstrating ability to develop an algorithm and/or write code using specific programming constructs presented in the course. Code is evaluated on correctness.
  3. In-class lab problems, group collaborative problems, exam questions and/or online assignments or tutorials demonstrating the ability to read and analyze code through debugging and/or writing snippets of code.
  4. A final examination requiring some programming demonstrating ability to develop an algorithm and/or write code using specific programming constructs presented in the course. Code is evaluated on correctness.

Essential Student Materials/Essential College Facilities


Essential Student Materials
  • None.
Essential College Facilities
  • Access to a computer laboratory with C++ compilers available

Examples of Primary Texts and References


AuthorTitlePublisherDate/EditionISBN
Gaddis, TonyStandard Version of Starting Out With C++ from Control Structures through ObjectsPearson2022/10th EditionISBN-13: 9780134486451
Savitch, WalterProblem Solving With C++Pearson2018/10th EditionISBN-13: 9780134522425
Deitel, H.M. & Deitel, P.J.C++: How to Program (paper)Deitel & Associates, Inc.2017/10th ed.ISBN-13: 978013448237 ISBN-10: 0134448235
zyBooksCIS 22A: Beginning Programming Methodologies in C++Wiley2022Changes each term

Examples of Supporting Texts and References


AuthorTitlePublisher
Ellis, Margaret & Stroustrup, Bjarne, The Annotated C++ Reference Manual, Addison Wesley, 1990.

Learning Outcomes and Objectives


Course Objectives

  • Illustrate the difference between procedural and object oriented programming.
  • Demonstrate the software life-cycle steps including design, development, styles, documentation, testing, and maintenance in the creation of program.
  • Use the C++ environment in the development and testing of programs.
  • Illustrate declaring identifiers of different data types.
  • Use data types to declare variables in C++ programs.
  • Apply input and output functions to read data using keyboard and output to screen.
  • Use expressions, statements and operators to construct program building blocks that compute values.
  • Apply control structures to break up flow of program execution and conditionally execute blocks of code.
  • Apply the techniques of structured decomposition through implementation of functions/methods to separate C++ program into simple and interactive modules.
  • Develop programs using functions that enable input and output with text files.
  • Demonstrate usage of arrays to process variety of data problems.
  • Implement STL vectors

CSLOs

  • Design solution, create algorithms, code in C++, document, debug, and test program for an introductory level program using appropriate design methodology incorporating elementary C++ programming constructs.

  • Read, analyze and explain introductory level C++ programs.

Outline


  1. Illustrate the difference between procedural and object oriented programming.
    1. History of Programming Languages
      1. C++ compared to prior languages
      2. Compiled vs. interpreted languages
    2. Compare and contrast procedural versus object oriented programming languages.
    3. Principles of object-oriented analysis and design.
  2. Demonstrate the software life-cycle steps including design, development, styles, documentation, testing, and maintenance in the creation of program.
    1. Flowcharts
    2. Pseudocode
    3. Documentation
    4. Software Development Life Cycle
    5. Coding conventions
    6. Principles of testing and designing test data
  3. Use the C++ environment in the development and testing of programs.
    1. #include directive
    2. Parts of a C++ program
  4. Illustrate declaring identifiers of different data types.
    1. Constants
    2. Variables
    3. Class names
  5. Use data types to declare variables in C++ programs.
    1. Primitive types
      1. Integral
      2. Floating point
      3. Boolean
      4. void
    2. Classes
    3. Declaring variables
    4. Data representation in memory
    5. Scope of variables
    6. String class
  6. Apply input and output functions to read data using keyboard and output to screen.
    1. ‘cin’ object
    2. ‘cout’ object
  7. Use expressions, statements and operators to construct program building blocks that compute values.
    1. Arithmetic operators
    2. Mathematical library functions
  8. Apply control structures to break up flow of program execution and conditionally execute blocks of code.
    1. Relational operators
    2. Logical operators
    3. The 'if' statement
    4. Flags
    5. Expanding the 'if' with 'else' and 'else if'
    6. Comparing strings
    7. The 'switch' statement
    8. Loops
      1. while loop
      2. do while loop
      3. for loop
  9. Apply the techniques of structured decomposition through implementation of functions/methods to separate C++ program into simple and interactive modules.
    1. Passing arguments to parameters
    2. Pass by value
    3. Pass by reference
    4. Software engineering: modular programming
    5. Overload function names
  10. Develop programs using functions that enable input and output with text files.
    1. Output to a file
    2. Input from a file
  11. Demonstrate usage of arrays to process variety of data problems.
    1. One-dimensional arrays
      1. Accessing array elements
      2. Initialization
      3. Processing array contents
    2. Sequential search
    3. Selection sort
  12. Implement STL vectors
    1. Define and initialize vector
    2. Process contents of vector using vector member functions

Lab Topics


  1. Debug code and output results of execution.
  2. Write and/or debug code with input from keyboard and output to monitor.
  3. Write and/or debug code implementing arithmetic expressions.
  4. Write and/or debug code employing decision concepts and selections statements.
  5. Write and/or debug code employing repetition concepts: for, while and do while loop structures.
  6. Write and/or debug code implementing functions.
  7. Write and/or debug code implementing file I/O.
  8. Write and/or debug code implementing one-dimensional arrays.
Back to Top