For Winter quarter 2020, the registrar has the CME 212 final exam scheduled to take place from 7 P.M. to 10 P.M. on Monday March 16th. We will plan to make the exam accessible on Canvas on Friday March 13th at 7 P.M., giving you a 72 hour window in which you can start the exam. However, the exam itself is timed, and once you open it you will have three hours to complete it. The final exam must be completed on your own. You may not collaborate on the exam or discuss the exam with any Stanford affiliate or anyone outside the institution. The only resources you may access during the exam are the full set of course notes, and in addition reference documentation such as cppreference.com; you are not allowed to use online search engines to query for information, nor are you allowed to use sites such as StackOverflow.
If the there isn't a link for a lecture, you can find the lecture notes on Canvas.
- Lecture 0
- Object size, alignment, declarations, scope, narrowing, lifetime of an object.
- Pointers, arrays, pointer arithmetic, and
const
.
- Lecture 1
- Exercise 0 due Tuesday at 4:30 P.M. P.S.T.
- Lecture 2
- Pointers and ownership, references, l/rvalue references, and examples with templates.
- Lambda expressions and function objects.
- Lecture 3
- Pre/post conditions, consistent/minimal specifications, templates.
- Development tools (Make and possibly doxygen).
- HW0 due Friday at 4:30 P.M. P.S.T.
- Lecture 4
- Iterators, Function adaptors
- Layout of structs, unions, examples of
operator overloading via
Array
class.
- Lecture 5
- EX1 due Tuesday in class at 4:30 P.M. P.S.T.
- Lecture 6
- Free Store memory allocation, RAII, Allocators.
- Exception Handling part 1 (exceptions as control flow, how to define exceptions).
- Lecture 7: Inheritance and Polymorphism
- HW1 due Friday at 4:30 P.M. P.S.T.
- Lecture 8
- Exception Handling part 2 (enforcing invariants);
- construction, cleanup, and copy initialization.
- Lecture 9
- Graph Remove_*; inline functions and typedefs.
- EX2 due Tuesday at 4:30 P.M. P.S.T.
- Lecture 10
- Defining copy and move semantics, delegating constructors, entanglement, slicing.
- Lecture 11
- HW2 due Friday at 4:30 P.M. P.S.T.
- Lecture 12
- Template programming part 1 (two phase translation, function and class templates, template paramaters as return types, parameter deduction)
- Lecture 13
- EX3 due Tuesday at 4:30 P.M. P.S.T.
- Lecture 14
- Template Programming part 2 (non-type template parameters, variadic template parameters, template template parameters).
- Lecture 15
- HW3 due Friday at 4:30 P.M. P.S.T.
- Lecture 16
- Perfect forwarding, Metafunctions, compile-time programming.
- Lecture 17 Cancelled
- EX4 due Tuesday 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.