"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.

Prerequisites

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

Schedule

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

Grading

Homework

Project

Participation

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