Algoritmické myšlení je součást obecnějšího informatického myšlení, která se zaměřuje na navrhování algoritmů. Algoritmus je přesně daný postup, kterým řešíme určitý problém. Algoritmické myšlení se typicky využívá při programování, tj. při zápisu algoritmů, které provádí počítač. Má však svoje využití i v běžném životě: typickými příklady jednoduchých algoritmů jsou recepty na vaření nebo instrukce k sledování cesty z jednoho místa na druhé.

Algoritmické myšlení zahrnuje nejen tvorbu algoritmu, ale i další související kroky:

  • Porozumění problému, jasná formulace problému.
  • Zvážení různých přístupů k řešení problému, porovnání efektivity algoritmů.
  • Porozumění algoritmu, který vymyslel někdo jiný, a jeho provedení.
  • Hledání a opravování chyb.

V rámci Umíme informatiku dělíme toto téma na několik podtémat:

  • Rozpoznávání vzorů – vyhledávání společných vzorů a vlastností, vzory v posloupnostech, popis vzorů. Než začneme vymýšlet algoritmy, potřebujeme si umět všímat pravidelností ve světě kolem nás.
  • Základy algoritmického myšlení – posloupnost příkazů, cykly, podmínky.
  • Proměnné – práce se stavovou informací, ukládání hodnot do proměnných.
  • Funkce a zobecňování – zobecňování (abstrakce) vzorů, rozklad (dekompozice) problémů na části, použití funkcí.
  • Vývoj programů – ladění, hledání chyb.

Příklady v této části staví především na „mikrosvětech“, což jsou jednoduchá, intuitivní prostředí s omezeným množstvím příkazů a současně zajímavou dynamikou. Jsou začleněny jak variace na často používané principy (želví grafika, robot na mřížce), tak originální variace jako kouzla nebo deaktivace bomby.

Pro zápis programů zde využíváme blokové programování, k jehož použití nabízíme samostatný metodický text pro učitele.



Vysvětlení mi pomohlo   Vysvětlení mi nepomohlo

Rozhodovačka

Rychlé procvičování výběrem ze dvou možností.


Algoritmické myšlení
Rozpoznávání vzorů
Společná vlastnost
Společná vlastnost: slova
Vzory v posloupnostech
Číselné řady obrázkově
Popis vzorů
Číselné řady s popisem
Zpětné inženýrství
Slovní vztahy
Rozklad obrázků na části   
Vzory z dlaždic
Základy algoritmického myšlení
Posloupnost příkazů   
Posloupnosti kouzel
Deaktivace bomby: posloupnosti
Opakování   
Opakovací kouzla
Deaktivace bomby: opakování
Podmínky a větvení   
Podmíněná kouzla: oblékání příšerek
Deaktivace bomby: podmínky
Proměnné
Proměnné: základní principy
Proměnná kouzla
Deaktivace bomby: proměnné
Cykly s proměnnými
Podmínky s proměnnými
Funkce a zobecňování
Funkce   
Zobecňování programů
Rozklad programů


Pexeso

Hledání dvojic, které k sobě patří.


Algoritmické myšlení
Rozpoznávání vzorů
Stejné vzory
Vločky
Kytičky
Náramky
Popis vzorů
Zápis klikyháků
Rozklad obrázků na části   
Barevné dlaždice
Základy algoritmického myšlení
Posloupnost příkazů   
Želví obrázky
Opakování   
Želví obrázky (s opakováním)


Přesouvání

Přesouvání kartiček na správné místo. Jednoduché ovládání, zajímavé a neotřelé úlohy.


Algoritmické myšlení
Rozpoznávání vzorů
Společná vlastnost
Společná vlastnost: obrázky
Společná vlastnost: slova
Společná vlastnost: příšerky
Trojice
Vzory v posloupnostech
Postupná přeměna
Doplňování řad: čísla
Doplňování řad: symboly
Doplňování řad: geometrické útvary
Popis vzorů
Popis vzorů: Vyšívání
Zpětné inženýrství
Vztahy slov
Kouzelné hůlky
Obrázkový mixér
Kódy květin
Rozklad obrázků na části   
Obrázky a vrstvy
Rozklad obrázků
Rozklad obrázků (s opakováním)
Základy algoritmického myšlení
Posloupnost příkazů   
Sběr odpadu
Bloudící myš
Stavby z kostek
Posloupnosti kouzel
Opakování   
Sběr vlajek
Včelí smyčky
Opakovací kouzla
Podmínky a větvení   
Sběr vlajek: podmínky
Oblékání příšerek
Rozhodovací stromy
Opakuj dokud   
Vláček
Proměnné
Proměnné: základní principy
Proměnná kouzla
Funkce a zobecňování
Abstrakce   
Žebřík abstrakce
Klasifikace
Funkce   
Obrázkové funkce
Vývoj programů
Vývojové diagramy
Vývojové diagramy: úpravy textu
Vývojové diagramy: proměnné a čísla


