Programování na základce

Úvod do algoritmizace a programování


Úroveň: začátečník


Začít

Plán výuky

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.

plan
Obrázek: Plán výuky

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í.

Časová dotace (počet vyučovacích hodin)

1 základní pojmy
2 unplugged metody
10 Lightbot & Code.org
20 Scratch
4 vývojové diagramy
4 další programy
vyuka

"Chybové hlášení je nejplodnější pomstou počítače."

Poslední důsledek, Murphyho zákon

Odměny:

Za splnění úkolů získáš v každé sekci určitý počet puzzle dílků [].
Po úspěšném splnění každého bloku (po získání určitého počtů dílků puzzle za splnění úkolů) obdržíš stikerku.
Po druhém, třetím a čtvrtém bloku budete mít šanci získat 3 hrací karty. Musíte však mít dostatečný počet .
Ve třetím bloku můžete získat unikátní HC karty za vypracování obtížných úkolů ve Scratchi.

Důležité pojmy ze světa algoritmů a programování

Cíl:

Porozumět základním pojmům z oblasti algoritmizace a programování.
Ať víme, o čem se vlastně bavíme.


Algoritmus

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).

plan
Obrázek: Představa algoritmu - práce s daty

Vlastnosti algoritmu

Algoritmus má určité vlastnosti:

Výslednost

Vždy vyjde nějaký výsledek, který je v souladu se zadáním.

Konečnost

Musí skončit!

Jednoduchost

Je složen z co nejjednodušších jasných kroků, které se snadno provedou.

(Před)určenost, tzv. determinovanost

Po každém provedeném kroku je jasné, jaký krok bude dále proveden, anebo, zda se ukončí (konečnost).

Univerzálnost

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ý.

Úspornost

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í.

Algoritmus přátelství – Teorie velkého třesku


Program & programování

Program

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.

Programování

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.

Jak se program vytváří? Jak se programuje?

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í.

plan
Obrázek: Cyklus tvorby programu

Programovací jazyk

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).

Vizualizace vlivu programovacích jazyků


Vývojový diagram

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ěření

Ověř si získané znalosti testem nebo vytvořením myšlenkové (pojmové) mapy.

plickers coggle bubbl

Shrnutí 1. bloku

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.

plan

Za splnění bloku (min. 7/10 správných odpovědí v Plickers) získáváš NowKnowHow stikerku

Unplugged (výuka bez počítače)

Cíl:

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ů.


Origami

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:

  • Příkaz e = přehni (a, b) znamená: e je nová hrana vzniklá přehnutím hrany a k hraně b.
  • Příkaz f = přehni (a, e) znamená: f je nová hrana vzniklá přehnutím hrany a k hraně e.

prehni

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)

prehni-odpovedi

Odpověď

Postup:

  1. Vyberte si velmi jednoduchou skládačku z papíru. Na fotce je již náročný příklad.
  2. Zapisujte v krocích (zkuste vymyslet vlastní), jak se má při stavbě postupovat, aby ostatní byli schopní skládačku správně složit. Nekreslete!
  3. Během popisu je důležité, abyste postup skládání rozfázovali na velmi jednoduché kroky. A také abyste v popisu byli opravdu přesní.
  4. Příklady na vyzkoušení

    Těžká varianta

    origami
    Obrázek: Origami "Nebe-Peklo-Ráj"

    Lehká varianta

    origami2
    Obrázek: Origami "Letadlo"

Inspirace: Bobřík informatiky (The Beaver 2012)

Kód bitmapového obrázku

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?

O

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í:

povely

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"

  1. Do první rastrové mřížky (12×12) nakreslete vlastní obrázek.
  2. Podle nákresu napište kód k jeho vytvoření.
  3. Kód odstřihněte a předejte spolužákovi.
  4. Podle kódu spolužáka vykreslete do druhé mřížky (12×12) jeho obrázek.
  5. Vytvořené obrázky vzájemně porovnejte. Jsou stejné? Kde je případná chyba - v zápisu nebo v interpretaci?

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ů.

Příklad

bitmapa

Instrukce k vytvoření obrázku by mohly vypadat například takto:

instrukce
Obrázek: Instrukce k vytvoření obrázku space-invadera

Inspirace: Code.org Unplugged – Graph Paper Programming

