After covering the foundational building blocks in Session 1, the next step is one of the most important problem-solving techniques in all of programming: recursion.

And once recursion feels comfortable, it unlocks a powerful search strategy called backtracking.

These two concepts appear everywhere in competitive programming — Fibonacci, binary...