All lectures notes are posted on Canvas; note that the legacy notes
folder here on Git contains some useful references that are linked to from within the lecture-notes posted on Canvas.
- Lecture 0
- Reference Notes (to be reviewed before class): Pointers and references in C++; Class constructors; keyword const; Macros (and debugging).
- Lecture Material.
- Interview Question.
- Lecture 1
- Reference Notes: Debugging, Proxy Design Patterns
- Lecture Material.
- Interview Question
- Exercise 0 due Tuesday at 4:30 P.M. P.S.T.
- Lecture 2
- Notes: Testing Software.
- Interview Question.
- Interview Solution.
- Lecture 3
- Notes: Make, Pre/post conditions, consistent/minimal specifications, Invariants, introduction to templates.
- Interview Question.
- Interview Solution.
- HW0 due Friday at 4:30 P.M. P.S.T.
- Lecture 4
- Notes: Lambdas, Iterators, functors.
- Interview Question.
- Interview Solution.
- Lecture 5
- Notes: Pointers and ownership, l/r-value references.
- Interview Question.
- Interview Solution.
- EX1 due Tuesday in class at 4:30 P.M. P.S.T.
- Lecture 6
- Notes: Revisiting Structs and their layouts, unions.
- Interview Question
- Interview Solution
- Lecture 7:
- Notes: Abstraction functions and representation invariants; RAII; Free-store memory allocations (with a footnote on allocators)
- Interview Question
- Interview Solution
- HW1 due Friday at 4:30 P.M. P.S.T.
- Lecture 8
- Notes: Exception Handling
- Interview Question
- Interview Solution
- Lecture 9
- Notes: Graph remove_*; inline functions; typedefs; inheritance and polymorphism
- Interview Question
- Interview Solution
- EX2 due Tuesday at 4:30 P.M. P.S.T.
- Lecture 10
- Notes: Construction, cleanup, and copy initialization
- Interview Question
- Interview Solution
- Lecture 11
- Notes: Defining copy and move semantics, delegating constructors, entanglement, slicing
- Interview Question
- Interview Solution
- HW2 due Friday at 4:30 P.M. P.S.T.
- Lecture 12
- Notes: Template Programming part (i); std::find_if, and std::any_of
- Interview Question
- Interview Solution
- Lecture 13
- Notes: Template Programming part (ii); use of specializations in MTL
- Interview Question
- Interview Solution
- EX3 due Tuesday at 4:30 P.M. P.S.T.
- Lecture 14
- Notes: Perfect forwarding, enable_if; concepts and metafunctions; compile time programming
- Interview Question
- Interview Solution
- Lecture 15
- Notes: Cachegrind, optimization, compiler optimizations
- Interview Question
- Interview Solution
- HW3 due Friday at 4:30 P.M. P.S.T.
- Lecture 16
- Notes: Floating point, Under/overflow, relative error, machine tolerance; bit-shifting
- Interview Question
- Interview Solution
- Lecture 17
- Notes: Generic programming conclusion: algorithms and lifting
- Interview Question
- Interview Solution
- EX4 due Tuesday at 4:30 P.M. P.S.T.
- Lecture 18
- Notes: Regular Expressions
- Lecture 19
- Cancelled
- HW4 due Friday at 4:30 P.M. P.S.T.