Active Outline
General Information
- Course ID (CB01A and CB01B)
- CIS D029.
- Course Title (CB02)
- Advanced C++ Programming
- Course Credit Status
- Credit - Degree Applicable
- Effective Term
- Fall 2023
- Course Description
- This course examines advanced topics in C++ including namespace, string and stringstream classes, cast operators, multiple inheritance, exception handling, compilation concepts, libraries, templates, the Standard Template Library, and programming style.
- Faculty Requirements
- Course Family
- Not Applicable
Course Justification
This course is CSU and UC transferable. This course belongs on the Systems Programming AA Degree. The course builds on students' existing background in C++ to complete their knowledge of inheritance, C++ libraries, and templates.
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
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)
(CIS D022B or CIS D22BH) or CIS D027. or equivalent
Corequisite(s)
Advisory(ies)
Elementary algebra or equivalent (or higher), or appropriate placement beyond elementary algebra
Limitation(s) on Enrollment
Entrance Skill(s)
General Course Statement(s)
Methods of Instruction
Lecture and visual aids
Guest speakers
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
Other:Laboratory discussion sessions
Other:Laboratory experiences which involve students in designing, coding, and testing and debugging efficient advanced C++ programs.
Assignments
- Required reading from the textbook and supplemental sources.
- Programs: 5 - 9 individual programming assignments which include design as well as coding, debugging, and testing.
- Discuss, investigate and select a good style for the programming assignments.
- Outline and build the framework for the programming assignments.
- Conduct code reviews.
- Build classes.
Methods of Evaluation
- One to three midterms to include program writing that appraise comprehension and require synthesis and application of course material. Code is evaluated on correctness, effectiveness and readability.
- Final Examination requiring some programming demonstrating ability to develop an algorithm and write code. The code will involve using the Standard Template Library and/or demonstrate classes using multiple inheritance and/or apply operator overloading and/or create and use templates. Code is evaluated on correctness, effectiveness and readability.
- Evaluation of assigned C++ programs for completeness, correctness, and employing the key concepts presented in class lectures and class problem solving.
- 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. The code will involve using the Standard Template Library and/or demonstrate classes using multiple inheritance and/or apply operator overloading and/or create and use templates.
Essential Student Materials/Essential College Facilities
Essential Student Materials:Â
- None.
- Classroom and laboratory facilities with personal computers networked with LINUX and non-UNIX servers
- Required software includes C++ compilers
Examples of Primary Texts and References
Author | Title | Publisher | Date/Edition | ISBN |
---|---|---|---|---|
Stroustrup, Bjarne; Pearson Education, "A Tour of C++ (C++ In-Depth Series)", Second Edition, 2018. ISBN-10: 0134997832, ISBN-13: 978-0134997834 |
Examples of Supporting Texts and References
Author | Title | Publisher |
---|---|---|
Stroustrup, Bjarne; Pearson Education, "C++ Programming Language", Fourth Edition, 2013. ISBN-10: 0321563840, ISBN-13: 978-0321563842 |
Learning Outcomes and Objectives
Course Objectives
- Apply standard classes
- Apply operator overloading like new and delete
- Demonstrate classes using multiple inheritance
- Create exception handling procedures
- Create and use libraries in compilation
- Create and use templates
- Create programs using the Standard Template Library
- Create programs which use good programming style and object oriented design techniques.
CSLOs
- Read, analyze and explain advanced C++ programs.
- Design solutions, create algorithms, code, document, debug, and test C++ programs using appropriate design methodology and incorporating advanced C++ programming constructs.
Outline
- Apply standard classes
- string class
- stringstream classes
- type_info class
- Apply operator overloading like new and delete
- C++ cast operators
- I/O manipulators
- I/O operator overloading
- typeid
- Demonstrate classes using multiple inheritance
- Single inheritance
- Multiple inheritance
- Common ancestor
- Create exception handling procedures
- try
- throw
- catch
- Uncaught exceptions
- Exception specifications
- Standard exceptions
- Create and use libraries in compilation
- Standard libraries
- User built libraries
- Name spaces
- Create and use templates
- function templates
- class templates
- Create programs using the Standard Template Library
- Overview
- vector
- list
- deque
- stack
- queue
- priority_queue
- set
- map
- bitmap
- Algorithms
- Function objects
- auto_ptr
- Create programs which use good programming style and object oriented design techniques.
- General recommendations and guidelines
- Effective use of object oriented methodology
- Class design and implementation using UML diagrams.
- Method design and implementation
Lab Topics
- Design algorithms, code solution, debug and test program employing multiple inheritance.
- Design algorithms, code solution, debug and test program employing string and stringstream classes.
- Design algorithms, code solution, debug and test program employing C++ style casts.
- Design algorithms, code solution, debug and test program employing libraries and exception handling
- Design algorithms, code solution, debug and test program employing libraries and exception handling
- Design algorithms, code solution, debug and test program employing templates
- Design algorithms, code solution, debug and test program employing the Standard Template Library