"I saw 'cout' being shifted 'Hello World!' times to the left and stopped right there." -- Anonymous
I will teach you how to use modern (C++17), idiomatic C++ in this course, making heavy use of the standard libraries.

Schedule

Lecture # Date Lecture Homework
1 Aug 29 Introduction, basic features, debugging
notes
None
2 Sept 5 References, I/O, basic classes
notes
HW1 due Sept 13
Sept 10 Course selection period ends
3 Sept 12 Separate compilation, more on classes, inheritance
notes
HW2 due Sept 19
4 Sept 19 Classes holding resources
notes
HW3 due Sept 26
5 Sept 26 Exceptions, smart pointers, RAII
notes
HW4 due Oct 7
6 Oct 3 Live coding session
files
None
Oct 7 Drop period ends
Oct 10-13 Fall term break—NO CLASS
7 Oct 17 Containers, iterators
notes
HW5 due Oct 26
8 Oct 24 More containers and iterators, templates
notes
HW6 due Oct 31
Oct 25 Grade type change deadline
9 Oct 31 More templates, template metaprogramming, function objects
notes
HW7 due Nov 8
Nov 4 Last day to withdraw from a course
Nov 7 Class cancelled Project proposals due Nov 14
10 Nov 14 Standard library algorithms, functional programming
notes
11 Nov 21 Concurrency
notes
12 Nov 26 More on concurrency, casting, design and history of C++
notes
Checkpoint meetings this week
13 Dec 5 Project presentations in class

Grading

Homework

Project

Link to project instructions

Prerequisites

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

Piazza

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