LEGO®

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é!

  1. Nekreslete!
  2. Vyfoťte výsledek.
  3. Postup stavby popište na papír tak, aby podle vašeho popisu kdokoliv postavil úplně stejnou stavbu. Nekreslete!
  4. Během zápisu je důležité, abyste popis stavby rozfázovali na velmi jednoduché kroky, a abyste v popisu byli opravdu přesní.
  5. Stavbu zase rozeberte na jednotlivé kostky.
  6. Nyní se pokuste postavit konstrukci podle plánu postupu vašeho spolužáka

Rada

Inspirace: CS Principles Curriculum Guide

Příklad

instrukce
Obrázek: PrintScreen LEGO Digital Designer

Skupina příšerek

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í.

Zadané příšerky

priserky

Inspirace: Bobřík informatiky - Potvůrky (Tomcsányiová)

Shrnutí 2. bloku - unplugged

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.

unplugged-stick

Za splnění této části bloku – nasbírání nejméně 7 získáváš Unplugged stikerku

Lightbot

Cíl:

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.


Odkaz na program:

Lightbot™

Lightbot (light verze) pod hlavičkou Hour of Code.

Odkaz na mutaci programu:

Lightbot 2.0

Lightbot verze 2.0 od Armor Games.


Co se po vás v Lightbotovi chce?

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.


Nový pojem

Podprogram = Funkce/Procedura/Metoda

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.

fce
Obrázek: Funkce

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.

Úkol:

Robot vykonává následující program:

fce-ukol

Kolik metrů robot celkem urazí?

Odpověď

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ě.

debug1

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.

Shrnutí 2. bloku – Lightbot

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.

lightbot-stick

Za splnění této části bloku – nasbírání nejméně 7 získáváš Lightbot stikerku

Code.org

Cíl:

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.


Nové pojmy

V kurzu se objevují již známé pojmy příkaz, cyklus a podprogram, ale také dva nové:

Proměnná

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.

prom
Obrázek: Proměnná

Parametry funkce

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.

Parametry funkce

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í.

Sheldon knocking – Teorie velkého třesku


2. Znáte nekonečnou písničku "Starý farmář farmu měl?" (angl. orig. Old MacDonald had a farm)

farm
Obrázek: Parametry funkce refrén


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.

Informace

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:

  1. Přejdi na adresu https://studio.code.org/sections/PLZLLJ
  2. Vyber své jméno.
  3. Přepiš svá utajená slova (z přihlašovacích údajů).
  4. V tomto kurzu budete pracovat ve dvojici, proto zaškrtněte "Mám partnera u počítače".
  5. Přihlaste se do kurzu.

Plán kurzu

plan_code
Obrázek: PrintScreen z webu https://studio.code.org/s/course4

Shrnutí 2. bloku – Code.org

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ů).

codestikerka

Za splnění kurzu na Code.org – nasbírání nejméně 7 získáváš Code.org stikerku

Shrnutí výuky 2. bloku

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.

codefighter

Pokud jsi zatím nasbíral méně než 26 získáváš Code Fighter stikerku

"Problém s programátorem je ten,
že nikdy nedokážete říct, co vlastně dělá,
dokud není pozdě."

Seymour Cray, otec superpočítačů

Za nasbíraných 26 a více získáváte oboustannou kartu "Ash".

Scratch

Cíl:

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.


Informace

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!

Účet, UI Scratche a seznámení s multibloky, pojmy

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ření účtu

Vytvořte si účet na scratch.mit.edu.
Přihlaste se do Scratche.

Uživatelské rozhraní Scratche

Prostudujte ve dvojici prostředí Scratche online.
K práci si stáhněte soubor UI Scratche.pdf


Nové a staronové pojmy

  1. Proměnná: scratch.mit.edu/projects/213704498/
  2. Cyklus: scratch.mit.edu/projects/213716175/
  3. Rozhodování: scratch.mit.edu/projects/213671545/
  4. Text a spojování řetězců: scratch.mit.edu/projects/213718066/

if
Obrázek: Rozhodování

Najděte bloky

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í?

  1. blok, který nastaví směr aktuálně vybrané postavy
  2. blok, který mění grafický efekt barvy na postavě
  3. blok, který nastaví barvu pera na červenou
  4. blok, který spustí bloky uvnitř tohoto bloku 6× (cyklus s 6ti opakováními)
  5. blok, který ohlásí zbytek po dělení čísla 144 číslem 15


