CS106B Programming Abstractions
Website
- Spring 2020 (latest) course website slides ✅ | assignments ✅
- Winter 2018: YouTube videos ✅
Overview
Prerequisite: CS106A
Description:
CS106B is one of the follow-up courses of CS106A and part of Stanford's CS106 family. The relationship is as follows (from CS106B's 18 winter slide):
- CS106A: Programming Methodology (Java) Prereq: none
- first course in programming, software development, coding style
- text and graphics; basic data and algorithms; problem solving
- CS106B: Programming Abstractions (C++) Prereq: 106A
- big data; complex data structures
- algorithm analysis and algorithmic techniques such as recursion
- programming style and software development practices
- CS106X: Programming Abstractions (Accelerated) (C++)
- similar content to CS106B, but faster and more complex
- expects significant coding experience, ability to learn quickly
You can either choose CS106B or CS106X. If you'd like to improve your C++ skills, you can learn CS106L at the same time.
Schedule (Spring 2020)
- Welcome! slide
- C++ slide
- Strings slide
- Vectors and Grids slide
- Stacks and Queues slide
- Sets and Maps slide
- Big O and Asymptotic Analysis slide
- Introduction to Recursion slide
- Fractals slide
- Procedural Recursion slide
- Backtracking 1 slide
- Backtracking 2 slide
- C++ Classes slide
- Dynamic Memory slide
- Memory and Pointers slide
- Implementing VectorInt slide
- Heaps slide
- Sorting slide
- Linked Lists 1 slide
- Linked Lists 2 slide
- Trees slide
- Binary Search Trees slide
- Huffman Coding slide
Assignment (Spring 2020)
- Welcome to CS106B! handout starter code
- Getting Your C++ Legs handout starter code
- Fun with Collections handout starter code
- Recursion handout starter code
- Backtracking handout starter code
- Priority Queue handout starter code unavailable
- Linked Lists handout starter code
- Huffman (optional) handout starter code