Computational thinking handler om at kunne omsætte et problem til en form, der kan behandles af en computer. Komplekse problemer må nedbrydes til mindre dele, og disse dele skal modelleres, så de kan løses med bestemte trinvise fremgangsmåder.
Det gør vi allerede på mange områder i vores liv, eksempelvis når vi laver aftensmad. I det tilfælde kan madopskriften betragtes som en algoritme, en fastlagt fremgangsmåde, der sikrer, at vi når til det færdige resultat. Opskriften har således nedbrudt det komplekse problem at lave aftensmad til en række trin, der hver for sig er rimelig enkle og overskuelige: skræl kartoflerne, skær dem i både osv.
Den grundlæggende idé bag denne metode er at udvikle et system ved gentagne cyklusser og i mindre portioner ad gangen, så softwareudviklere drager fordel af det lærte under udviklingen af tidligere dele eller versioner af systemet.
Læring kommer fra både udvikling og anvendelse af systemet, hvor eventuelle vigtige skridt i processen starter med en simpel implementering af en delmængde af software krav og iterativt øge de skiftende versioner, indtil hele systemet er implementeret.
Ved hver iteration består fremskridt af konstruktions ændringer og tilføjelse af nye funktionelle egenskaber.
Selve proceduren består af initialiseringen som er opstarts fase, den iterative fase og den afsluttende fase. I initialiserings-trinnet skaber en basis version af systemet. Målet for denne indledende implementering er at skabe et produkt, som brugeren kan afprøve. Det bør tilbyde et udsnit af de centrale aspekter af problemet og levere en løsning, der er enkel nok til at forstå og implementere nemt.
Til at styre den iterative del, laves en oversigt som indeholder en fortegnelse over alle de opgaver, der skal udføres. Det omfatter elementer som nye funktioner, der skal gennemføres og områder af redesign af eksisterende løsning. Listen bliver konstant revideret som følge af analysefasen. I analysefasen analyseres system-strukturen, modularitet, brugervenlighed, pålidelighed, effektivitet og opfyldelse af mål.
Den afsluttende fase nås når alle systemets mål er opfyldt. Faren her er, at brugeren undervejs tilfører nye ønsker om funktionalitet og på den måde er der risiko for at forlænge udviklingsprocessen og forsinke færdiggørelsen af systemet