A programming approach that helps students to understand a problem and develop a structured program.
In order to guide/structure the student mental process, this approach incorporates a set of rules/principles related to problem presentation, and a natural and intuitive way to identify, model and implement the problem components.