Výzva "Šesti bloků"

Ze zadaných bloků vytvoř program.

Obrázek: PrintScreen scratch.mit.edu

Na procvičování základních dovedností je dobré využívat Scratch karty.

plickers hack

Za úspěšné zvládnutí testu (4/5 bodů) v Plickers získáváš Hack stikerku

Sedm výzev

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.

1. výzva – pozice

Při pohybu s kocourem bude kocour neustále sdělovat jeho pozici (x; y souřadnice).

Využitelné bloky

Link na projekt: scratch.mit.edu/projects/211072244/

2. výzva – směry

Kocour sdělí jeho pozici (předchozí výzva) a také směr. Směr zvolte náhodný.

Využitelné bloky

Link na projekt: scratch.mit.edu/projects/211075732/

3. výzva – pohyb

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.

Využitelné bloky

Link na projekt: scratch.mit.edu/projects/211590564/

4. výzva – náhodný pohyb

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.

Využitelné bloky

Link na projekt: scratch.mit.edu/projects/261517682/

5. výzva – následuj myš

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ů.

Využitelné bloky

Link na projekt: scratch.mit.edu/projects/211595292/

6. výzva – vnímání

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.

Využitelné bloky

Link na projekt: scratch.mit.edu/projects/211610702/

7. výzva – řízení akcí

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.

Využitelné bloky

Link na projekt: scratch.mit.edu/projects/211636079/

Herní prvky a hra

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:


Nové dovednosti

  1. Nový blok: scratch.mit.edu/projects/213784038/
  2. Událost: scratch.mit.edu/projects/213786508/
  3. Náhoda (random): scratch.mit.edu/projects/213789097/


1. část – základ

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

2. část – game over

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.

ukaz-skryj
Bloky pro skrytí/ukázání objektu a časovač

Link na projekt: scratch.mit.edu/projects/212125456/

3. část – odpočet

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.

countdown
Bloky pro vytvoření odpočtu.

4. část – hudba na pozadí a pohyb kurzorovými šipkami

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.

pohyb-tlacitko
Bloky pro pohyb stisknutí tlačítka.

Soutěže založené na náhodě

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.:

1. soutěž – Panna nebo orel?

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.

2. soutěž – Jaké číslo si myslím?

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ů:

  • Nastav jen 3 pokusy k hádání.
  • Pomocí spojení řetězců textu a proměnných uprav věty, např.: "Už máš jen ___ pokusy." nebo "Ano, číslo ___ je hledaným číslem."
  • Přidej odměnu za uhodnutí: nové pozadí, jiný kostým (animovaný), fanfáry, informaci o tom, jaké číslo bylo uhodnuto.
  • Přidej tlačítko "začít znovu".
  • Přidej kód, který bude počítat a také vypisovat zbývající počet pokusů - počet pokusů bude postupně klesat, a také jej budete později muset vypisovat.
  • Bonus: Přidej kód, který bude v závěrečném výpisu informovat o tom, na kolikátý pokus bylo číslo uhodnuto.

Link na projekt: scratch.mit.edu/projects/212334975/

Vytvoření kalkulačky

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ě. debug2


Hry s čísly

Cíl:

Náročnost:

Čas: 120 minut

Za splnění lekce v kurzu získáš max.:

Odpočet

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.

  • Vytvořte možnost zadání číselné hodnoty odpočtu... ideálně v podprogramu.
  • Vytvořte časový limit od nuly do zadané hodnoty.
  • Vytvořte odpočet od zadané hodnoty do nuly.
  • Přidej tlačítko "zadat znovu" po jehož stisknutí bude k dispozici nové zadání časové hodnoty a nový odpočet.

Link na projekt: scratch.mit.edu/projects/213084759/


Sudá – lichá

Startovač: Jakou společnou vlastnost mají všechna sudá čísla? Jakou mají všechna lichá?

1. program

Postup: Vytvořte jednoduchý program, který rozezná, zda je číslo sudé nebo liché.

  • Počítač se vás zeptá na číslo.
  • U vámi zadaného čísla rozhodne, zda je to číslo sudé nebo liché.
  • To vše v nekonečném počtu opakování.


