CIS-3012 (C++ Programming) Home Page

Table of Contents

This is the home page for Peter Chapin's C++ Programming course notes for the Fall 2023 semester. Here you will find electronic versions of class slides, homework assignments, program samples, and links to other references of interest. If you are a student taking C++ Programming, you should bookmark this page.

Lecture Topics

The list below gives topics covered in each lecture. You can use this information to guide your study or to get an idea about what was covered in any missed lectures.


  1. Introduction
  2. Initialization
  3. Type Conversion
  4. BigInteger
  5. LifeCycle Methods
  6. STL
  7. Smart Pointers
  8. Inheritance
  9. Splay Trees
  10. Exceptions
  11. Modules
  12. Threads


  1. Homework #1. Basic Concepts. Due: 2023-09-08.
  2. Homework #2. Class Time. Due: 2023-09-22.
  3. Homework #3. Class Matrix. Due: 2023-10-25.
  4. Homework #4. Checking Sorts. Due: 2023-11-03.
  5. Homework #5. Splay Trees. Due: 2023-12-01.
  6. Homework #6. Concurrency (EXTRA CREDIT!). Due: 2023-12-15.





See my Development Environments page for notes about various C/C++ development environments with notes about how to install, configure, and use them. The links below are specifically for C++ compilers.

Some examples later in this class will push the envelope of C++ by exercising features from the latest standards that are not yet well-supported by commonly available compilers. However, using Docker, we can install "containers" with the absolute latest versions of gcc and clang. Setting up Docker is itself somewhat complicated, but also a valuable skill. We may discuss the details of doing this later in the class.

Last Revised: 2023-12-05
Copyright 2023 by Peter Chapin <>