Analizza il problema e dividilo in problemi più piccoli e più semplici
*= "Decomposition"
Trova gli elementi in comune a tutti i problemi
*="Pattern Location"
Scopri le differenze tra i problemi ed eliminale fino a rimanere con una struttura comune, un modello che funzioni con tutti i problemi
*="Abstraction"
Scrivi una sequenza di istruzioni usando il modello con i concetti in comune e assegna una variabile che permetta di eseguire le parti differenti
*="Algorithms"