First Course in Algorithms Through Puzzles