Algorithms Illuminated: Part 1: The Basics