CS 106M: Enrichment Adventures in Programming Abstractions — Stanford Root