Tri programske strukture
U linijskoj strukturi (sekvenci) blokovi se izvršavaju redom, jedan za drugim, svaki tačno jednom. Ciklična struktura (petlja) ponavlja blokove: „ponovi 4 puta“ ima poznat broj prolaza, „ponavljaj zauvek“ traje dok se program ne zaustavi, a „ponavljaj dok je …“ ponavlja sve dok je uslov tačan, pa ako uslov nije tačan već na početku, blokovi se ne izvrše nijednom. Razgranata struktura bira put prema uslovu: „ako … onda“ izvršava blokove samo kad je uslov tačan, a „ako … onda … inače“ uvek izvršava tačno jedan od dva dela. Strukture se kombinuju, npr. grananje unutar petlje. Važno je šta je uvučeno: blok ispod grananja koji nije uvučen izvršava se uvek, a blok uvučen u ponavljanje izvršava se u svakom prolazu.
Uslovi, paran broj i spisak vrednosti
Uslov poredi vrednosti operatorima veće, manje i jednako. „Više od 100 poena“ je poeni > 100, a 100 nije veće od 100. Ako treba „140 ili više“, uslovi „visina > 140“ i „visina = 140“ spajaju se sa ili. Sa i moraju da budu tačna oba uslova, sa ili je dovoljan bar jedan, a ne obrće vrednost uslova. Paran broj ima ostatak 0 pri deljenju sa 2, a neparan ostatak 1; i 0 je paran broj. Za više vrednosti pod jednim imenom koristi se lista (spisak vrednosti), npr. imena svih učenika odeljenja: nove vrednosti dodaju se na kraj, a ponavljanje prolazi kroz sve elemente da bi izračunalo zbir, prosek ili najveću vrednost. Uslov „spisak sadrži odgovor“ proverava da li je upisano ime na spisku.
Greške u programu i testiranje
Logička greška postoji kada se program izvršava, ali ne radi ono što treba. Najčešće su pogrešan redosled blokova (lik se pomeri pre nego što kaže „Krećem!“), pogrešan broj ponavljanja ili ugao (tri stranice umesto kvadrata) i pogrešan uslov, naročito na granici: „> 50“ ne pušta tačno 50 poena. Česta greška je i postavljanje zbira na 0 unutar ponavljanja, pa se zbir u svakom prolazu poništava, kao i ponavljanje čiji uslov nikad ne postaje netačan, tj. beskonačna petlja. Greška se nalazi praćenjem programa korak po korak. Testiranje je pokretanje programa sa različitim unosima i poređenje sa očekivanim rezultatom; testira se svaka grana i granica uslova, npr. 9, 10 i 11, a posle svake ispravke program se ponovo testira. Uspešni testovi ne dokazuju da program radi za sve unose.