Decompose the problem
Identify inputs, outputs, decisions and repeated steps before thinking about syntax.
Strong programmers make their thinking visible through decomposition, algorithms, traces and purposeful tests.

Identify inputs, outputs, decisions and repeated steps before thinking about syntax.
Walk through sample data to find gaps before implementation.
Choose normal, boundary and invalid data that demonstrates correct behaviour.
Pseudocode makes logic visible without distracting students with language-specific details.
Move into Python only when the algorithm is clear enough to explain.
Treat errors as evidence and use a repeatable process to locate the cause.
Book an introductory class to discuss the student’s level, goals and next steps.