"I saw 'cout' being shifted 'Hello World!' times to the left and stopped right there."
-- Steve Gonedes
I will teach you how to use modern (C++17), idiomatic C++ in this course, making heavy use of the standard libraries. We'll see that C != C++.
This is a CIS 19x class, which means the lectures will be during the recitation sections. The "lecture" on Tuesdays 6-7:30 will only meet for the first 3 weeks of the semester to cover Bash, Git, and web basics.


Please speak with the instructor if you don't meet these requirement or have any other questions.


Lecture # Date Lecture Homework
1 Jan 15 Introduction, basic C++ features
(Monday schedule!)
Homework 0 due on Jan 29, 6 PM
Jan 20 Martin Luther King Jr. Day—No class
2 Jan 27 Debugging, references, I/O
Homework 1 due on Feb 3, 6 PM
Jan 28 Course selection period ends
3 Feb 3 Classes, separate compilation, inheritance
Homework 2 due on Feb 10, 6 PM
4 Feb 10 Classes that hold resources
Homework 3 due on Feb 17, 6 PM
5 Feb 17 Exceptions, RAII, smart pointers
Homework 4 due on Mar 2, 6 PM
6 Feb 24 More on exceptions, sequential containers
No homework, previous homework extended to Mar 2
Feb 24 Drop period ends
7 Mar 2 Iterators, associative containers, static
Homework 5 due on Mar 23, 6 PM
Mar 7-15 Spring term break—No class
Mar 16 Class cancelled due to extended spring break
Mar 20 Grade type change deadline
8 Mar 23 Templates, function objects
Homework 6 due on Mar 31, 6 PM
9 Mar 30 More function objects, standard library algorithms
Project proposals due on Apr 6, 6 PM
project details
Mar 30 Last day to withdraw from a course
10 Apr 6 Standard library algorithms continued, functional programming
11 Apr 13 Concurrency Project checkpoint by Apr 20
12 Apr 20 More concurrency, history
13 Apr 27 Project presentations






We will be using Piazza for both Q&A and announcements. Please sign up by clicking here. Posting on Piazza is highly preferred over sending the instructor or TAs direct emails.

Other links