Teach them to model situations as discrete structures (graphs, sets, constraints).
Teach them families of algorithms (search, greedy, DP) and when each fits.
Teach invariants, extremal reasoning, and impossibility proofs via puzzles.
Teach them to reason about complexity and trade-offs (exact vs heuristic).
Do it through rich, varied problems that feel like real planning, scheduling, and network tasks, not just symbol pushing.