Šipkovaná

Šipkovaná je jednoduchá logická úloha, kde tvoříte program pro skřítka pomocí šipek umístěných do lesa. Není to ale zas tak úplně snadné, protože krom šipek jsou ovšem v lese i hřiby, rybníky, teleporty, kouzelné hůlky, vybuchují muchomůrky...


Skřítkova rozcvička

Položte do lesa šipky, aby skřítek došel do svého domečku. Šipek je málo, tak ať vám vystačí.

Sběr hříbků

Než dojde skřítek domů, musí posbírat všechny hříbky.

Skoky

V lese jsou občas rybníčky. Skřítek je zvládne přeskočit, ale musíte mu přistavit na správné místo pružinku.

Víc skřítků

Máme tu několik skřítků a všichni chtějí do domečku. Někteří jsou navíc červení. A nikdo se nesmí srazit!

Pozor na skřeta!

V lese se objevil zlý skřet. Skřítek se musí dostat domů a vyhnout se mu.

Přebarvování

Skřítek se naučil přebarvovací kouzlo, které mu změní barvu kabátku.

Kameny a hůlka

V lese občas překáží velké kameny. Naštěstí tu je kouzelná hůlka, která je odčaruje.

Vybuchující muchomůrka

V lese začaly růst kouzelné muchomůrky. Když kolem nich někdo projde, vybuchnou!

Rotující šipky

Lesní vynálezci vymysleli rotující šipky, které se otočí pokaždé, když kolem nich skřítek projde.

Mizející šipky

Tentokrát tu máme speciální mizející šipky, které jsou jen na jedno použití.

Lesní výpravy I

Lesní výpravy s různými prvky: hříbky, rybníky, několik skřítků…

Teleport

Máme tu další kouzla – tentokrát teleportační brány, které přenesou skřítka z jednoho místa na druhé.

Lesní výpravy II

Pokračování lesních výprav s různými prvky.

Lesní výpravy III

Třetí díl lesních výprav s různými prvky.

Obtížné

A na závěr několik obtížnějších úloh.



Želví grafika

Naprogramujte želvu, aby kreslila pěkné obrázky. Želva rozumí pokynům jako je „jdi dopředu“ či „zatoč doprava“. Programy tvoříte pomocí přetahování grafických bloků. Začněte s jednoduchými obrázky a pokračujte až k fraktálům.


Základy

Pro začátek naučíme želvu základní příkazy pro posun a zatáčení a nakreslíme s ní pár jednoduchých obrazců. Pokud si sami potřebujete ujasnit, jak fungují úhly, zkuste nejdřív pexeso na úhly.

Jednoduché kreslení

Přidáme želvě možnost opakovat příkazy, díky čemuž zvládne vykreslit už trochu zajímavější obrázky.

Kreslení

Aby to kreslení nebylo tak fádní, naučíme želvu malovat barevně a zvedat štětec.

Kreslení II

A teď si zkusíme nakreslit pár obrázků z (želvího) života. Kreslení těchto obrázků není sice úplně jednoduché, ale nevyžaduje žádný složitý nápad.

Vzory s opakováním

Když správně použijete vnořené opakování, želva dokáže vykreslit zajímavé obrazce.

Vzory s opakováním II

Pár dalších vzorů s pravidelným opakováním. Některé vypadají komplikovaně, ale jdou všechny vykreslit snadno. Jen je potřeba se na ně správně podívat.

Želva s limitem

V této sadě máte za úkol psát pro želvu krátké programy –⁠ každá úloha má limit na počet příkazů. Dokážete najít ten správný, stručný zápis programu?

Proměnné

Naučíme želvu používat proměnné a ta nám díky tomu nakreslí pěkné spirály.

Ladění obrázků

V této sadě máte připravené programy, které jsou skoro správně. Ale jenom skoro. Zkuste v nich najít chybu a opravit ji.

Správné úhly

Želva zvládne nakreslit pěkné hvězdy a další obrazce. Musíte jí ale říct, o jaký úhel má přesně zatočit. Zkuste ten správný úhel nehádat, ale vypočítat.

Záludné

Směsice těžších úloh. Jdou často řešit krátkým programem, ale může k tomu být potřeba ten správný nápad.

Želví experimentárium

Na závěr tu máme úlohy „na hraní“. U těchto úloh není žádné jasné zadání k vyřešení. Máte připravený program, se kterým můžete experimentovat.



ProgMalování

ProgMalování je zábavná kombinace programování a malování. Úkolem je nakreslit zajímavé obrázky pomocí programů, které tvoříte přetahováním připravených bloků.


Skládání tvarů

Skládáním základních tvarů se dají vykreslit zajímavé geometrické obrazce. Zvlášť když zapojíme speciální inverzní štětec.

Skládání tvarů II

Dokážete se na útvary správně podívat a poskládat je ze základních?

