CS106L

Standard C++ Programming

Stanford University

Spring 2025

About CS106L

🌽 CS106L is a 1-unit class that explores the modern C++ language in depth. We'll cover some of the most exciting features of C++, including modern patterns (up through C++26) that give it beauty and power.

🥦 Anyone who is taking or has taken CS106B/X (or equivalent) is welcome to enroll. In other words, we welcome anyone that has learned or is learning programming fundamentals like functions and objects/classes.

🥕 CS106L is a class for 1 unit. Students will complete 8 very short weekly assignments. These are not meant to be too challenging but instead function as some hands-on practice with a few of the concepts we discuss in class the previous week. There are no exams or papers. All grades are S/NC. Class will finish in week 8 to give you time for finals.

🏢 CS106L is built for you! Even if you're not taking the class, you're welcome to come to our in-person office hours (starting week 2). Fabio: Wednesdays 4-5pm on Zoom link, Jacob: Friday 3-4pm @ 260-113. On Friday, May 23rd, Jacob's OH will be on Zoom from 11am-noon!

Course Info

Quick Links

Schedule

WeekTuesdayThursday

1

April 1

1. Welcome!

📖 Slides

📃 Policies

April 3

2. Types and Structs

📖 Slides

💻 Code

📕 Reader

2

April 8

3. Initialization and References

📖 Slides

💻 Code

📕 Reader

April 10

4. Guest Lecture

📖 Slides

A0: Setup

3

April 15

5. Streams

📖 Slides

💻 Code

April 17

6. Containers

📖 Slides

📕 Reader

A1: SimpleEnroll

4

April 22

7. Iterators and Pointers

📖 Slides

📕 Reader I, II

April 24

8. Classes

📖 Slides

💻 Code

A2: Marriage Pact

5

April 29

9. Inheritance

📖 Slides

May 1

10. Const Correctness & Class Templates

📖 Slides

💻 Code

📕 Reader

A3: Make a Class!

6

May 6

11. Function Templates

📖 Slides

💻 Code

May 8

12. Functions and Lambdas

📖 Slides

💻 Code

A4: Ispell

7

May 13

13. Operator Overloading

📖 Slides

💻 Code

May 15

14. Special Member Functions

📖 Slides

A5: Treebook

8

May 20

15. Move Semantics

📖 Slides

💻 Code

May 22

16. std::optional and Type Safety

📖 Slides

💻 Code

A6: ExploreCourses

9

May 27

17. RAII, Smart Pointers, and Building C++ Projects

📖 Slides

💻 Code

A7: Unique Pointer
May 29

Optional: No Class, Extra Office Hours

10

June 3

Optional: No Class, Extra Office Hours