Programming Abstractions (Accelerated)

Programming Abstractions (Accelerated)


This course is an intensive version of CS106B for students with a strong programming background interested in a rigorous treatment of the topics at an accelerated pace. It includes additional advanced material and more challenging projects.

CS106X teaches advanced programming and abstraction techniques, worrying first about C++ language mechanics and eventually focusing on topics such as recursion, C++ lists and maps, and the implementation techniques used to build complicated, dynamic data structures.

More about Programming Abstractions (CS106B)

Topics Include

  • C++ Strings
  • Coding Standards
  • Decomposition
  • Scanners, maps, and sets
  • Recursion
  • Memorization
  • Biorhythms and Arrays
  • Linked lists
  • Huffman coding
  • Generalization of trees
  • Python basics


Excellence in CS106A, or equivalent; or consent of instructor



To receive a passing grade, you must complete satisfactory work in all areas. If you do not pass the final exam, you will not pass this class regardless of your performance on the assignments. Assignments are graded on a bucket system, because we want to deemphasize the grade and have you focus more on the assignment and our feedback.

Course Page
Stanford School of Engineering