V blokově orientovaném programovacím jazyce vytvoří přehledný program, používá opakování, větvení programu, proměnné.

Komentář:
Žák si prohlubuje dovednosti související s programováním. Osvojuje si komplexnější pracovní postup – od specifikace problému přes rozmyšlení algoritmu k implementaci řešení, resp. k jeho iterativnímu vylepšování do požadované kvality. Péči také začíná věnovat přehlednosti a srozumitelnosti kódu. Snáze se pak ke kódu sám vrátí, najde chyby, použije jeho části pro řešení podobného problému nebo na něm spolupracuje v týmu.
I na druhém stupni vystačí s blokovým prostředím, nadále vytváří podprogramy a využívá opakování. Seznamuje se s dalšími řídicími programovými strukturami. Přidává další druhy opakování (zejména ovládá opakování s daným počtem a opakování s ukončovací podmínkou). Naučí se program větvit, tedy provádět některé části, jedině pokud právě platí zadaná logická podmínka, a poté i provádět dvě různé věci, pokud podmínka platí a pokud nikoli. Proměnné mu umožní řešit složitější úlohy a vytvářet pokročilejší programy, například hry nebo jiné simulace.
Některé žákovské programy již řeší praktické problémy, mají tedy vliv na vnější svět, přinejmenším na své uživatele. Žák si proto zvyká předvídat možné důsledky programů, které vytváří, a přijímá za ně příslušnou zodpovědnost.
Při programování žáci využívají koncepty z ostatních výstupů a získávají objektivní zpětnou vazbu o tom, jestli je dovedou použít. Učí se pracovat v prostředí, které vyžaduje přesnost, pečlivost, doslovnou a jednoznačnou komunikaci. Mají prostor samostatně určovat a řídit, jak budou postupovat při tvorbě.
Žáci se průběžně rozhodují, jestli je v daném okamžiku efektivnější přemýšlet a plánovat, nebo řešení náhodně zkoušet. Všímají si nesrovnalostí, formulují je jako problémy a systematicky hledají jejich řešení. Zjišťují, jaké úspory může přinést, když už jednou vytvořený program pracuje sám. Získávají také základní představu o tom, jak probíhá tvorba běžně používaných aplikací.
Vyučující postupně vede žáka k tomu, aby:
- začínal na jednoduchých příkladech, činil jednoduchá rozhodnutí, například se seznamoval s hotovým programem a na vymezených místech upravoval jeho chování; postupně narůstá obtížnost různých aspektů jeho práce,
- zlepšovala se jeho orientace v daném programovacím prostředí, osvojoval si další pojmy a koncepty, pokročilé možnosti, nabídky a postupy,
- seznamoval se s dalšími bloky a možnostmi jejich vzájemného ovlivňování a kombinování a rozšiřoval tak možnosti svých programů,
- trénoval jednotlivé dílčí programátorské činnosti (specifikace a analýza zadání, návrhy řešení, výběr nejslibnějšího, převod na bloky, implementace a testování), postupně je kombinoval a řadil za sebou, aby kompletoval rozsáhlejší vlastní projekty,
- seznamoval se s příklady použití nových řídicích struktur, testoval je v izolovaných příkladech, učil se předvídat, k jakému vedou chování, sám je implementoval podle pokynu, později sám rozhodoval, kdy bude jejich využití vhodné; nakonec se obdobně (postupně) učil je mezi sebou kombinovat,
- krokoval programy s proměnnými, sledoval vývoj jejich hodnot, hodnotil přínosy jejich použití; v prvních pokusech s proměnnými pod vedením učitele, postupně žák iniciativu přebírá a samostatně rozpoznává, že si program má něco pamatovat, jaké to budou hodnoty, jakým způsobem se bude hodnota proměnné měnit,
- postupně uspořádával zdrojový kód, přidával komentáře, zvažoval rovnováhu mezi rychlostí implementace, přehledností a úsporností kódu,
- seznamoval se s příklady důsledků jiných programů a služeb, včetně těch obecně neočekávaných, zvažoval dopady na sebe, na své uživatele, jejich okolí, případně i širší dopady.