2. program

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ů:

  • Počítač vygeneruje náhodné přirozené číslo do milionu.
  • Hráč určí, zda je číslo sudé stisknutím S nebo liché stisknutím L.
  • Pokud uhodne, získá za každou správnou odpověď 1 bod.
  • Soutěž bude na 10 příkladů.
  • Po desátém kole se vypíše skore hráče.

Link na projekt: scratch.mit.edu/projects/213220097/


HardCore mód – Math Master

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ů:

  • Za každý správný výsledek se získá 1 bod. Pokud hráč odpoví správně, dostává nový příklad.
  • Za každý špatný výsledek se ztratí 1 bod. Pokud hráč odpoví špatně, dostává nový příklad.
  • Celkem bude generováno 10 příkladů.
  • Přidej tlačítko "začít znovu".

Link na projekt: scratch.mit.edu/projects/213650921/


Za vytvoření programu získáváte oboustrannou top kartu "HardCore"

hc

Podprogramy s parametry

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?

1. úloha – n-úhelníky

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:

n-uhelnik

2. úloha – rekurze

rekurze

Postup: Popište, jak fungují jednotlivé části kódu.

Link na projekt: scratch.mit.edu/projects/213175381/


HardCore mód – vykreslení n-úhelníků

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:

  • kreslit obrazce (od dvanáctiúhelníku po trojúhelník)
  • každý obrazec bude nakreslen jinou barvou

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".

hc

Programujeme další herní prvky

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.

1. prvek – změna hráče

Postup: Vytvořte program, který zajistí změnu mezi 4 postavami.
Postavy se budou měnit po stisknutí kláves 1 – 4.


2. prvek – paralax

Postup: Vytvořte efekt pohybu postavy. Skutečná pozice se však měnit nebude. Bude se měnit pouze pozadí.

paralax
Využijte tyto bloky pro každý objekt

Link na projekt: scratch.mit.edu/projects/213499925/


3. prvek – skok a hudba

Postup: Naučte postavu z paralaxu skákat (mezerník). Přidejte hudbu na pozadí.


4. prvek – Ninja pohyb a zvuky

Postup: Naučte postavu z paralaxu Ninja pohyb. Přidejte zvuky skoku a speciálního pohybu.
Kostým pohybu vytvořte vlastní.


5. prvek – enemáci, kolize a konec hry

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.


6. prvek – další level

Postup: Po 20 metrech běhu dojde k přechodu do vyššího levelu.

Vlastní projekt

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.

  1. Napište/nakreslete scénář výukového programu – příběhu – hry.
  2. Podle scénáře vytvořte napište program.
  3. Nechte někoho dalšího vaši práci otestovat.
  4. Případné chyby odlaďte.
  5. Váš program nechte zanalyzovat Dr.Scratchem.
  6. Svou práci představte ostatním.


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".

hc

Shrnutí výuky 3. bloku

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.

codefighter2

Pokud jsi zatím nasbíral méně než 46 získáváš Code Fighter 2 stikerku

"Odstraněním jedné chyby vznikají alespoň dvě nové."

Murphyho zákon

Za nasbíraných 46 a více získáváte oboustannou kartu "Cat".

Vývojové diagramy

Cíl:

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

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.

Pravidla

Co který obrazec znamená, co se může, co se nemůže?

  • Snažíme se o dobrou čitelnost diagramu
    • obrazce zarovnáváme pod sebe
    • spojnice kreslíme ve svislém nebo vodorovném směru
    • necháváme dostatek místa mezi obrazci
  • základní směr toku dat = dolů, doprava
  • musí být jasné odkud kam vede tok dat
  • spojnice nesmí začínat ani končit na volno; vedou z jednoho obrazce k druhému
  • spojnice se mouhou křížit (výjimečně)
  • vždy jen jeden začátek a konec


Obrazce – symboly

Symbol Název Popis
start-konec začátek, konec Krajní symboly diagramu
vstup-vystup vstup, výstup Zadáváme (načítáme) vstupní hodnoty, vypisujeme (tiskneme, zobrazujeme) výstupní hodnoty
příkaz příkaz, zpracování Definujeme příkazy, přiřazujeme... co se má vykonat... změna dat
rozhodovani 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
forcyklus 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 podprogram Jinde definovaná činnost (podprogram), kterou voláme.
diagram-vajicka
Obrázek: Diagram na přípravu míchaných vajíček
(Autor: Dan Lessner, link)

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"

