Programming Abstractions (Accelerated)


Stanford School of Engineering



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.

Thank you for your interest. No sections are available. Please click the button below to receive an email when the course becomes available again.

Notify Me