CME212
Schedule
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.
Week 0
- Lecture 0
- Notes: Pointers and references in C++; Class constructors; keyword const; Macros (and debugging). Interview Question
- Lecture 1
- Notes: Debugging, Proxy Design Patterns
- Interview Question
Week 1
- 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.
Week 2
- Lecture 4
- Notes: Lambdas, Iterators, functors.
- Interview Question.
- Interview Solution.
- Lecture 5
- Notes: Pointers and ownership, l/r-value references.
- Interview Question.
- Interview Solution.
Week 3
- 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.
Week 4
- Lecture 8
- Notes: Exception Handling
- Interview Question
- Interview Solution
- Lecture 9
- Notes: Graph remove_*; inline functions; typedefs; inheritance and polymorphism
- Interview Question
- Interview Solution
Week 5
- 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.
Week 6
- 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
Week 7
- 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.
Week 8
- 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
Week 9
- 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.