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
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
°®¶¹´«Ã½ GE | Area(s) | Status | Details |
---|---|---|---|
2G4M | DA and 4-yr GE Math Ag | Approved |
C-ID | Area(s) | Status | Details |
---|---|---|---|
COMP | Computer Science | Approved | C-ID COMP 122 |
Units and Hours
Summary
- Minimum Credit Units
- 4.5
- Maximum Credit Units
- 4.5
Weekly Student Hours
Type | In Class | Out of Class |
---|---|---|
Lecture Hours | 4.0 | 8.0 |
Laboratory Hours | 1.5 | 0.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
- Reading: Required reading from the text
- 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
- Completion of programming assignments evaluated on use of structured design principles, documentation programming style, efficiency, and correctness of output.
- 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.
- 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.
- 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.
- Access to a computer laboratory with C++ compilers available
Examples of Primary Texts and References
Author | Title | Publisher | Date/Edition | ISBN |
---|---|---|---|---|
Gaddis, Tony | Standard Version of Starting Out With C++ from Control Structures through Objects | Pearson | 2022/10th Edition | ISBN-13: 9780134486451 |
Savitch, Walter | Problem Solving With C++ | Pearson | 2018/10th Edition | ISBN-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 |
zyBooks | CIS 22A: Beginning Programming Methodologies in C++ | Wiley | 2022 | Changes each term |
Examples of Supporting Texts and References
Author | Title | Publisher |
---|---|---|
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
- Illustrate the difference between procedural and object oriented programming.
- History of Programming Languages
- C++ compared to prior languages
- Compiled vs. interpreted languages
- Compare and contrast procedural versus object oriented programming languages.
- Principles of object-oriented analysis and design.
- History of Programming Languages
- Demonstrate the software life-cycle steps including design, development, styles, documentation, testing, and maintenance in the creation of program.
- Flowcharts
- Pseudocode
- Documentation
- Software Development Life Cycle
- Coding conventions
- Principles of testing and designing test data
- Use the C++ environment in the development and testing of programs.
- #include directive
- Parts of a C++ program
- Illustrate declaring identifiers of different data types.
- Constants
- Variables
- Class names
- Use data types to declare variables in C++ programs.
- Primitive types
- Integral
- Floating point
- Boolean
- void
- Classes
- Declaring variables
- Data representation in memory
- Scope of variables
- String class
- Primitive types
- Apply input and output functions to read data using keyboard and output to screen.
- ‘cin’ object
- ‘cout’ object
- Use expressions, statements and operators to construct program building blocks that compute values.
- Arithmetic operators
- Mathematical library functions
- Apply control structures to break up flow of program execution and conditionally execute blocks of code.
- Relational operators
- Logical operators
- The 'if' statement
- Flags
- Expanding the 'if' with 'else' and 'else if'
- Comparing strings
- The 'switch' statement
- Loops
- while loop
- do while loop
- for loop
- Apply the techniques of structured decomposition through implementation of functions/methods to separate C++ program into simple and interactive modules.
- Passing arguments to parameters
- Pass by value
- Pass by reference
- Software engineering: modular programming
- Overload function names
- Develop programs using functions that enable input and output with text files.
- Output to a file
- Input from a file
- Demonstrate usage of arrays to process variety of data problems.
- One-dimensional arrays
- Accessing array elements
- Initialization
- Processing array contents
- Sequential search
- Selection sort
- One-dimensional arrays
- Implement STL vectors
- Define and initialize vector
- Process contents of vector using vector member functions
Lab Topics
- Debug code and output results of execution.
- Write and/or debug code with input from keyboard and output to monitor.
- Write and/or debug code implementing arithmetic expressions.
- Write and/or debug code employing decision concepts and selections statements.
- Write and/or debug code employing repetition concepts: for, while and do while loop structures.
- Write and/or debug code implementing functions.
- Write and/or debug code implementing file I/O.
- Write and/or debug code implementing one-dimensional arrays.