CS106B - Programming Abstractions

  • Free
  • No certificate
Provider
Stanford
Cost
Free
Certificate
No certificate
Format
Self-paced
Language
English
Subjects
Programming, Computer Science
Source
Stanford Online
Last verified
14 Sep 2026

Programming Abstractions is the second course in Stanford's CS106 sequence, taught here by Julie Zelenski and published in full on Stanford Engineering Everywhere. It moves from Java to C++ and covers the more advanced introductory topics: abstraction and its relation to programming, data abstraction and modularity, object-oriented programming, the fundamental data structures (stacks, queues, sets), data-directed design, recursion and recursive data structures such as linked lists, trees and graphs, and an introduction to time and space complexity analysis. SEE provides 27 lectures of about 40 to 52 minutes with transcripts, together with handouts, assignments, exams and the required software.

The page states that the course assumes solid performance in Programming Methodology or a comparable introductory course, including high-school AP courses, and familiarity with good programming style. Access is free with no registration and no updates since the SEE pilot ended; there is no credit, certificate or graded feedback, and the content is licensed CC BY-NC-SA 4.0.

Advertisement

What you’ll learn

  • Program in C++ using its basic facilities and standard containers
  • Apply data abstraction and modularity to larger programs
  • Use fundamental data structures such as stacks, queues, sets, linked lists, trees and graphs
  • Write and reason about recursive functions and recursive data structures
  • Analyse the time and space complexity of algorithms

Who it’s for

Learners who have finished a first programming course and want data structures, recursion and complexity analysis taught in C++.

Source: Stanford Online (opens in a new tab) · Verified · Report a change

Advertisement
FreeOpens see.stanford.edu Go to course (opens in a new tab)