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

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

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)


(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


  1. Required reading from the textbook and supplemental sources.
  2. Programs: 5 - 9 individual programming assignments which include design as well as coding, debugging, and testing.
    1. Discuss, investigate and select a good style for the programming assignments.
    2. Outline and build the framework for the programming assignments.
    3. Conduct code reviews.
    4. Build classes.

Methods of Evaluation


  1. 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.
  2. 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.
  3. Evaluation of assigned C++ programs for completeness, correctness, and employing the key concepts presented in class lectures and class problem solving.
  4. 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.
Essential College Facilities:
  • 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


AuthorTitlePublisherDate/EditionISBN
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


AuthorTitlePublisher
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


  1. Apply standard classes
    1. string class
    2. stringstream classes
    3. type_info class
  2. Apply operator overloading like new and delete
    1. C++ cast operators
    2. I/O manipulators
    3. I/O operator overloading
    4. typeid
  3. Demonstrate classes using multiple inheritance
    1. Single inheritance
    2. Multiple inheritance
    3. Common ancestor
  4. Create exception handling procedures
    1. try
    2. throw
    3. catch
    4. Uncaught exceptions
    5. Exception specifications
    6. Standard exceptions
  5. Create and use libraries in compilation
    1. Standard libraries
    2. User built libraries
    3. Name spaces
  6. Create and use templates
    1. function templates
    2. class templates
  7. Create programs using the Standard Template Library
    1. Overview
    2. vector
    3. list
    4. deque
    5. stack
    6. queue
    7. priority_queue
    8. set
    9. map
    10. bitmap
    11. Algorithms
    12. Function objects
    13. auto_ptr
  8. Create programs which use good programming style and object oriented design techniques.
    1. General recommendations and guidelines
    2. Effective use of object oriented methodology
    3. Class design and implementation using UML diagrams.
    4. Method design and implementation

Lab Topics


  1. Design algorithms, code solution, debug and test program employing multiple inheritance.
  2. Design algorithms, code solution, debug and test program employing string and stringstream classes.
  3. Design algorithms, code solution, debug and test program employing C++ style casts.
  4. Design algorithms, code solution, debug and test program employing libraries and exception handling
  5. Design algorithms, code solution, debug and test program employing libraries and exception handling
  6. Design algorithms, code solution, debug and test program employing templates
  7. Design algorithms, code solution, debug and test program employing the Standard Template Library
Back to Top