Course Material
The following are electronic versions of the CS *251 course material.
- Syllabus
- Lecture Handouts and Screencasts
All the lecture videos for this course are available here.
- July 12th
- Course Overview and Logistics (PDF|MP4)
- Website Walkthrough (MP4)
- Overview of Key Components in C++ (PDF|MP4)
- Overview of Learning Strategies for C++ (PDF|MP4)
- Overview of C++: Design Goals (PDF|MP4)
- C++ Design Goal Conflicts (PDF|MP4)
- Walkthrough of Assignment 1 (MP4)
- July 13th
- Overview of C++: Brief History (PDF|MP4)
- Summary of Key C++ Capabilities (PDF|MP4)
- Evolution of Programming Abstraction Mechanisms: C-style Stack Implementations Part 1 (PDF|MP4)
- Evolution of Programming Abstraction Mechanisms: C-style Stack Implementations Part 2 (PDF|MP4)
- Evolution of Programming Abstraction Mechanisms: C-style Stack Implementations Part 3 (PDF|MP4)
- Evolution of Programming Abstraction Mechanisms: C++ Data Abstraction Part 1 (PDF|MP4)
- July 14th
- Analyzing the Importance of the C++ Base-Member Initialization Section (MP4)
- Evolution of Programming Abstraction Mechanisms: C++ Data Abstraction Part 2 (PDF|MP4)
- Tutorial on Using Git for CS 251 Assignments (MP4)
- July 15th
- Evolution of Programming Abstraction Mechanisms: C++ Data Abstraction Part 3 (PDF|MP4)
- Evolution of Programming Abstraction Mechanisms: C++ Generic Programming Part 1 (PDF|MP4)
- Evolution of Programming Abstraction Mechanisms: C++ Generic Programming Part 2 (MP4)
- Evolution of Programming Abstraction Mechanisms: C++ Generic Programming Part 3 (MP4)
- Evolution of Programming Abstraction Mechanisms: C++ Generic Programming Part 4 (MP4)
- Evolution of Programming Abstraction Mechanisms: C++ Generic Programming Part 5 (MP4)
- Evolution of Programming Abstraction Mechanisms: C++ Generic Programming Part 6 (MP4)
- July 18th
- Walkthrough of Assignment 1 Frequently Made Mistake (MP4)
- Walkthrough of Assignment 2 (MP4)
- Evolution of Programming Abstraction Mechanisms: C++ Exception Handling (PDF|MP4)
- Evolution of Programming Abstraction Mechanisms: C++ Object-Oriented Programming (PDF|MP4)
- July 19th
- Implementing and Applying a Thread-safe C++ Generic Decorator (MP4)
- Overview of the C++ Standard Template Library (STL) (PDF|MP4)
- C++ Function Templates (PDF|MP4)
- July 20th
- Tips on Overloading C++ operator[] for Const and Non-const Objects (MP4)
- C++ Class Templates part 1 (PDF|MP4)
- C++ Class Templates part 2 (MP4)
- C++ Class Templates part 3 (MP4)
- July 21st
- C++ Function/Class Templates part 4 (MP4)
- C++ Function/Class Templates part 5 (MP4)
- C++ Function/Class Templates part 6 (MP4)
- Overview of C++ STL Containers (PDF|MP4)
- Overview and Examples of the C++ STL vector Sequential Container (|MP4)
- July 22nd
- Walkthrough of Assignment 2 Frequently Made Mistake (MP4)
- Walkthrough of Assignment 3 (MP4)
- Overview and Examples of the C++ STL deque Sequential Container (|MP4)
- Overview and Examples of the C++ STL list Sequential Container (|MP4)
- Overview and Examples of the C++ string Class (MP4)
- Overview and Examples of the C++ bitset and valarray Classes (MP4)
- Implementing an STL Sequential Container Wrapper with C++ Variadic Templates (MP4)
- July 25th
- Overview of C++ STL Iterators (PDF|MP4)
- Examples of STL Iterators (MP4)
- STL Input Iterators (PDF|MP4)
- STL Output Iterators (PDF|MP4)
- STL Forward Iterators (PDF|MP4)
- July 26th
- STL Bidirectional Iterators (PDF|MP4)
- STL Random-Access Iterators (PDF|MP4)
- Overview of STL Associative Containers (PDF|MP4)
- STL pair Class (PDF|MP4)
- STL set Class (PDF|MP4)
- STL multiset Class (PDF|MP4)
- July 27th
- STL map Class (PDF|MP4)
- STL multimap Class (PDF|MP4)
- STL unordered_map Class (PDF|MP4)
- Overview of STL Adapters (PDF|MP4)
- STL Iterator Adapters (Part 1) (PDF|MP4)
- July 28th
- STL Iterator Adapters (Part 2) (MP4)
- STL Iterator Adapters (Part 3) (MP4)
- STL Container Adapters (PDF|MP4)
- July 29th
- Walkthrough of Frequently Made Mistakes for Assignment 3 (MP4)
- Walkthrough of Assignment 4 (MP4)
- STL Functors (Part 1) (PDF|MP4)
- July 30th
- STL Functors (Part 2) (MP4)
- STL Binder Function Adapters (PDF|MP4)
- STL Negator Function Adapters (PDF|MP4)
- STL Member Function Adapters (PDF|MP4)
- STL Pointer-to-Function Adapters (PDF|MP4)
- Tips for Using STL Functors Efficiently (PDF|MP4)
- August 1st
- Overview of C++ STL Algorithms (PDF|MP4)
- C++ STL Non-Mutating Algorithms Part 1 (PDF|MP4)
- C++ STL Non-Mutating Algorithms Part 2 (MP4)
- C++ STL Non-Mutating Algorithms Part 3 (MP4)
- C++ STL Non-Mutating Algorithms Part 4 (MP4)
- C++ STL Non-Mutating Algorithms Part 5 (MP4)
- C++ STL Non-Mutating Algorithms Part 6 (MP4)
- August 2nd
- C++ STL Mutating Algorithms Part 1 (PDF|MP4)
- C++ STL Mutating Algorithms Part 2 (MP4)
- August 3rd
- Walkthrough of Assignment 5 (MP4)
- Overview of Design Patterns in C++ (PDF|MP4)
- Overview of the Expression Tree Processing App Case Study Part 1 (PDF|MP4)
- Overview of the Expression Tree Processing App Case Study Part 2 (PDF|MP4)
- The Object-Oriented Design of the Expression Tree Processing App (PDF|MP4)
- August 4th
- Walkthrough of Assignment 4 Frequently Made Mistakes (MP4)
- Overview of the Patterns Applied in the Expression Tree Processing App (PDF|MP4)
- The Composite Pattern Part 1 (PDF|MP4)
- The Composite Pattern Part 2 (PDF|MP4)
- The Composite Pattern Part 3 (PDF|MP4)
- The Composite Pattern Part 4 (PDF|MP4)
- The Bridge Pattern Part 1 (PDF|MP4)
- The Bridge Pattern Part 2 (PDF|MP4)
- August 5th
- The Bridge Pattern Part 3 (PDF|MP4)
- The Bridge Pattern Part 4 (PDF|MP4)
- The Command Pattern Part 1 (PDF|MP4)
- The Command Pattern Part 2 (PDF|MP4)
- The Command Pattern Part 3 (PDF|MP4)
- The Command Pattern Part 4 (PDF|MP4)
- The Factory Method Pattern Part 1 (PDF|MP4)
- The Factory Method Pattern Part 2 (PDF|MP4)
- The Factory Method Pattern Part 3 (PDF|MP4)
- The Factory Method Pattern Part 4 (PDF|MP4)
- August 8th
- The Iterator Pattern Part 1 (PDF|MP4)
- The Iterator Pattern Part 2 (PDF|MP4)
- The Iterator Pattern Part 3 (PDF|MP4)
- The Iterator Pattern Part 4 (PDF|MP4)
- The Strategy Pattern Part 1 (PDF|MP4)
- The Strategy Pattern Part 2 (PDF|MP4)
- The Strategy Pattern Part 3 (PDF|MP4)
- The Strategy Pattern Part 4 (PDF|MP4)
- August 9th
- Walkthrough of Assignment 5 Frequently Made Mistakes (MP4)
- The Visitor Pattern Part 1 (PDF|MP4)
- The Visitor Pattern Part 2 (PDF|MP4)
- The Visitor Pattern Part 3 (PDF|MP4)
- The Visitor Pattern Part 4 (PDF|MP4)
- The Singleton Pattern Part 1 (PDF|MP4)
- The Singleton Pattern Part 2 (PDF|MP4)
- The Singleton Pattern Part 3 (PDF|MP4)
- The Singleton Pattern Part 4 (PDF|MP4)
- August 10th
- The Template Method Pattern Part 1 (PDF|MP4)
- The Template Method Pattern Part 2 (PDF|MP4)
- The Template Method Pattern Part 3 (PDF|MP4)
- The Template Method Pattern Part 4 (PDF|MP4)
- Programming Assignments
All the assignments for this course will be available here as they
are created.
- Source Code Examples
All the C++ examples presented in this course are available here.
Back to Douglas C. Schmidt's list of
CS courses.