(If the links are dead, they are intended to simply point to files on Canvas.)
- Lecture 0 (2019-01-08)
- Lecture 1 (2019-01-10)
- Debugging in C++.
- Proxy design patterns.
- Development tools (Make) (and possibly doxygen).
- Exercise 0 due Tuesday January 15th at 4:30 P.M. P.S.T.
- Lecture 2 (2019-01-15)
- Lecture 3 (2019-01-17)
- Pre/post conditions, consistent/minimal specifications, templates.
- HW0 due Friday at 4:30 P.M. P.S.T.
- Lecture 4 (2019-01-22)
- Iterators, functors, layout of structs, (bit) fields, unions, examples of
operator overloading via
Array
class.
- Iterators, functors, layout of structs, (bit) fields, unions, examples of
operator overloading via
- Lecture 5 (2019-01-24)
- Abstraction functions and Representation Invariants;
- Software Testing
- EX1 due Friday at 4:30 P.M. P.S.T.
- Lecture 6 (2019-01-29)
- Free Store memory allocation, RAII, Allocators, List and Type Conversions.
- Exception Handling part 1 (exceptions as control flow, how to define exceptions)
- Lecture 7 (2019-01-31): Inheritance and Polymorphism
- HW1 due Friday at 4:30 P.M. P.S.T.
- Lecture 8 (2019-02-05)
- Exception Handling part 2 (enforcing invariants);
- construction, cleanup, and copy initialization.
- Lecture 9 (2019-02-07)
- Graph Remove_*; inline functions and typedefs.
- EX2 due Friday at 4:30 P.M. P.S.T.
- Lecture 10 (2019-02-12)
- Defining copy and move semantics, delegating constructors, entanglement, slicing.
- Template programming part 1 (two phase translation, function and class templates, template paramaters as return types, parameter deduction)
- Lecture 11 (2019-02-14)
- Floating point, Under/overflow, relative error, machine tolerance
- HW2 due Friday at 4:30 P.M. P.S.T.
- Lecture 12 (2019-02-19)
-
Template Programming part 2
(non-type template parameters, variadic template parameters, template template parameters);
-
Perfect forwarding,
enable_if
, Concepts and Metafunctions, compile-time programming.
-
- Lecture 13
- Loop invariants,
thrust::transform_iterator
, Cachegrind, optimization
- Loop invariants,
- EX3 due Friday at 4:30 P.M. P.S.T.
- Lecture 14
- Generic programming
- Lecture 15
- ???
- HW3 due Friday at 4:30 P.M. P.S.T.
- Lecture 16
- Metaprogramming
- Lecture 17
- Compiler Optimizations
- EX4 due Friday at 4:30 P.M. P.S.T.
- Lecture 18
- Regular Expressions
- Lecture 19
- Review
- HW4 due Friday at 4:30 P.M. P.S.T.