Výuka je rozdělena do 4 bloků. Každý blok se zaměřuje na problematiku tvorby algoritmů a programování z trochu jiného pohledu.
1. BLOK: seznámení se základními pojmy ze světa programování.
2. BLOK: rozvíjení informatického myšlení, vytváření algoritmů unplugged metodami, tvorba kódu ve hře Lightbot a Code.org.
3. BLOK: orientace na tvorbu programů a vytváření příběhů ve vizuálním programovacím jazyku Scratch.
4. BLOK: představení způsobu zápisu algoritmů vývojovými diagramy; využití programu PS Diagram.
Závěr výuky: představení dalších možností pro rozvoj dovedností v programování.
Porozumět základním pojmům z oblasti algoritmizace a programování.
Ať víme, o čem se vlastně bavíme.
Je postup řešící určitý druh problému.
Postup je složen z konečného množství přesně určených jednoduchých kroků – například v matematice je algoritmem postup násobení pod sebou nebo třeba dělení "s ocáskem".
Ale algoritmem může být třeba recept na vaření guláše.
Algoritmy lze zapisovat například slovně ( 2. blok výuky), v programovacím jazyce ( 3. blok výuky), v podobě vývojového diagramu ( 4. blok výuky).
Algoritmus má určité vlastnosti:
Vždy vyjde nějaký výsledek, který je v souladu se zadáním.
Musí skončit!
Je složen z co nejjednodušších jasných kroků, které se snadno provedou.
Po každém provedeném kroku je jasné, jaký krok bude dále proveden, anebo, zda se ukončí (konečnost).
Lze použít na celou skupinu problémů.
Při násobení je jedno, jestli bude zadáno 321×123 nebo 51241×123456... postup (algoritmus) násobení bude stejný.
Snažíme se najít postup, který bude co nejrychlejší, nejúspornější na paměť. Zpravidla platí: čím menší počet kroků, tím lépe.
Tato vlastnost není nutná, ale je žádoucí.
Program = algoritmus zapsaný v jednom z programovacích jazyků, který zpracovává data.
Program vytváří programátor.
Program vykonává procesor počítače.
Program je sada příkazů, kterou se počítač řídí a tyto příkazy vykonává.
Program je jakýkoliv software v počítači, ale i jakákoliv aplikace v mobilu nebo tabletu, například operační systém (Windows, Android, iOS), hry, kancelářský software (Word, Excel,...), grafický editor, WhatsApp, atd.
Na každém řádku programu musí být jasné, co přesně se po počítači chce, co se vykonává... jak se bude chovat. To často vede k zvláštní "kostrbatosti" zápisu.
Programování = zápis algoritmu v programovacím jazyku.
Programování je jednoduše způsob, kterým je možné sadou instrukcí = pokynů jimž počítač rozumí, říci, co má počítač dělat.
1. Hledání problému, který bude program řešit a jak ho bude řešit.
2. Sestaví se algoritmus.
3. Algoritmus se přepíše ve zvoleném programovacím jazyce.
4. Testování funkčnosti programu – ladění neboli debugging (hledání a odstraňování chyb).
Téměř nikdy se nestane, že by byl program perfektně funkční hned na první pokus. Proto je testování a odstraňování chyb (debugging) důležitou součástí programování.
Programovací jazyk je prostředek, kterým programátor komunikuje s počítačem.
Existuje mnoho (> 100) různých programovacích jazyků, které se od sebe různě odlišují. Některé si jsou velmi podobné, některé úplně odlišné. My se budeme zabývat tzv. "block-based" jazyky, které jsou určené dětem (především Scratchem).
Vhodný a programátory velmi často využívaný grafický zápis algoritmů.
Konstrukcí vývojového diagramu se budeme zabývat ve
čtvrtém bloku, ale pro představu, jak vypadá
vývojový diagram řešící funkčnost žárovky.
Ověř si získané znalosti testem nebo vytvořením myšlenkové (pojmové) mapy.
Seznámili jsme se se základními pojmy v oblasti algoritů a programování – co je to algoritmus, jaké má vlastnosti, jak lze algoritmus zapsat, co je to program, programování a programovací jazyk.
Za splnění bloku (min. 7/10 správných odpovědí v Plickers) získáváš NowKnowHow stikerku
Umět algoritmus zapsat v přirozeném jazyce, grafickými symboly
Z každého zápisu musí být jasné,
co přesně po počítači chcete. Musíte se vyjadřovat co nejpřesněji, nejjednodušeji.
Dokázat rozpoznat, v čem se objekty shodují, v čem se mohou lišit – najít vlastnosti objektů.
Cíl: Dokázat slovy správně zapsat postup skládání origami.
Nástroje: papír (origami papír), pero
Náročnost:
Čas: 30 minut
Za splnění úkolu získáš max.:
Startovač: Co bude náročnější... složit origami nebo popsat, jak se skládá? Proč?
Vyzkoušej následující úkol z Bobříka informatiky:
Jak bude vypadat finální origami, pokud budeme skládat podle následujících instrukcí? Vycházíme z obdélníku.
e = přehni (c, a); f = přehni (c, d); g = přehni (a, f)
Postup:
Těžká varianta
Lehká varianta
Inspirace: Bobřík informatiky (The Beaver 2012)
Cíl: Dokázat pomocí jednoduchých instrukcí správně zapsat postup vedoucí k vytvoření obrázku.
Nástroje: papír (čtverečkovaný), pero
Náročnost:
Čas: 30 minut
Za splnění úkolu získáš max.:
Startovač: Jak se v počítačové grafice říká jednotlivým čterečkům? Jaké mají vlastnosti?
Prostuduj obrázek níže. Co znamená? Kdy je vhodné použít takovou konstrukci?
Postup:
Napište kód, který zabezpečí konstrukci obrázku. Kód se bude skládat pouze z následujících grafických instrukcí:
Nemusíte se držet jen 1bitového (černobílého) obrázku. Vyzkoušejte více barev, ale budete muset doplnit instrukce o změnu barvy. Stáhnout dokument "bitmapa_bianko.pdf"
Start je vždy v levém horním rohu.
V kódu je často využito opakování – takzvaný cyklus. Číselný index před závorkou označuje počet opakování, který se má provést.
Například O3 (>) znamená to samé, jako > > >.
Navržený postup vpravo není jedinou možností, která by se dala využít. Napadne vás jiný způsob?
Cykly (opakování) jsou běžně používané konstrukty programovacích jazyků.
Instrukce k vytvoření obrázku by mohly vypadat například takto:
Inspirace: Code.org Unplugged – Graph Paper Programming
Cíl: Dokázat správně zapsat postup vedoucí k vytvoření stavby z LEGO kostek.
Nástroje: LEGO, papír, pero
Náročnost:
Čas: 30 minut
Za splnění úkolu získáš max.:
Startovač: Zkuste společně napsat postup stavby na obrázku vpravo.
Postup:
Postavte stavbu z libovolných LEGO® kostek.
Použijte maximálně 10 kostek. (~5 kostek)
Bloky konstrukce musí být propojeny! Bloky nesmí být volné!
Inspirace: CS Principles Curriculum Guide
Cíl: Nalézt pravidla, podle kterých je možné třídit jednotlivé objekty.
Nástroje: dokument příšerky_nůžky.pdf
Náročnost:
Čas: 15 minut
Za splnění úkolu získáš max.:
Startovač: V čem se mohou lišit dva lidé?
Postup:
Všechny příšerky je možné třídit podle určitých pravidel.
Podle jakého pravidla jsou roztříděny nyní?
Stáhnout PDF soubor příšerky_nůžky
Najděte jiná pravidla, podle kterých je možné příšerky na obrázku rozřadit do skupin. Své návrhy uskutečněte s nastříhanými příšerkami.
V jakých dalších vlastnostech se může příšerka od příšerky ještě lišit? Určitě příjdete alespoň na dalších 5 vlastností.
Inspirace: Bobřík informatiky - Potvůrky (Tomcsányiová)
Při návrhu algoritmu, resp. jeho zápisu je třeba rozdělit problém na více jednodušších, které je možné jednoduše řešit, zapsat a následovat.
První obtíže s tvorbou algoritmu podle pravidel jste si vyzkoušeli na vlastní kůži. Bez přesného popisu jednotlivých kroků to jde vcelku špatně.
Může se také stát, že uvíznete na mrtvé bodě - tzv. "stuck".
Potom je nutné postup přeformulovat.
Vyzkoušeli jste si také testování programů vašich spolužáků... vžili jste se do kůže "živého" procesoru.
Za splnění této části bloku – nasbírání nejméně 7 získáváš Unplugged stikerku
Naprogramovat robota pomocí grafických ikon.
Využívat základní konstrukce: sekvence příkazů, podprogramy (procedury).
Odladit program, vyhledat a opravit chyby.
Být schopný přeložit program z ikonického vyjádření do zápisu ve stylu programovacího jazyka.
Lightbot (chodící robůtek) je programovatelný celkem pěti příkazy:
Cílem hry je provést Lightbota bludištěm a rozsvítit všechny modré dlaždice v bludišti.
Je to kus programu, který můžeme volat znovu a znovu a zase znovu na jiném místě programu.
Často se opakující příkazy je vhodné "ukrýt" do tzv. funkce/procedury.
V hlavním programu pak stačí funkci volat... ta se postará o to, aby se všechny příkazy (v ní ukryté) vykonaly.
Mezi funkcí a procedurou je rozdíl. My ho ale nebudeme zkoumat. Zatím nám stačí informace, že funkce i procedury jsou nějaké podprogramy.
Cíl: Najít správnou sekvenci příkazů, která provede robota bludištěm.
Nástroje: Lightbot
Náročnost:
Čas: 60 minut
Za splnění úkolu získáš max.:
Zadání:
Dohrajte úspěšně všech 20 levelů Lightbota (Hodina kódu).
Vytvořený funkční program z finálních úrovní všech tří sekcí si vyfoťte (PrintScreen). Tyto programy budete potřebovat k domácí práci zadané v dokumentu lightbot.pdf.
Za splnění domácího úkolu (Přepsání finálního kódu na slovní příkazy) získaš další 1 .
Během tvorby správné sekvence příkazů jste museli mnohokrát hledat v kódu chyby a také je opravovat.
Proto si všichni zasloužíte stickerku Debugger I. úrovně.
Cíl: Najít správnou sekvenci příkazů, která provede robota bludištěm.
Nástroje: Lightbot 2.0
Náročnost:
Čas: 60 minut
Za splnění úkolu získáš max.:
Zadání:
Dohrajte úspěšně alespoň 4 levely v sekci "Conditionals" – "Podmínky" Lightbota 2.0 (Armor Games).
Dohrajte alespoň 4 levely v sekci "Expert" Lightbota 2.0 (Armor Games).
Cíl: Navrhnout funkční level bludiště pro ostatní hráče.
Nástroje: Lightbot 2.0, Návod k Lightbot 2
Náročnost:
Čas: 60 minut
Za splnění úkolu získáš max.:
Zadání:
Ve verzi Lightbot 2.0 (Armor Games) navrhni v "Level editoru" pro své spolužáky vlastní bludiště.
Zahrajte si level vytvořený spolužákem.
Vyzkoušeli jste si vytvořit program pomocí příkazů ve formě grafických ikon.
Důležitou součástí tvorby bylo nalézt opakující se sekvence. Tyto sekvence uzavřít do tzv. podprogramů, které lze ve vhodném okamžiku volat v hlavním programu.
Dalším, důležitým pracovním postupem, který jste si vyzkoušeli, bylo testování funkčnosti programu a odstraňování případných chyb, tzv. "debugging".
V domácím úkolu jste si vyzkoušeli, jak by mohl program finálního levelu každé ze tří sekcí Lightbota vypadat v zápisu skutečného programovacího jazyku.
Za splnění této části bloku – nasbírání nejméně 7 získáváš Lightbot stikerku
Vytvářet efektivní způsoby řešení. Využívat proměnné, podprogramy, podprogramy s parametry, cykly s počtem opakování.
Programovat "želvičku" tak, aby vykonala zadanou úlohu co nejefektivněji... s minimálním množstvím použitých bloků.
Celá praktická část bloku je vytvořena v prostředí Code.org.
V kurzu se objevují již známé pojmy příkaz, cyklus a podprogram, ale také dva nové:
Symbolické jméno odkazující do paměti na místo, kde dočasně uchováváme určitou hodnotu, kterou symbolické jméno v programu zastupuje.
Vždy vhodně pojmenujte, ať je jasné, co se v proměnné skrývá. Název musí začínat písmenem anglické abecedy. Název nemá obsahovat mezery. Název nesmí být shodný se slovy vyhrazenými programovacímu jazyku.
Zvláštní instrukce pro funkce.
Funkce např. kreslí čtverec. My chceme, aby měl každý čtverec jinou délku strany. Přidáme funkci parametr délka.
Startovač: Pamatuješ si ještě, co je to podprogram (funkce/procedura)? K čemu se využívá?
OdpověďParametry funkce si můžeme představit na následujících příkladech:
1. V každém dílu seriálu Sheldon ťuká na dveře. Mohli bychom vytvořit funkci ťukání s parametrem jméno. Jméno je jediný parametr ťukání, který se mění.
2. Znáte nekonečnou písničku "Starý farmář farmu měl?" (angl. orig. Old MacDonald had a farm)
Další využití bychom našli v unplugged cvičení s příšerkami. Podprogram by vytvářel příšerky s parametry barva, tvar, počet očí, vousy, atd.
Cíl: Vytvořit program, který vyřeší zadanou úlohu v lekci kurzu pomocí vizuálního programování s využitím Blockly.
Nástroje: Code.org
Náročnost:
Čas: 60 minut na lekci
Za splnění každé z 5 lekcí v kurzu získáš max.:
Startovač: Přiřaď sekvenci příkazů
Postup:
V Kurzu jste si vyzkoušeli pomocí vizuálního programovacího jazyka základy "block-based" programování, včetně práce s proměnnou, for cyklem, funkcí (podprogramem).
Víme již k čemu se využívá proměnná, jak vhodně upravit program, pokud se v něm na různých místech stále opakují stejné příkazy. Víme také, jaké výhody má využití funkcí (podprogramů).
Za splnění kurzu na Code.org – nasbírání nejméně 7 získáváš Code.org stikerku
V druhém bloku jste si vyzkoušeli unplugged metody, které vás přivedly k trochu jinému myšlení, než na které jste byli dostud zvyklí.
Programovali jste jak na papíru, tak ve vizuálním programovacím jazyku v Blockly.
Rozložili jste problém na jednotlivé části, našli v nich určitý vzor.
Pochopili jsme, co se skrývá pod pojmy příkaz, sekvence příkazů, cyklus, funkce, proměnná.
Své programy jste testovali, odladili – našli chyby, a opravili je.
Pokud jsi zatím nasbíral méně než 26 získáváš Code Fighter stikerku
Porozumět a dokázat aplikovat základy programovacích technik ve Scratchi, využívat příkaz, cyklus, podmínku (větvení), události, paralelizmus, proměnnou, podprogram a podprogram s parametrem.
Seznámit se tvorbou animace a apalikovat často používané procesy v animování včetně interaktivních prvků.
Dokázat navrhnout vlastní algoritmy řešící problémové úlohy, a pomocí bloků sestavit program, který úlohy vyřeší.
Dokázat vysvětlit, co hotový program dělá.
Dokázat opravit hotový program podle nového požadavku.
Scratch je vizuální programovací jazyk, tzv. "block-based" jazyk, ve kterém se naučíte základy programování. Je určen především dětem vašeho věku, ale dá se v něm tvořit i v dospělosti.
Obrovskou výhodou Scratche je několikamilionová základna uživatelů, jejíž členové sdílí své práce, radí ostatním a hodnotí jejich tvorbu.
Pracujte ve dvojicích.
Tak pojďme na to!
Cíl: Vytvořit účet; seznámit se s prostředím Scratch.
Pochopit, jak pracovat s proměnnými, cykly, podmínkami, spojovat řetězce textu ve Scratchi.
Náročnost:
Čas: 100 minut
Za splnění lekce v kurzu získáš max.:
Startovač: Co se skrývá pod zkratkou UI?
Postup:
Vytvořte si účet na
scratch.mit.edu.
Přihlaste se do Scratche.
Prostudujte ve dvojici prostředí Scratche online.
K práci si stáhněte soubor
UI Scratche.pdf
Najděte bloky podle pokynů níže, přesuňte je do "prostoru pro scénáře". Využívejte "Bloku pomoci" – otazníku z horní lišty Scratche. V jakých multiblocích se nachází?
Ze zadaných bloků vytvoř program.
Na procvičování základních dovedností je dobré využívat Scratch karty.
Za úspěšné zvládnutí testu (4/5 bodů) v Plickers získáváš Hack stikerku
Cíl: Dokázat vytvořit elementární programy, které pracují s pozicí, směry a pohybem objektů.
Náročnost:
Čas: 40 minut
Za splnění lekce v kurzu získáš max.:
Startovač: Ve scratch.mit.edu prozkoumejte multibloky v záložce "Bloky" nápovědy.
Postup: V každé výzvě je popsáno, co by měl konkrétní program dělat.
K vytvoření programu máte k dispozici jen určité bloky.
Při pohybu s kocourem bude kocour neustále sdělovat jeho pozici (x; y souřadnice).
Link na projekt: scratch.mit.edu/projects/211072244/
Kocour sdělí jeho pozici (předchozí výzva) a také směr. Směr zvolte náhodný.
Link na projekt: scratch.mit.edu/projects/211075732/
Kocour změní svou polohu tak, aby pohyb začínal nahoře uprostřed plochy. Poté začne padat dolů.
Když narazí na dolní okraj, odrazí se a pohybuje se svisle nahoru.
Když narazí na horní okraj, odrazí se a znovu pokračuje směrem dolů... a tak stále dokola.
Link na projekt: scratch.mit.edu/projects/211590564/
Modrý míč (jiný kostým) se bude pohybovat z náhodné pozice v náhodném směru. Při pohybu se bude náhodně otáčet. Pokud se dotkne okraje, odrazí se.
Základem kódu je předchozí výzva.
Až kód správně sestavíte, zkuste měnit číselné hodnoty kroků, měňte intervaly náhodného čísla a pozorujte změny v pohybu míče. Vyzkoušejte také záporná čísla.
Link na projekt: scratch.mit.edu/projects/261517682/
Myš (jiný kostým) bude cupitat za kurzorem myši. Svůj pohyb začne přesně uprostřed plochy.
Až kód správně sestavíte, zkuste měnit číselné hodnoty počtu kroků.
Link na projekt: scratch.mit.edu/projects/211595292/
V této výzvě již bude mít možnost programovat 2 objekty. Myš se bude pohybovat náhodným směrem (jako ve 4. výzvě). Kočka bude jen stát.
Když se myš dotkne kočky, řekne kočka nebo myš "au-au".
Nezapomeňte myš zmenšit.
Link na projekt: scratch.mit.edu/projects/211610702/
Práce ve dvojici.
Dvě postavy si povídají. Rozhovor je veden v pořadí podle fialových bloků na obrázku níže. Mezi jednolivými větami jsou sekundové prodlevy.
K řízení rozhovoru se využívají zprávy. Určité bloky nejdříve přeneste pro druhý objekt.
Link na projekt: scratch.mit.edu/projects/211636079/
Cíl: Vytvořit jednoduchou hru podle pokynů.
Náročnost:
Čas: 80 minut
Za splnění lekce v kurzu získáš max.:
Startovač: Co již ve Scratchi ovládáme? Prostudujme společně nové dovednosti – nový blok, událost, náhoda.
Postup:
Pracujte ve dvojici.
Budeme kombinovat vše, s čím jsme ve Scratchi zatím pracovali a přidáme něco navíc.
Objekt kocour bude mít dva kostýmy – kocour a duch.
Druhý objekt bude míč.
Vždy se začíná s kostýmem kocoura, a to na souřadnicích [0;0]. Míč začíná na souřadnicích [náhodně;180].
Míč bude létat náhodnou rychlostí a otáčet se vpravo i vlevo o náhodný úhel.
Kocour následuje kurzor myši a snaží se vyhnout letícímu míči. Pokud míč kocoura zasáhne, změní se kostým kocoura na ducha.
Oba objekty zmenšete, abyste měli větší prostor k manévrování.
Link na projekt: scratch.mit.edu/projects/212124156
Pokud míč zasáhne kocoura, rozešle řídící zprávu HIT. Až kocour obdrží HIT, změní kostým na ducha.
Po změně kostýmu dojde ke změně pozadí, skryje se duch i míč
Po 0,2 sekundy je vypíše po jednotlivých písmenech "GAME OVER" a ukončí se program.
K výpisu použijte další objekty.
Link na projekt: scratch.mit.edu/projects/212125456/
Na úplný začátek hry přidáme odpočet... 3 – 2 – 1.
Přidáme další objekt (číslo) který bude mít 3 kostýmy – 3, 2 a 1.
Každé číslo bude mít efekt mizení. A protože se u všech tří čísel opakuje stejně, na mizení vytvoříme blok "mizení" přidáním nového bloku.
Pozor! Pro správnou funkčnost hry budou nutné i další úpravy.
Hudbu vybíráme v záložce Zvuky.
Pokud chcete, aby hudba hrála po celou dobu, je nejlepší variantou přidat ji na scénu, nikoliv na objekt.
Pohyb kočky zajistěte tlačítky W S A D na klávesnici.
Cíl: Na základě předchozích znalostí a nových poznatků stavby kódu sestavit kód her (soutěží), které jsou založené na náhodě.
Náročnost:
Čas: 90 minut
Za splnění lekce v kurzu získáš max.:
Startovač: Kolik variant může nastat při hodu mincí? Jak může probíhat scénář hry?
Postup:
Hráč se rozhodne, co padne – panna nebo orel.
Necháte počítač "hodit mincí".
Link na projekt: scratch.mit.edu/projects/212360653/
Vaším úkolem je prostudovat jednotlivé bloky a následně správně sestavit.
Přidejte tlačítko na nový hod.
Startovač: Myslím si číslo od 1 do 20. Na jaké číslo myslím? Naplánujte strategii uhodnutí čísla.
Postup: Každý člověk by ono číslo uhodl na maximálně 20 pokusů.
Pokud mu ale pomůžeme a řekneme, zda je ono číslo větší nebo menší, počet pokusů se rapidně sníží.
Počítač si bude myslet číslo, které musíte uhodnout. Základní program je již hotový.
Vaším úkolem je program prostudovat a postupně upravit podle následujících požadavků:
Link na projekt: scratch.mit.edu/projects/212334975/
Cíl: Umět pracovat s proměnnou ve výpočtech (základní matematické operace).
Náročnost:
Čas: 60 minut
Za splnění lekce v kurzu získáš max.:
Startovač: Jak obecně pracuje jednoduchá kalkulačka? Ve dvojici navrhněte jednoduchý princip.
Postup: Ve dvojici vytvořte funkční kalkulačku, která dokáže sečíst, odečíst, vynásobit nebo vydělit dvě zadaná čísla. Opakující se sekvence příkazů řešte podprogramem.
Za vytvoření vlastního programu, který jste zřejmě mnohokrát opravovali, si zasloužíte stikerku Debugger II. úrovně.
Cíl:
Náročnost:
Čas: 120 minut
Za splnění lekce v kurzu získáš max.:
Startovač: Jak se nastavuje časový limit? Jak fungují kuchyňské minutky?
Postup: Vytvořte časový limit / odpočet.
Poznámka: Časový limit / odpočet se dá naprogramovat jednoduše pomocí takzvané rekurze. Vyzkoušíme si v lekci s parametry v podprogramech.
Link na projekt: scratch.mit.edu/projects/213084759/
Startovač: Jakou společnou vlastnost mají všechna sudá čísla? Jakou mají všechna lichá?
Postup: Vytvořte jednoduchý program, který rozezná, zda je číslo sudé nebo liché.
Postup: Soutěž spočívá v hádání, zda je číslo sudé nebo liché.
Vaším úkolem je vytvořit program podle následujících požadavků:
Link na projekt: scratch.mit.edu/projects/213220097/
Náročnost:
Postup: Počítač bude generovat náhodné příklady na násobení jednociferného a dvojciferného přirozeného čísla.
Vaším úkolem je vytvořit program podle následujících požadavků:
Link na projekt: scratch.mit.edu/projects/213650921/
Za vytvoření programu získáváte oboustrannou top kartu "HardCore"
Cíl: Aplikovat znalosti z oblasti podprogramů a podprogramů s parametry (Code.org) ve vlastním kódu.
V programech využívat rekurzivní algoritmy.
Náročnost:
Čas: 180 minut
Za splnění lekce v kurzu získáš max.:
Startovač: Co je, a k čemu slouží podprogram?
Postup: Vytvořte program, který bude vykreslovat n-úhelník.
Počet stan, tloušťku pera a také délku strany bude možné nastavovat.
Hlavní program by měl vypadat takto:
Postup: Popište, jak fungují jednotlivé části kódu.
Link na projekt: scratch.mit.edu/projects/213175381/
Náročnost:
Startovač: Kdy by měla rekurze v takovém případě skončit? Jaké parametry by bylo vhodné volit?
Postup: Vytvořte program, který bude:
V programu využijte volání podprogramu s parametry počtu stran a barvy. Využijte rekurzi.
Za vytvoření programu pomocí rekurze získáváš oboustrannou top kartu "HardCore".
Cíl: Seznámit se s tvorbou používaných herních prvků.
Náročnost:
Čas: 180 minut
Za splnění lekce v kurzu získáš max.:
Startovač: Skok, kolize, změna hráče, pohyb pozadí, další level... herní prvky, bez kterých se neobejdete.
Postup: Vytvořte program, který zajistí změnu mezi 4 postavami.
Postavy se budou měnit po stisknutí kláves 1 – 4.
Postup: Vytvořte efekt pohybu postavy. Skutečná pozice se však měnit nebude. Bude se měnit pouze pozadí.
Link na projekt: scratch.mit.edu/projects/213499925/
Postup: Naučte postavu z paralaxu skákat (mezerník). Přidejte hudbu na pozadí.
Postup: Naučte postavu z paralaxu Ninja pohyb. Přidejte zvuky skoku a speciálního pohybu.
Kostým pohybu vytvořte vlastní.
Postup: Z nebe budou padat melouny z různých míst v různých časových intervalech, kterým se musíte vyhnout.
Proti postavě se budou v ruzném časovém intervalu objevovat banány.
Každý dotyk s enemákem (melounem, banánem) bude postavě ubírat život.
Pokud se život dostane na nulovou hranici, nastane konec hry.
Postup: Po 20 metrech běhu dojde k přechodu do vyššího levelu.
Cíl: Vytvořte vlastní projekt: výukový program, interaktivní příběh nebo hru v prostředí Scratch.
Náročnost:
Čas: 120 minut
Za splnění lekce v kurzu získáš max.:
Startovač: Co všechno již ve Scratchi umíte?
Postup: Můžete pracovat ve dvojicích.
Pokud bude váš projekt ohodnocen Dr. Scratchem jako Master! (alespoň 5 ze 7 analyzovaných prvků na levelu 3)
získáte třetí oboustrannou top kartu "HardCore".
V průběhu třetího bloku jste se připomněli, co je to proměnná, cyklus, podprogram.
Naučili jste se, jak s nimi ve Scratchi pracovat, jak spojovat textové řetězce a proměnnou, jak rozvětvit a ovládat proces a spoustu dalších.
Naučili jste se rozložit velký problém na menší, najít spojitosti a najít postup, jak je pomocí algoritmizace a programovacích schopností vyřešit.
Seznámili jste se s apalikací často používaných animačních procesů. Naučili jste se také takové animace, včetně interaktivních prvků tvořit.
Nyní máte na výběr. Buď zůstat u Scratche a jemu podobných "block-based" orientovaných vizuálních jazyků nebo se vrhnout do víru textově orientovaných programovacích jazyků. Doporučuji vám první variantu, ve které
nemusíte hodiny hledat, kde jste zapomněli uzavřít závorku nebo napsat středník.
Pokud jsi zatím nasbíral méně než 46 získáváš Code Fighter 2 stikerku
Dokázat přečíst hotový vývojový diagram a chápat, jaký problém řeší.
Dokázat upravit vývojový diagram podle vlastních potřeb.
Dokázat vytvořit vlastní vývojový diagram řešící zadaný problém.
Vývojový diagram (angl. Flowchart) je jedna z možností, jakou lze budovat a prezentovat algoritmus. Jedná se o grafickou reprezentaci jednotlivých kroků, která se řídí určitými pravidly.
Tento nástroj dává programátorovi jasnější představu o tom, jak by mohl program sestavit. Navíc, správně sestavený vývojový diagram zaručuje plnění podmínek pro tvorbu algoritmu (vlastností algoritmu).
Diagramy se skládají ze spojovacích šipek (spojnic) a několika druhů obrazců.
Šipky (spojnice) představují směr toku dat; jak jsou data zpracovávány. Spojují vzájemně jednotlivé obrazce.
Každý druh obrazce (tvar) představuje specifickou činnost.
Co který obrazec znamená, co se může, co se nemůže?
Symbol | Název | Popis |
---|---|---|
začátek, konec | Krajní symboly diagramu | |
vstup, výstup | Zadáváme (načítáme) vstupní hodnoty, vypisujeme (tiskneme, zobrazujeme) výstupní hodnoty | |
příkaz, zpracování | Definujeme příkazy, přiřazujeme... co se má vykonat... změna dat | |
podmínka, rozhodování | Na základu splnění podmínky dojde k rozhodnutí. Buď je podmínka splněna - jeden směr, nebo není splněna - druhý směr | |
cyklus s pevným počtem opakování | Cyklus se opakuje tolikrát, kolikrát nastavíme (než splní zadanou podmínku). Jinak známý jako "for cyklus" (for loop). |
|
podprogram | Jinde definovaná činnost (podprogram), kterou voláme. |
Povšimněte si podobnosti Diagramu na míchaná vejce s obrázkem Představa algoritmu - práce s daty.
Stáhnout dokument "Diagramy_symboly.pdf"
Cíl: Dokázat správně přečíst vývojový diagram – popsat svými slovy jednotlivé kroky i celý proces.
Vytvořit jednoduchý diagram.
Nástroje: vývojové diagramy, Diagramy_symboly.pdf, papír, pero
Náročnost:
Čas: 20 minut
Za splnění úkolu získáš max.:
Postup:
Zkuste přečíst vývojové diagramy na obrázcích vpravo.
Zapisujte v bodech postupné kroky, které jsou v diagramu prezentovány.
Napište, k jakému účelu by mohl sloužit program, který by byl napsán podle tohoto diagramu.
Vytvořte vývojový diagram, který povede k vyčištění zubů.
Zkuste postup rozdělit na co nejjednodušší úkony tak, aby skutečně došlo k vyčištění zubů.
Vytvořte vývojový diagram, který povede k přechodu z jednoho pokoje do druhého.
Mezi oběma pokoji jsou dveře. Vy máte u sebe svazek různých klíčů.
Cíl: Dokázat upravit diagram podle požadavků.
Nástroje: PS Diagram, soubory 1PS.zip, 2PS.zip a 3PS.zip
Náročnost:
Čas: 45 minut
Za splnění úkolů získáš max.: (1 za každý příklad)
Postup:
V PS Diagramu otevřete soubor 1PS.zip
Někdo zničil vývojový diagram, který měl počítat a vypisovat obsah obdélníka podle zadaných délek stran.
Vaším úkolem je:
Upravený vývojový diagram uložte.
V PS Diagramu otevřete soubor 2PS.zip
Někdo se opět "hrabal" ve vývojovém diagramu, takže nefunguje správně.
Vaším úkolem je:
Upravený vývojový diagram uložte.
V PS Diagramu otevřete soubor 3PS.zip
Vaším úkolem je:
Cíl: Vytvořit vývojový diagram podle požadavku.
Nástroje: PS Diagram
Náročnost:
Čas: 60 minut
Za splnění úkolů získáš max.:
Zadání:
V programu PS Diagram vytvořte vývojový diagram, který...
Správnost vašeho návrhu 2. příkladu (PS6.psdiagram) můžete vyzkoušet přepsáním vývojového diagramu do Scratche.
Během tvorby vývojových diagramů jste museli mnohokrát hledat chyby a také je opravovat.
Proto si všichni zasloužíte stickerku Debugger III. úrovně.
Cíl: Dokázat vytvořit vlastní vývojový diagram.
Nástroje: PS Diagram, papír, tužka
Náročnost:
Čas: 60 minut
Za splnění úkolu získáš max.:
Postup:
Vaše želvička má zanechat stopu ve tvaru pěticípé hvězdy (na obrázku).
V PS Diagram vytvořte vývojový diagram, který dovede želvičku k cíli (nakreslení obrázku).
RadaSprávnost vašeho algoritmu můžete vyzkoušet přepsáním vývojového diagramu do Scratche, případně na webu Code.org.
Blok vývojové diagramy jste se naučili orientovat se v symbolice diagramů, dále, jak přečíst hotový vývojový diagram, jaká jsou pravidla při vytváření vývojových diagramů.
Naučili jste se upravit nefunkční diagram, případně ho dále upravit, rozšířit.
Vytvořili jste vlastní vývojové diagramy, a ty poté také zapsali jako program.
Za splnění 4. bloku výuky – nasbírání nejméně 7 získáváš Flowchart stikerku
Pokud se vám nepodařilo nasbírat magických 53 , zasloužíte si určitě stikerku "Code Fighter" 3. úrovně.
Znát a vyzkoušet si alespoň další dva webové projekty nebo programy, které se zabývají výukou programování.
Snap! BYOB
Snap! je ve své podstatě velmi podobný Scratchi. Programujete skládáním bloků.
Pokud vám nevyhovují anglické příkazy, pak na tlačítku "nastavení – language" si můžete změnit angličtinu na češtinu.
Google Blockly
Blockly je rozhraní pro programování aplikací využívající vizuální programování. Vedle skádajících bloků dochází také ke generování do jednoho z programovacích jazyků Python, JavaScript, Dart, Lua, PHP.
Blockly je již náročnější a kompletně v angličtině. Například výuka programování na Code.org využívá právě Blockly.
Menším projektem na výuku programování využívající Blockly jsou
Blockly Games.
CodeCombat
CodeCombat je online RPG hra, která učí programovací jazyk Python nebo Javascript. Abyste mohli postupovat do dalších levelů hry, musíte prokázat své znalosti psaním kódu. Hra je dostatečně návodná... nepotřebujete ani učitele.
Vyzkoušet Code CombatScratch 3.0
Třetí verze Scratche, která by měla oficiálně vyjít v létě 2018. Verze 3.0 by měla být kompletně předělaná do HTML5, takže nebude potřeba mít povolený Flash Player.
Jak vypadá nové prostředí a jak se v něm pracuje si můžete vyzkoušet (zatím pouze v angličtině).
Kodu Game Lab
Kodu je prostředí 3D herního světa. Pokud jste si někdy chtěli vytvořit hru "Xboxovku", je toto ideální prostředek pro začátek. Tvoříte (programujete) pomocí jednoduchého vizuálního programovacího jazyka.
Stáhnout Kodu Game Lab Stáhnout češtinuStencyl
Stencyl je další z řady block-based programovacích nástrojů na tvorbu her.
Tvorba her ve Stencyl je však složitější – velká challenge.
Hakitzu Battles
Code Warriors: Hakitzu Battles je hra pro Android nebo iOS, která učí programovací jazyk Javascript. Tato tahová strategie je založená na bitvách obřích robotů, které si upravujete. Tajemstvím ovládnutí bitevního pole vaším robotem je kód, který robot následuje. Čím kvalitnější kód je, tím vyšší šanci na vítěztví máte.
Vyzkoušet Code Warriors: Hakitzu BattlesV závěru výuky jsme se přiblížili k zápisu používaných programovacích jazyků. Weby (odkazy níže) se zabývají již konkrétními programovacími jazyky a programováním obecně.
Pokud vás síla programování nadchla, a chtěli byste se dále zdokonalovat, můžete pokračovat na odkazech níže.
Youtube kanál s tutoriály, které se zabývají programováním v Javě, C++, C# a PHP. Kromě jiného vysvětluje základní principy programování.
Pustit YoutubeWebové stránky, které se zabývají programovacími jazyky, ale také novinkami ze světa harwaru a softwaru.
Přejít na ITnetworkNevíte, co si přát k Vánocům?
Jednočipový programovatelný počítač. Uživatelská podpora na velmi vysoké úrovni.
Více o ArduinuAlgoritmus
= postup, který řeší určitou skupinu problémů.
Cyklus = Opakování
= pokud chceme v programu něco udělat 10×, nebudeme psát tento kód 10× pod sebe, ale vložíme ho do cyklu.
Funkce = Podprogram
= část programu, kterou lze opakovaně použít – volat v různých místech programu, ale klidně i v samotném podprogramu. Funkce může mít parametry. Funkce vrací nějaký výsledek, tím se liší od procedury.
Podmínka = Větvení
= vytváříme pomocí KDYŽ (IF), za kterým následuje logický výraz – je nebo není větší, menší, rovno a nebo v různých kombinacích. Pokud je výraz pravdivý, provede se jedna větev, pokud je výraz nepravdivý, provede se druhá větev.
Podprogram
= dovoluje dělit velký problém na menší (dekompozice). V programu jsou podprogramy volány. Příkladem podprogramu je funkce nebo procedura.
Procedura = Podprogram
= procedura je speciální druh funkce, ale nevrací žádný výsledek.
Procesor
= komponenta počítače, která čte instrukce programu a vykonává je.
Program
= algoritmus přepsaný v programovacím jazyku.
Programátor
= člověk, který vytváří programy.
Programovací jazyk
= prostředek, pomocí kterého programátor program vytváří.
Proměnná
= symbolické jméno (identifikátor), ve kterém se v probíhajícím programu ukládají určitá data.
Vývojový diagram = jedna z možností, jak sestavit fungující algoritmus.