Active Outline
General Information
- Course ID (CB01A and CB01B)
- CISD027.
- Course Title (CB02)
- Programming in C++ for C/Java Programmers
- Effective Term
- Fall 2023
- Course Description
- A comprehensive introduction to the C++ programming language and its applications.
- Course Family
- Not Applicable
Course Justification
This course is transferable to all CSUs and UCs. This course is designed for the student that has learned the programming constructs in Java or C and now desires to apply these in the programming language of C++. This course belongs on the Liberal Arts AA degree.
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
De Anza GE | Area(s) | Status | Details |
---|---|---|---|
2G4M | DA and 4-yr GE Math Ag | Approved |
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)
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.
CIS D026A or CIS D035A
Limitation(s) on Enrollment
(Students may receive credit for either (CIS D022A and CIS D022B (or CIS D22BH)) or CIS D027.)
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
Laboratory discussion sessions and quizzes that evaluate the proceedings weekly laboratory exercises
Assignments
- Reading from text
- 5 -7 programming homework assignments
Methods of Evaluation
- A midterm that includes one program to be written in C++ assessing ability to write code and the application of topics discussed in reading and lectures. Code evaluated on correctness.
- A comprehensive final exam that includes at least one program to be written in C++ assessing ability to write code and the application of topics discussed in reading and lectures. Code evaluated on correctness.
- Evaluation of assigned C++ programs for completeness, correctness, and employing the key concepts presented in class lectures and class problem solving.
Essential Student Materials/Essential College Facilities
Essential Student Materials:
- None.
- Computer having a C++ language compiler
Examples of Primary Texts and References
Author | Title | Publisher | Date/Edition | ISBN |
---|---|---|---|---|
Nagler, Eric. "Learning C++ - A Hands-on Approach." 3rd Edition, Brooks/Cole , 2003 | ||||
Lippman, Stanley B., "C++ Primer", 5th Edition, Addison-Wesley, 2013 (http://www.charleshouserjr.com/Cplus2.pdf) | ||||
Savitch, Walter. "Absolute C++", 6th Edition, Pearson, 2016 |
Examples of Supporting Texts and References
Author | Title | Publisher |
---|---|---|
None. |
Learning Outcomes and Objectives
Course Objectives
- Review C/Java language constructs.
- Create C++ language programs
- Implement structured programming techniques
- Evaluate object-oriented programming and C++
- Analyze C++ program design, standard style conventions, and documentation
CSLOs
- Create object oriented programs using the C++ language.
Outline
- Review C/Java language constructs.
- Fundamentals: changes and additions to C
- Data types and constants
- Identifiers and keywords
- Operators and operator precedence rules
- Type conversion
- Scoping rules
- Selection
- Loops
- Arrays
- Functions
- Pass by Value
- Pass by reference
- Structures
- Fundamentals: changes and additions to C
- Create C++ language programs
- Stream I/O
- Insertion and extraction operators
- ostream and istream classes
- Global instances
- Output formatting
- Input formatting
- String class and objects
- C++ class definition - fundamentals
- Data and function members
- Data encapsulation
- Declaration vs. definition
- Inline member functions
- Creating instances
- Direct access to members
- Indirect access to members
- Static data members
- Static function members
- Name qualifying
- Inline declarations
- Friend functions and classes
- Run-time memory allocation
- new and delete keywords
- Application: linked lists, arrays
- Function handling
- Prototyping
- const modifier
- Default arguments in functions
- Argument passing by value
- Argument passing by address
- Argument passing by reference
- Initializing instances
- Constructor functions
- Destructor function
- Base member initialization list
- Default contructor
- Copy constructor
- File input/output
- Overloading
- Functions
- Operators
- Type casting
- Derived classes
- Declaring
- Access methods
- Duplicate member names
- Constructors and destructors
- Overloading operator =
- Pointers to base and derived classes
- Virtual functions
- Polymorphism
- Abstract classes
- Object-oriented programming
- Multiple inheritance
- Stream I/O
- Implement structured programming techniques
- Top down design
- Program structure
- Preprocessor directives
- Robustness
- Readability
- Flexibility
- Top down design
- Evaluate object-oriented programming and C++
- Comparison to procedural programming
- Advantages
- Disadvantages
- Analyze C++ program design, standard style conventions, and documentation
- Combining structured and object oriented program designs
- C++ standards in documentation, naming convention, coding practices
Lab Topics
- Convert a C and/or Java programs with multiple functions, looping, selection, dynamic memory allocation, data structures, and file IO into an equivalent C++ program
- Perform standard input / output with the stream IO class; perform file input / output with the fstream class; format output data; format input data; read numeric data and strings; use the string class
- Use C++ features for a function: const modifier, default arguments, arguments that are pass by value vs. pass by address vs. pass by reference
- Define a class with member data and member functions; use data encapsulation; instantiate objects from a class
- Implement more features of a class: static member data, static member function, inline member function, name qualifying
- Make a class more robust: constructor, default constructor, copy constructor, base member initialization list, destructor
- Make a class easier to use: function overloading, operator overloading, type casting
- Relate base and derived classes: access functions from one class to the other, duplicate member names, constructors / destructors / operator= dependencies between the two classes, pointers to base and derived classes
- Implement inheritance features: virtual functions, polymorphism, abstract classes