Čtení a tvorba vývojového diagramu

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.

1. Vytvořte vývojový diagram – čištění zubů

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ů.

2. Vytvořte vývojový diagram – pokoj

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íčů.

dia1
Obrázek: První vývojový diagram
dia2
Obrázek: Druhý vývojový diagram

Úprava vývojového diagramu

Cíl: Dokázat upravit diagram podle požadavků.

Nástroje: PS Diagram, soubory 1PS.zip, 2PS.zip3PS.zip

Náročnost:

Čas: 45 minut

Za splnění úkolů získáš max.: (1 za každý příklad)

Postup:

1. příklad

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:

  1. opravit diagram, aby obsah spočítal a výsledek také vypsal
  2. přidat další části tak, aby počítal a vypisoval také obvod obdélníka

Upravený vývojový diagram uložte.

2. příklad

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:

  1. opravit diagram tak, aby seřadil dvě čísla sestupně
  2. přidat možnost, že by si byla obě čísla rovna (použijte další rozhodování a výstup, který jednoduše vypíše informaci o rovnosti

Upravený vývojový diagram uložte.

3. příklad

V PS Diagramu otevřete soubor 3PS.zip

Vaším úkolem je:

  1. opravit diagram tak, aby na úvod napsal "Budu počítat po pěti." Poté upravte tak, že bude postupně vypisovat čísla od 5 do 50 po pěti. Upravený vývojový diagram uložte jako 3PS.psdiagram.
  2. opravit diagram tak, aby uživatel zadal na vstupu číslo mezi 5 a 10 – postupně by se měly vypisovat čísla od 1 do zadaného čísla. Upravený vývojový diagram uložte jako 4PS.psdiagram.

Podpora

PS Diagram

Instrukce k vytvoření obrázku by mohly vypadat například takto:

cykly_podpora

Porovnávání dvou a tří čísel

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ý...

  1. po zadání dvou čísel obě porovná a rozhodne, které je větší.
    Soubor uložte jako PS5.psdiagram
  2. po zadání tří čísel tato čísla porovná a rozhodne, které je největší, které uprostřed, které je nejmenší.
    Soubor uložte jako PS6.psdiagram

Hotovo?

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ě.

debug3

Želvička a hvězda

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).

Rada

Hotovo?

Správnost vašeho algoritmu můžete vyzkoušet přepsáním vývojového diagramu do Scratche, případně na webu Code.org.

Zadaný obrázek

zelva
Obrázek: želva a hvězda

Shrnutí 4. bloku - vývojové diagramy

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.

unplugged-stick

Za splnění 4. bloku výuky – nasbírání nejméně 7 získáváš Flowchart stikerku

"Udělat cokoli blbuvzdorným je nemožné, protože blbci jsou ohromně vynalézaví."

Murphyho zákon

Za nasbíraných 53 a více získáváte oboustannou kartu "Dew".

Ohlédnutí za odměnami

Pokud se vám nepodařilo nasbírat magických 53 , zasloužíte si určitě stikerku "Code Fighter" 3. úrovně.

codefighter3-stick

Závěr výuky

Cíl:

Znát a vyzkoušet si alespoň další dva webové projekty nebo programy, které se zabývají výukou programování.


Webové projekty

snap

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.

Vyzkoušet Snap!
blockly

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.

Vyzkoušet Blockly
codecombat

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 Combat
scratchLogo

Scratch 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ě).

Vyzkoušet Scratch 3.0

Programy

kodu

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štinu
stencyl

Stencyl

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.

Stáhnout Stencyl
cw

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 Battles

Odkazy

V 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.


Python

Univerzální programovací jazyk, vhodný pro začátečníky

python Zkusit Python

Youtube

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í.

youtube Pustit Youtube

ITnetwork.cz

Webové stránky, které se zabývají programovacími jazyky, ale také novinkami ze světa harwaru a softwaru.

itnetwork Přejít na ITnetwork

Nevíte, co si přát k Vánocům?

Arduino

Jednočipový programovatelný počítač. Uživatelská podpora na velmi vysoké úrovni.

arduino Více o Arduinu

LEGO Mindstorms

LEGO programovatelná robotická stavebnice.

youtube Více o LEGO Mindstorms
Hodnocení celého PRGM

Seznam slovíček

Algoritmus
= 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.