"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++20), 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 real lectures will be during the recitation sections. The "lecture" section will not be used. The common lectures are recorded and can be found on the CIS 19x webpage.

Prerequisites

The main point of these prerequisites are to ensure you know object oriented programming and C. Please speak with the instructor if you don't meet the prerequisites but already understand these concepts, or if you have any other questions.

Schedule

Lecture # Date Lecture Assignment
1 Sept 12 Introduction, review of C and debugging tools Assignment 0 due Sept 19 at 10pm
Sept 13 Course selection period ends
2 Sept 19 Introduction to C++, references No assignment
3 Sept 26 I/O using streams Assignment 1 due on Oct 2 at 10pm
4 Oct 3 Classes and OOP Assignment 2 due on Oct 11 at 10pm
5 Oct 10 Drop period ends
Classes that hold resources
Assignment 3 due on Oct 16
6 Oct 17 Exceptions, RAII, smart pointers Assignment 4 due on Oct 23
7 Oct 24 Small C++ topics and in-class review Midterm project (Nov 6)
8 Oct 31 Concurrency Midterm project (Nov 6)
9 Nov 7 Last day to withdraw from a course
Containers and iterators
Assignment 5 due on Nov 13
10 Nov 14 Templates and concepts Assignment 6 due on Nov 20
11 Nov 21 Functors, lambdas, and standard library algorithms Assignment 7 due on Nov 29 (Tues!)
Final project proposals due on Nov 28
12 Nov 28 Template metaprogramming and constexpr Final project checkpoint on Dec 5
13 Dec 5 Comparison with C, history, casting Final project due in class on Dec 12
14 Dec 12 Last class
Final project presentations

The following is subject to change:

Grading

Assignments

Final Project

Midterm Project

Attendance

Participation

Ed Discussion

We will be using Ed for both Q&A and announcements. You should be signed up already after the first class. Email Paul if you are not. Posting on Ed is highly preferred over sending the staff direct emails.

Other links