Malovací rozcvička

Sada příkladů na rozcvičení a vyzkoušení ovládání.

Obrázky

Kreslení obrázků pomocí základních operací. Bude potřeba se trochu zamyslet nad správným pořadím...

Obrázky II

Trochu rozsáhlejší obrázky. Nevyžadují žádný velký nápad, jen trochu důslednosti.

Vzory s opakováním

Zde máme navíc příkaz pro opakování, což umožňuje vykreslovat pěkné vzory.

Proměnné

A teď si přidáme proměnné, což dohromady s opakováním umožňuje dělat nové zajímavé vzory.

Funkce

Pomocí funkcí můžeme vytvořit nové vzory a umisťovat je na různá místa na plátně.

Ladění obrázků

Důležitou součástí programování je ladění, tedy hledání chyb a jejich opravování. V této sadě si to můžete natrénovat: dostanete připravený program a jen ho musíte mírně doladit.

Záludné

Sbírka náročnějších úloh na závěr.



Plošinovka

Plošinovky patří ke klasickým počítačovým hrám. V naší Plošinovce však neovládáte postavu herní konzolí, ale programem. Programy se tvoří grafickým programováním a procvičíte si na nich především podmínky.


Rozcvička

Pan Blob se potřebuje dostat ke dveřím. Naučte ho, jakou akci má kdy provést, aby úspěšně splnil svoji misi.

Podmínky: základy

Pan Blob je inteligentní a nemusí u každého kaktusu dělat to stejné. Může se rozhodnout podle toho, zda kaktus roste na trávě, nebo písku.

Interakce

Vytvořte si vlastní pravidla hry a pak si hru zahrajte! V této sadě pan Blob dokáže reagovat nejen na prvky na plánu, ale i na kliknutí.

Rozšířené podmínky

Aby se pan Blob mohl lépe rozhodovat, naučíme ho nové podmínky na směr chůze a počet mincí.

Pavouci a střely

Pozor, některé plošinky hlídají obří pavouci. Pan Blob je však umí sestřelit.

Interakce a podmínky

Nyní se pan Blob pustí do průzkumu záludnějších plošinových světů, na což se bude hodit využít podmínky i událost klikání.

Čarování s podmínkami

Nyní pan Blob bude potřebovat jak čarování, tak podmínky.

Kombinace podmínek

V této sadě využijeme kombinace podmínek (logické spojky, vnořené podmínky).

Čarování

Pan Blob umí kouzlit! Dokáže třeba odčarovat všechny plošinky s trávou.

Duch

Pan Blob se dokáže proměnit na ducha. Jako duch dokáže přejít přes nebezpečné ostny, ale neumí sbírat mince a vejít do dveří.

Čítače

Pan Blob umí i počítat. Sice jen po jedné, ale i to stačí.

Záludné

Výběr těžších úloh. Některé jdou vyřešit i jednoduchým programem, nemusí být ale snadné to správné řešení najít.

Robotanik

Robotanik je programátorská úloha s jednoduchými pravidly, snadným ovládáním a mnoha zajímavými úlohami. Základní úlohy jsou řešitelné i pro úplné programátorské začátečníky. Pokročilé úlohy dají zabrat i zkušeným programátorům a poslouží především jako velmi dobrý trénink rekurze.

Pokud chcete zkusit na rozcvičení něco snadnějšího, zkuste hru Šipkovaná.


Trénink

Vyzkoušejte si základní ovládání Robotanika.

Lehké

Sada úloh, které zvládne s trochou přemýšlení vyřešit i programátorský nováček.

Středně těžké

U těchto úloh už se budete muset trochu víc zamyslet, ale nejsou v nich ještě žádné záludné finty.

Těžké

Tady už to začíná být komplikovanější. U těchto příkladů už je často potřeba využít naplno princip rekurze (zanořování a vynořování z funkcí).

Opravdová výzva

Tyto úlohy už mohou dát zabrat i zkušenému programátorovi.



Python želva

Naprogramujte želvu, aby kreslila pěkné obrázky. Želva rozumí pokynům jako je „jdi dopředu“ či „zatoč doprava“. Programy tvoříte pomocí jazyka Python 3. Pro rozcvičení můžete použít verzi želví grafiky v grafickém programování.

Zájemci najdou více informací o želví grafice v knížce od jednoho z autorů projektu Umíme programovat.


Rekurze a fraktály

Náročné, bonusové téma pro pokročilé. Za využití rekurze můžeme pomocí želví grafiky kreslit elegantní fraktály. Jde to často krátkým programem, který však vůbec není lehké vymyslet...



NAPIŠTE NÁM

Nevíte si rady?

Nejprve se prosím podívejte na časté dotazy:

Časté dotazy Návody pro rodiče Návody pro učitele

Čeho se zpráva týká?

Vzkaz Obsah Ovládání Přihlášení Licence