This course builds the algorithmic thinking every strong programmer needs — the kind tested in technical interviews and competitive programming contests like USACO. Students move from compact Python expressions to genuinely challenging problems, solved the way real competitors solve them.
Concise Python idioms like ternary expressions and comprehensions, recursion, and the combinatorial thinking behind permutations, subsets, and sorting — the patterns that show up again and again in algorithmic problems.
Interactive games and puzzles that put recursive and pattern-based thinking into practice, reinforcing each concept through something fun to finish and play.
Students should have completed Python for Kids: Part 1, 2, and 3.
Students ready for harder algorithmic challenges, and students planning to compete in USACO or pursue AP Computer Science.