Úlohy pro výuku základů programování v prostředí Scratch 2.0

Podobné dokumenty
Programování v jazyku LOGO - úvod

Výuka odborného předmětu z elektrotechniky na SPŠ Strojní a Elektrotechnické

Jihočeská univerzita v Českých Budějovicích. Název bakalářské práce v ČJ Název bakalářské práce v AJ

Jaké potraviny děti preferují?

Comenius Logo. Úterý 20. března. Princip programování. Prostředí Comenius Logo

ANOTACE vytvořených/inovovaných materiálů

Pokyny pro odevzdání bakalářských a diplomových prací pro akademický rok 2018/2019

Comenius Logo. Princip programování. Prostředí Comenius Logo

ŠVP Gymnázium Ostrava-Zábřeh Úvod do programování

Hodnoticí standard. Programátor (kód: M) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

Příloha č. 3 Vybrané ukazatele specifického tematického šetření

1 Strukturované programování

Kurz č.: KV01 Karlovy Vary ZÁVĚREČNÁ PRÁCE

METODICKÝ LIST 1. Název výukové aktivity (tématu): 2. Jméno autora: Ing. Petr Hořejší, Ph.D., Ing. Jana Hořejší 3. Anotace:

ICT podporuje moderní způsoby výuky CZ.1.07/1.5.00/ Matematika planimetrie. Mgr. Tomáš Novotný

5.1.7 Informatika a výpočetní technika. Časové, obsahové a organizační vymezení. ročník hodinová dotace

Copyright 2013 Martin Kaňka;

4 Želva se učí nové příkazy

Kreslící program. V této lekci se naučíš vytvořit si vlastní kreslící program! Následujte postupně tyto INSTRUKCE

CVIČNÝ TEST 35. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Lekce 01 Úvod do algoritmizace

Algoritmy a algoritmizace

VÝUKA PČ NA 2. STUPNI základy technického modelování. Kreslící a modelovací nástroje objekty, čáry

Vytvoření tabulky: V následujícím okně si editujete okno tabulky. Vyzkoušejte si viz podklad Cv_09_Podklad_tabulka.xls a Cv_09_Tabulka.dwg.

Kombinované úlohy - cvičení

Revize ICT kurikula. Počítač ve škole Nové Město na Moravě

CODEWEEK Jednota školských informatiků. říjen 2014 Petr Naske, předseda sdružení

ANOTACE vytvořených/inovovaných materiálů

Výukový materiál zpracován v rámci projektu EU peníze školám

Tematická oblast: Programování 2 (VY_32_INOVACE_08_2_PR) Anotace: Využití ve výuce: Použité zdroje:

2 MATEMATIKA A JEJÍ APLIKACE UČEBNÍ OSNOVY

Informační technologie

Dvouletá retrospektiva podpory učitelů při rozvoji informatického myšlení žáků. Blanka Kozáková Jiří Sumbal

Matematika 3. ročník (Rovinné obrazce)

Vyučovací předmět: CVIČENÍ Z MATEMATIKY. A. Charakteristika vyučovacího předmětu.

ŽELVÍ GRAFIKA VE VZDĚLÁVÁNÍ

Reálné gymnázium a základní škola města Prostějova Školní vzdělávací program pro ZV Ruku v ruce

Revize ICT kurikula. ICT ve školství

Reálné gymnázium a základní škola města Prostějova Školní vzdělávací program pro ZV Ruku v ruce

Vyučovací předmět:: Fyzikální praktika. A. Charakteristika vyučovacího předmětu. a) Obsahové, časové a organizační vymezení předmětu

Téma 2: Vnímání a organizace prostoru

Zadání maturitní práce ve školním roce 2016/2017

Zkvalitnění výuky využitím ICT technologií CZ.1.07/1.5.00/ Matematika a její aplikace. Matematika. Závislosti a funkční vztahy

Vzdělávací obsah předmětu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Základní škola a Mateřská škola Brno, Bosonožské nám. 44, příspěvková organizace Číslo projektu: VY_42_INOVACE_02_G

KITTV PedF UK TÉMATA BAKALÁŘSKÝCH PRACÍ pro školní rok 2010/2011

INFORMATIKA PRO ZŠ. Ing. Veronika Šolcová

Reálná čísla a výrazy. Početní operace s reálnými čísly. Složitější úlohy se závorkami. Slovní úlohy. Číselné výrazy. Výrazy a mnohočleny

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Kurz DVPP. Žádost o akreditaci DVPP Vzdělávací program,,dobrodružné výpravy za přírodovědnými pokusy na ZŠ

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ

Výukový materiál zpracovaný v rámci projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Mezinárodní kolo soutěže Baltík 2010, kategorie C a D

IV/1 Individualizace výuky pro rozvoj matematické gramotnosti žáků středních škol

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

INFORMATIKA MS WORD ODRÁŽKY A ČÍSLOVÁNÍ

Vypracování maturitní práce a její obhajoby před zkušební maturitní komisí

SYSTÉM SCREENS SYSTEM SCREENS

MULTISIM VÝUKOVÝ ELEKTRONICKÝ MATERIÁL

A1 Marketingové minimum pro posílení výchovy k podnikavosti (8h)

Vysoká škola ekonomická v Praze. Fakulta managementu v Jindřichově Hradci. Diplomová práce. Bc. Natalija Lichnovská

Algoritmizace. 1. Úvod. Algoritmus

Práce s programem Malování Mgr. Petr Koníř

1. Blok Bloky a hladiny Barva a typ čáry v blocích 2. Vytvoření bloku příkaz BLOK [BLOCK]

Postupy práce se šablonami IS MPP

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

SEZNAM ANOTACÍ. CZ.1.07/1.5.00/ III/2 Inovace a zkvalitnění výuky prostřednictvím ICT VY_32_INOVACE_MA3 Planimetrie

SOFTWAROVÁ PODPORA TVORBY PROJEKTŮ

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

VY_32_INOVACE_MIK_I-1_1. Šablona č. I, sada č. 1. Ročník 6. Materiál slouží k procvičení a upevnění učiva o procentech.

UČEBNÍ OSNOVA PŘEDMĚTU

Tvorba kurzu v LMS Moodle

Digitální učební materiál

2. LMP SP 3. LMP SP + 2. LMP NSP. operace. Závislosti, vztahy a práce s daty. Závislosti, vztahy a práce s daty. v prostoru

Inovace ICT kurikula. SPOLEČNOST 4.0 A JEJÍ VLIV NA STŘEDNÍ ŠKOLSTVÍ Plzeň

Programujeme, a co dál? Dan Lessner

JAK PROGRAMOVAT ROBOTY

ALGORITMIZACE A PROGRAMOVÁNÍ

Digitální učební materiál

Časové a organizační vymezení

A B C D E F 1 Vzdělávací oblast: Matematika a její aplikace 2 Vzdělávací obor: Matematika 3 Ročník: 8. 4 Klíčové kompetence. Opakování 7.

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

6. úprava ÚPRAVY UČEBNÍHO PLÁNU A VYUČOVACÍHO PŘEDMĚTU MATEMATIKA

Informační a komunikační technologie Informatika 5.třída

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jan Boháček [ÚLOHA 27 NÁSTROJE KRESLENÍ]

Copyright 2013 Martin Kaňka;

CHARAKTERISTIKA VZDĚLÁVACÍ OBLAST VYUČOVACÍ PŘEDMĚT ZODPOVÍDÁ INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

v oblasti zájmového a neformálního vzdělávání příloha k Europass-životopis (E-CV) Osobní údaje

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

4. blok část A Logické operátory

Kurz DVPP. Žádost o akreditaci DVPP Vzdělávací program,,dobrodružné výpravy za přírodovědnými pokusy v MŠ

Algoritmizace a programování

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

UNIVERZITA PARDUBICE Směrnice č. 13/2007 ve znění dodatku č. 1 Pravidla pro zveřejňování závěrečných prací a jejich základní jednotnou formální úpravu

InformatikaaVT(1) Cílem předmětu je: Žáci:

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

ŠVP Školní očekávané výstupy

Transkript:

Jihočeská univerzita v Českých Budějovicích Pedagogická fakulta Oddělení celoživotního vzdělávání Závěrečná práce Úlohy pro výuku základů programování v prostředí Scratch 2.0 Vypracoval: Ing. Eduard Strosser, Ph.D. Vedoucí práce: doc. PaedDr. Jiří Vaníček, Ph.D. České Budějovice 2015

Prohlášení Prohlašuji, že svoji závěrečnou práci jsem vypracoval samostatně pouze s použitím pramenů a literatury uvedených v seznamu citované literatury. Prohlašuji, že v souladu s 47b zákona č. 111/1998 Sb. v platném znění souhlasím se zveřejněním své závěrečné práce, a to v nezkrácené podobě elektronickou cestou ve veřejně přístupné části databáze STAG provozované Jihočeskou univerzitou v Českých Budějovicích na jejích internetových stránkách, a to se zachováním mého autorského práva k odevzdanému textu této kvalifikační práce. Souhlasím dále s tím, aby toutéž elektronickou cestou byly v souladu s uvedeným ustanovením zákona č. 111/1998 Sb. zveřejněny posudky školitele a oponentů práce i záznam o průběhu a výsledku obhajoby kvalifikační práce. Rovněž souhlasím s porovnáním textu mé kvalifikační práce s databází kvalifikačních prací Theses.cz provozovanou Národním registrem vysokoškolských kvalifikačních prací a systémem na odhalování plagiátů. V Českých Budějovicích dne 18. prosince 2015 Eduard Strosser

Anotace Práce se zabývá výukou základních prvků programování na základní škole v prostředí Scratch 2.0. Práce obsahuje soubor úloh se zaměřením na použití základních pohybových příkazů, konstrukci cyklů a programování procedur (bloků). Tematicky jsou úlohy členěny na programování pohybu postavy, programování pohybu postavy s využitím cyklů a bloků a programování želví grafiky. Uvedené úlohy byly ověřeny při vyučování v 7. a 8. ročníku základní školy v hodinách volitelného a nepovinného předmětu informatika. Práce též informuje o vztahu programování a informatického myšlení. Klíčová slova: programování, informatické myšlení, příkaz, cyklus, procedura, želví grafika, Scratch Abstract The theses engage a topic of teaching basics of programming in programming environment Scratch 2.0 at primary school. Enclosed collection of exercises focuses on basic object motion scripts, building repeater scripts and programming procedures (blocks). The exercises are divided in following topics: object motion programming, object motion programming with repeaters and blocks and programming of turtle graphics. Included exercises were verified during lessons of informatics in 7 th and 8 th class of primary school. Theses contain also information about relationship between programming and computational thinking. Key words: programming, computational thinking, script, repeater script, block, turtle graphics, Scratch

Poděkování Děkuji vedoucímu práce doc. PaedDr. Jiřímu Vaníčkovi, Ph.D. za odborné vedení a řadu postřehů a připomínek, které přispěly ke zkvalitnění této práce i mé pedagogické činnosti.

Obsah 1 Úvod... 6 1.1 Cíle práce...... 6 1.2 Metody práce...... 6 2 Přehled problematiky... 8 2.1 Programování a informatické myšlení...... 8 2.2 Prostředí Scratch 2.0...... 9 3 Úlohy pro výuku programování... 10 3.1 Programování pohybu postavy (objektu)...... 10 3.2 Programování pohybu postavy (objektu) využití cyklů, bloků, ladění programu..... 11 3.3 Programování želví grafiky s využitím cyklů, bloků a operátorů...... 14 3.3.1 Seznámení s želví grafikou... 15 3.3.2 Cykly... 17 3.3.3 Bloky... 20 3.3.4 Pravidelné obrazce použití bloků v cyklech... 24 3.3.5 Rozpoznávání opakujícího se vzoru... 26 3.3.6 Bloky s parametrem... 28 3.3.7 Použití operátoru ke změně parametru bloku... 30 3.3.8 Kombinování obrazců - vnořování procedur (bloků)... 33 4 Ověření úloh ve vyučování... 37 5 Závěr... 38 6 Použitá literatura... 39

1 Úvod Výuka programování nepatří vždy k obsahu učiva informatiky a informační výchovy na základní škole. Nejinak tomu bylo dosud na základní škole, kde autor zajišťuje výuku předmětu informatika. Jedním z důvodů je absence tohoto tématu v RVP a ŠVP historicky převzatém po předchozích vyučujících, avšak do budoucna představuje programování, které je dáváno také do úzké souvislosti s širším pojmem computional thinking, překládaném obvykle jako informatické myšlení, potřebnou dovednost v praktickém životě generace současných žáků základních škol. Proto se autor této práce rozhodl začlenit výuku programování do kurikula předmětu informatika v rámci své pedagogické činnosti. V této práci bude představena řada úloh vhodných jako kurikulum úvodu do programování. Úlohy jsou zaměřeny především na užití cyklů a procedur (v programu Scratch nazývaných bloky), neboť představují základní stavební prvky valné většiny programů a při jejich použití se rozvíjí informatické myšlení žáků. 1.1 Cíle práce Cílem práce bylo navrhnout úlohy pro výuku základů programování v prostředí Scratch 2.0 se zaměřením na použití cyklů, procedur (bloků) a operátorů, jakožto hlavních prvků umožňujících algoritmizaci úloh a rozvoj informatického myšlení žáků. 1.2 Metody práce Pro výuku programování bylo zvoleno programovací prostředí Scratch 2.0, jehož obliba v posledních letech vzrůstá. Výhodou tohoto prostředí je cloudové řešení projektu, tzn., odpadá instalace na jednotlivé počítače, program je dostupný přes webový prohlížeč. Z didaktického hlediska je prostředí vhodné pro žáky základních škol, prostředí je snadno srozumitelné, samotné programování se provádí pomocí skládání bloků příkazů, není tedy 6

nutné vyučovat syntaxi programovacího jazyka a je možné se soustředit rovnou na programování. Pro položení základů znalostí a návyků v programovacích postupech byl kladen důraz na využívání cyklů a procedur, rozsah využívaných příkazů v tomto směru spíše omezen na základní pohybové příkazy, a to jednak z důvodů zbytečně netříštit pozornost žáků a umožnit jim soustředit se na sestavování a ladění programu, dalším důvodem pak je dobrá kontrolovatelnost programu a motivovanost žáků tím, že objekty vyvíjí viditelnou aktivitu, něco dělají. V oblasti želví grafiky pak vystačíme s příkazy posuň se a otoč se, výsledné obrazce se programují především nastavením patřičných parametrů (délka strany, úhel otočení, opakování, pořadí příkazů atd.). 7

2 Přehled problematiky 2.1 Programování a informatické myšlení Programování je proces navrhování algoritmu, jeho zapsání do nějakého programovacího jazyka, testování a ladění zdrojového kódu [13]. Výuka programování však dnes neslouží (jen) k ovládnutí programovacího jazyka a tvorbě programů, ale je spojena s pojmem v anglickém originále computational thinking, překládaným jako informatické myšlení [5]. Tento termín, jehož původ je připisován autorovi programovacího jazyka LOGO, Seymouru Papertovi [7], má celou řadu definic, které však mají společný asi následující obsah [3]: Formulovat problém způsobem, který umožňuje strojové (počítačové) řešení Automatizovat řešení pomocí algoritmického myšlení Reprezentovat objekty prostřednictvím abstrakcí Logicky uspořádat a zkoumat data Zobecňovat a přenášet tento postup řešení problémů do nejrůznějších oblastí Výuka programování a informatiky vůbec by pak měla vést ke kultivaci myšlení žáků k určitým způsobům stavění se k praktickým problémům a jejich řešení [9]. K algoritmickému řešení problému vede právě výuka programování, strojové řešení pak nejvíce užijeme v cyklech a procedurách, kdy stačí naprogramovat pouze jedenkrát příslušný sled kroků [12]. Další důležitou oblastí je proto také rozpoznávání opakujících se vzorů [2], kterým je věnována jedna podkapitola úloh. Přestože rozvoj informatického myšlení a výuka programování jsou považovány za klíčové kompetence budoucnosti [8], současný Rámcový vzdělávací program pro základní školy tato témata opomíjí [1]. V brzké době by však v této oblasti měl nastat zásadní obrat, neboť rozvíjení informatického myšlení žáků je jedním ze tří prioritních cílů Strategie digitálního vzdělávání do roku 2020 [6]. 8

2.2 Prostředí Scratch 2.0 Schratch 2.0 je jednoduché programovací prostředí vhodné pro výuku základů programování, založené na principu objektově orientovaného programování [11]. Prostředí je intuitivní a dobře přehledné, přitom nabízí celou řadu příkazů, vedle základních příkazů ke spuštění programu a příkazů pohybu objektu včetně možnosti programování procedur, proměnných a dalších pokročilejších příkazů. Jednotlivé části programu jsou blíže popsány v kapitole 3.3.1. Zájemce o podrobnější historii prostředí a technický popis bych odkázal na práce [10] a [4]. Obrázek 2-1 Ukázka prostředí Scratch 2.0 9

3 Úlohy pro výuku programování 3.1 Programování pohybu postavy (objektu) Cíl výuky: Žák zná různé pohybové příkazy a rozumí jejich podstatě; využívá je k naprogramování požadovaného pohybu postavy. Žák pozná, že umístění objektu má určité souřadnice. Umí zjistit souřadnice daného bodu na scéně. Aktivity: zkoušení různých příkazů pohybu postavy (posuň se, otoč se, natoč se směrem, skoč, klouzej) zjišťování rozdílu mezi příkazy skoč na souřadnice x, y a klouzej na souřadnice x, y zjišťování souřadnic místa na plátně úloha udělej čtverec Zadání: Naprogramuj postavu tak, aby obešla vyznačený čtverec. Použij k tomu různých pohybových příkazů, které sis právě vyzkoušel. Efektivní programátor dokáže napsat kód s použitím co nejméně řádků. Obrázek 3-1 Úloha udělej čtverec 10

Příklady možných řešení úlohy udělej čtverec : 1) Řešení za použití souřadnic a příkazu klouzej. Tento příkaz umožňuje postavě vykonávat plynulý pohyb po obrazovce žáci mají dobrou optickou kontrolu správnosti svého postupu. Předpokladem však je, že žáci mají představu o souřadnicích (lze vložit pozadí s vyznačenými osami souřadnic). Obrázek 3-2 Řešení úlohy udělej čtverec příkazy klouzej 2) Přestože je toto řešení též funkčně správné, neumožňuje žákům opticky ověřit správnost. To lze vyřešit například použitím pera nebo vložením příkazu čekej mezi jednotlivé příkazy skoč. Obrázek 3-3 Řešení úlohy udělej čtverec příkazy skoč na pozici 3) K řešení lze použít i příkazů posuň se a otoč se, v tom případě můžeme žáky seznámit s užitím cyklu. Obrázek 3-4 Řešení úlohy udělej čtverec příkazy posuň se a otoč se 3.2 Programování pohybu postavy (objektu) využití cyklů a bloků, ladění programu Cíl výuky: Žák naprogramuje daný pohyb objektu po scéně, využívá přitom k tomu cyklů Žák kombinuje jednotlivé cykly k naprogramování složitějšího pohybu Opakované části kódů žák naprogramuje pomocí procedur (bloků) 11

Úloha 1 Cíl úlohy: Žák využije k přímočarému pohybu cyklus, což umožní nastavit rychlost pohybu. Zadání: Naprogramuj auto tak, aby projelo cílem. Zkus nastavit různou rychlost vozidla. Poznámky: Žáci si otevřou předpřipravený projekt Auto_1. V projektu je možno ladit program pomocí připraveného tlačítka znovu, které umístí vozidlo na výchozí pozici a směr. Ukázka možných řešení: 1) Toto je sice funkčně správné, avšak triviální řešení, které sice vykoná požadovaný pohyb, ale není vidět jedoucí automobil a není možno nastavit jeho rychlost Obrázek 3-5 Projekt Auto_1 2) Řešení s využitím cyklu pohyb automobilu je vidět: a) nízká rychlost b) vysoká rychlost Obrázek 3-6 Triviální řešení úlohy 1 Obrázek 3-7 Řešení úlohy 1 cyklem Obrázek 3-8 Řešení úlohy 1 cyklem Úloha 2 Cíl úlohy: Žák kombinuje cyklus a další pohybový příkaz. Opakované části kódu naprogramuje pomocí bloku. Zadání: Naprogramuj auto tak, aby projelo cílem. Využij kopírování příkazů nebo vytvoření bloku příkazů. Obrázek 3-9 Projekt Auto_2 12

Poznámky: Žáci si otevřou předpřipravený projekt Auto_2. V projektu je možno ladit program pomocí připraveného tlačítka znovu, které umístí vozidlo na výchozí pozici a směr. Ukázka možných řešení: 1) Využití nakopírování příkazu pro jízdu vpřed, proloženou příslušnými příkazy pro zatočení. Obrázek 3-10 Řešení úlohy 2 sérií cyklů 2) Tuto úlohu je možno využít jako úvodní pro sestavení bloku příkazů. Obrázek 3-11 Řešení úlohy 2 využitím bloku Úloha 3 Cíl úlohy: Žák naprogramuje kruhový pohyb. Žák využije bloků pro opakování kruhového pohybu. Zadání: Naprogramuj auto tak, aby objelo kruhový objezd kolem dokola (jednou i vícekrát). 13 Obrázek 3-12 Projekt Auto_3

Poznámky: Žáci si otevřou předpřipravený projekt Auto_3. V projektu je možno ladit program pomocí připraveného tlačítka znovu, které umístí vozidlo na výchozí pozici a směr. Ukázka možných řešení: 1) Jednoduchý cyklus pro kruhový pohyb. Velikost kruhového objezdu je zvolena tak, že optimální posun v příkaze je o 2 kroky. Obrázek 3-13 Řešení úlohy 3 cyklem 2) Cyklus uvedený v bodě 1) lze vložit jako obsah bloku, jehož vícenásobným opakováním naprogramuje požadovaný počet objetí kruhového objezdu. Obrázek 3-14 Řešení úlohy 3 pomocí bloku 3.3 Programování želví grafiky s využitím cyklů, bloků a operátorů Cíl výuky: Žák naprogramuje pravidelné obrazce v želví grafice. Žák využije namísto série opakujících se příkazů cyklus. Žák použije k programování opakujících se obrazců (vzorů) bloků. Žák použije parametrů bloku k nastavení velikosti obrazce. Žák využije operátorů k sestavení matematických výrazů v programu. Žák využije programování bloků k sestavení složitějších obrazců. 14

Poznámky pro učitele: U žáků se již předpokládá obeznámení s prostředím Scratch (otevření/převzetí projektu, vkládání příkazů a znalost programování pohybů postavy). Před samotným plněním úkolů je třeba žákům vysvětlit a ukázat funkci pero v příkazech. Žáci by měli být směřováni k postupům, kdy se kreslící objekt vrací zpět do výchozí pozice a směru. Pak lze snadno využít cyklů a skládání bloků pro tvorbu složitějších obrazců. 3.3.1 Seznámení s želví grafikou V úlohách 3.3.1 3.3.8 se používá připravený projekt Kreslící pavouk, ve kterém je naprogramována postava pavouka, která vykonává funkci pera. Pro smazání plochy a ladění programu je pavouk naprogramován tak, že při kliknutí na jeho tělo se vše nakreslené smaže a pavouk se umístí zpět do středu obrazovky. tlačítko pro přerušení právě probíhajícího programu spouštěcí tlačítko programu kategorie příkazů blok příkazů postava pavouka Scéna prostor pro pohyb pavouka. paleta příkazů Obrázek 3-15 Popis projektu Kreslící pavouk scénář pracovní prostor pro vkládání příkazů 15

Cíl výuky: Žák se seznámí s funkcí pera a principem programování želví grafiky. Zadání: Otevři/převezmi projekt Kreslící pavouk. Postava pavouka při pohybu za sebou zanechává stopu (linku). Pomocí programování jeho pohybu můžeš vytvářet různé obrazce. Pokud to, co pavouk namaloval, neodpovídá tvému záměru, klikni na něj obrázek se smaže a pavouk se přesune zpět do středu obrazovky. Nakresli tyto obrazce: a) b) c) d) Obrázek 3-16 a) d) Zadání úlohy Ukázka možných řešení: a) b) c) d) Obrázek 3-17 a) d) Řešení úlohy Poznámky pro učitele: První tři obrazce jsou na vyzkoušení a neměly by činit žákům zvláštní potíže. Je pouze třeba upozornit žáky na to, že otáčení se děje z hlediska programované postavy pavouka. U čtvrtého obrazce je možné použít příkaz posuň se se zápornou hodnotou. Tím se ušetří příkaz otáčení na konci dráhy pohybu. Také je vhodné vést žáky k tomu, aby používali pouze příkazy posuň se a otoč se, nikoli např. skoč na pozici x, y nebo natoč se směrem, neboť výsledné obrazce pak bude možné otáčet jednoduchým přidáním příkazu otoč se na začátek série příkazů, což bude výhodné později při programování složitějších obrazců při použití cyklů a bloků. Abychom to žákům lépe osvětlili, můžeme jim dát za úkol nakreslit jeden z výše uvedených obrazců v různých polohách např.: 16

Obrázek 3-18 Zadání úlohy otáčení obrazce Používání příkazů pera Vhodné je žáky seznámit také s používáním příkazů pero nahoru a pero dolů. Tyto příkazy pak lze efektivně použít ve chvíli, kdy chceme přejít od jednoho obrazce k druhému a nechceme, aby byly spojeny čárou. K tomu poslouží například následující úloha: Zadání: Nakresli přerušovanou čáru. Ukázka řešení: Obrázek 3-19 Přerušovaná čára Obrázek 3-20 Kód přerušované čáry 3.3.2 Cykly Použití cyklů v programování je velmi výhodné jak z hlediska člověka programátora tak stroje počítače. V prvním případě si ušetříme spoustu práce, navíc kód je pěkně přehledný, snáze se v něm programátor, i ten, který program nepsal, vyzná, pro strojové zpracování má zase výhodu menšího nároku na paměť, což se projeví i v rychlosti vykonání příkazu. 17

Ukázkový příklad s osmiúhelníkem: Optimální řešení s využitím cyklu x nevhodné řešení pomocí jednotlivých příkazů Obrázek 3-21 Kód pro osmiúhelník vytvořený cyklem Obrázek 3-22 Kód pro osmiúhelník vytvořený sérii příkazů Želví grafiku lze dobře použít na pochopení a využití cyklů, zejména na pravidelných obrazcích. Výhody cyklů žákům představíme např. tak, že je necháme naprogramovat jednoduchý pravidelný obrazec, u kterého pak chceme třeba zvětšit velikost. Čím více řádků bude muset žák upravit (třeba u osmiúhelníků osmkrát příkaz posuň se o ), tím spíše ocení možnost využití cyklů. Cíl výuky: Žák definuje pravidelný obrazec. Využívá cyklů namísto opakování příkazů. Zadání práce žákům: Naprogramuj pavouka tak, aby utkal následující obrazce. Poznámky pro učitele: Obrazce jsou odstupňovány podle počtu dílčích příkazů, které jsou uzavřeny v příkazu opakuj a dle náročnosti na geometrické znalosti žáků. 18

obrazec: ukázka řešení: a) čtverec b) rovnostranný trojúhelník c) pravidelný šestiúhelník d) pravidelný osmiúhelník e) kružnice f) kříž 19

g) obdélník h) přerušovaná čára Obrázek 3-23 a) - h) Zadání a řešení úloh na pravidelné obrazce 3.3.3 Bloky Dalším velmi užitečným prvkem v programování je využití procedur (ve Scratchi bloků), tedy částí kódu naprogramovaných mimo hlavní proud příkazů. Výhodou je opět vyšší přehlednost kódu, navíc přibývá později i možnost využít parametrů. Abychom žáky motivovali k použití bloků, můžeme jim předložit následující úlohu: Cíl výuky: Žák použije k naprogramování opakujícího se obrazce blok příkazů. Zadání: Nakresli tři čtverce za sebou: Obrázek 3-24 Tři spojené čtverce 20

a) řešení s využitím bloku x b) řešení pomocí cyklu Obrázek 3-25 a) b) Ukázky kódu pro tři čtverce blok x cykly Poznámka pro učitele: Zdatnější žáky by napadlo možná řešení s vnořením cyklu, což se na první pohled zdá jednodušší, než použití bloku. Obrázek 3-26 Řešení úlohy tří čtverců vnořeným cyklem Pro ně můžeme zvolit následující úlohu: Zadání: Naprogramuj pavouka tak, aby utkal následující obrazec: 21

Obrázek 3-27 Obrazec pro modifikované zadání úlohy tří čtverců Zde se už těžko aplikuje vnořený cyklus, neboť spojení mezi jednotlivými cykly jsou dva různé příkazy. Výhoda použití bloků je již v tomto případě zřejmější: a) řešení s využitím bloku x b) řešení pomocí spojených cyklů Obrázek 3-28 a), b) Kód pro modifikované zadání úlohy Práci s bloky procvičíme v následujících úlohách. Pro uvedené obrazce samozřejmě existuje vždy více řešení, v závislosti na tom, zda jsou např. kresleny zleva doprava či naopak. Primárně by měla být upřednostněna řešení, která mají kompaktní a srozumitelný kód a samozřejmě využívají bloků. 22

Zadání: a) praporky ukázka možných řešení: b) náušnice c) svíčka d) houpačka 23

e) podvozek lokomotivy f) nakladač Obrázek 3-29 a) f) Zadání a ukázky řešení úloh na použití bloků 3.3.4 Pravidelné obrazce použití bloků v cyklech Užití bloků uvnitř cyklu opět významně zjednodušuje kód, přičemž lze dosáhnout efektních obrazců s minimem příkazů. Díky tomu můžeme velmi jednoduchým kódem nakreslit složitější obrazce, jejichž zajímavost bude dobrou motivací žáků. Pro zdatnější programátory můžeme zadat varianty s různými barvami pera. Nakonec můžeme nechat žáky experimentovat se sestrojováním vlastních obrazců. Vhodné výsledky jejich pokusů pak můžeme předložit ostatním opět jako úlohu na procvičení. Cíl výuky: Žák využije bloku příkazů uvnitř cyklu. 24

Zadání ukázkové úlohy: Naprogramuj pavouka tak, aby utkal hvězdu. Obrázek 3-30 čtyři kříže s otočením 22,5 a) řešení s použitím bloku, ale bez cyklu x b)řešení s využitím bloků uvnitř cyklu Obrázek 3-31 a), b) Kód pro obrazec hvězdy samostatné bloky x zacyklovaný blok Úlohy na procvičení Zadání: Vytvoř následující série obrazců: 1) 2) 3) 4) 5) 6) 25

Příklady řešení: 1) 2) 3) 4) 5) 6) Obrázek 3-32 Zadání a ukázky řešení pravidelných obrazců 3.3.5 Rozpoznávání opakujícího se vzoru V případě pravidelných obrazců jakými jsou čtverce, mnohoúhelníky nebo kružnice, je poměrně snadné rozpoznání opakujícího se vzoru, kterým je právě onen pravidelný tvar. Ne vždy však při programování je opakovaný vzor tak snadno rozpoznatelný. Následující série cvičení by měla žáky vést k přemýšlení, kterou část vzoru je vhodné nahradit opakováním. Zadání: Nakresli tyto obrazce: a) možné řešení: 26

b) c) d) e) f) Obrázek 3-33 a) f) Zadání a ukázky řešení obrazců s opakovaným vzorem 27

3.3.6 Bloky s parametrem Programování pomocí bloků přináší také možnost nasazení parametru, který určuje některou vlastnost programovaného vzoru, v našem případě želví grafiky je nejčastějším použitím nastavení velikosti obrazce. Cíl výuky: Žák definuje pravidelný obrazec pomocí bloku s možností nastavení velikosti obrazce parametrem. Zadání: Naprogramuj pavouka tak, aby obrazce z úlohy 1 mohl provádět na jeden příkaz, navíc s možností nastavení velikosti. Příklad řešení: Obrázek 3-34 Zadání úvodní úlohy pro blok s parametrem Obrázek 3-35 Vzorové řešení úlohy pro blok s parametrem Poznámky pro učitele: Žáci v následujících úlohách využívají v blocích cyklus příkazů pro pravidelné obrazce naprogramované podle kapitoly 3.3.2 tyto příkazy zde nejsou přímo uvedeny; ukázka řešení je zaměřena na sestavení obrazců složených ze základních geometrických tvarů. Obrazce jsou komponovány tak, by žáci mohli tyto tvary rozpoznat. 28

Úlohy na procvičení: Zadání: Nakresli následující obrazce Ukázka řešení a) b) c) d) 29

e) Obrázek 3-36 a) e) Zadání a ukázky řešení úloh na procvičení bloku s parametrem 3.3.7 Použití operátoru ke změně parametru bloku Pokud již žáci ovládají programování bloků s využitím číselného parametru, je možné postoupit k zapojení operátorů, což jsou ve Scratchi prvky, které vyjadřují matematické vztahy nebo operace. Operátor tak umožňuje zadat do programu výpočet, což je užitečné, neboť u řady programů lze řešit požadované chování pomocí výpočtu. Operátor se uplatní v následujících úlohách především při nastavování velikosti obrazce, a to u obrazců, které nejsou pouze tvořeny pouze opakováním délky strany a úhlu. Takovými obrazci jsou např. kříž, obdélník (lze nastavovat poměr kratší a delší strany) nebo zajistit výpočet úhlu pro libovolný mnohoúhelník. Výukový cíl: žák použije operátoru ke změně parametru obrazce uvnitř bloku. Ukázková úloha: Naprogramuj obrazec dvojitého kříže s tím, že paprsky budou střídavě krátké a dlouhé. Obrázek 3-37 Zadání úvodní úlohy pro aplikaci matematických operátorů 30

Při tvoření bloku pro obrazec kříže je nutno použít operátorů na definování záporného čísla: Obrázek 3-38 Kód s použitím matematického operátoru Poznámka pro učitele: Tento obrazec lze naprogramovat i jinak - definováním opakování kratší a delší strany (viz obrázek níže). V následujících úlohách však upřednostníme rozklad obrazců na základní tvary, které žáci programovali v úlohách 3.3.2. Obrázek 3-39 Alternativní řešení úvodní úlohy Další obrazce vhodné k zapojení matematických operátorů v kódu Zadání: Nakresli následující obrazce. a) obdélníky možné řešení: Obrázek 3-40 Zadání a ukázka řešení úlohy třech obdélníků s parametrem 31

b) libovolný n-úhelník Obrázek 3-41 Zadání a hlavní kód pro libovolný n-úhelník b1) jednodušší varianta (neřeší zvětšující se velikost obrazce s narůstajícím počtem stran) b2) složitější varianta (zachovává přibližný rozměr n-úhelníků aproximací výpočtu) Obrázek 3-42 Kód pro n-úhelník 1 Obrázek 3-43 Kód pro n-úhelník 2 c) pravoúhlý trojúhelník (pro matematicky zdatné žáky) Obrázek 3-44 Tři ve vrcholu spojené pravoúhlé trojúhelníky 32

Obrázek 3-45 Kód pro řešení tří pravoúhlých trojúhelníků 3.3.8 Kombinování obrazců - vnořování procedur (bloků) Když žáci zvládnou definovat obrazce pomocí bloků včetně užití parametru a operátorů je možné přistoupit k vzájemnému kombinování obrazců, včetně jejich užití vnořením do bloku vyššího řádu. Tímto opatřením dosáhneme kreslení složitějších obrazců, aniž by kód byl příliš dlouhý a nepřehledný. Z didaktického hlediska je pak výhodou, že žáci se mohou soustředit na tvorbu kombinovaného obrazce, zatímco základní obrazec mají rutinně naprogramovaný vedle. Cíl výuky: Žák použije nadefinovaných bloků uvnitř nadřazeného bloku, přitom využívá cykly a operátory. Úvodní úloha Zadání: Zkombinuj čtverec a trojúhelník tak, aby vytvořily domeček: Obrázek 3-46 Základní obrazec domečku 33

Možné řešení (pokud je otáčení čtverce voleno v opačném směru než u trojúhelníku: Obrázek 3-47 Kód pro základní obrazec domečku Pokud zvládneme takovýto blok, můžeme snadno tvořit následující obrazce (použití opakovaného vzoru z úvodní úlohy): Úlohy k procvičení Obrázek 3-48 Opakovaný vzor domečku a jeho zdrojový kód Zadání: Naprogramuj nejprve dílčí obrazec a poté jej použij k vytvoření složitějšího vzoru. Dílčí obrazec: ukázka bloku: a) šestiúhelník s křížem na středu Obrázek 3-49 Základní obrazec a jeho zdrojový kód a) 34

Složený obrazec: možné řešení: Obrázek 3-50 Složený obrazec a jeho zdrojový kód a) b) čtverec a šestiúhelník tak s jednou společnou stranou Obrázek 3-51 Základní obrazec a jeho zdrojový kód b) složený obrazec: Obrázek 3-52 Složený obrazec a jeho zdrojový kód b) 35

c) čtverec ve čtverci Matematicky zdatné jedince můžeme nechat sestavit operátor k výpočtu posunu po úhlopříčce: Obrázek 3-53 Základní obrazec a jeho zdrojový kód c) Obrázek 3-54 Matematický výraz složený z operátorů Poznámka pro učitele: Pokud nechceme vidět čáru spojující vnitřní čtverec s vnějším, vymezíme posun pavouka příkazy pero nahoru a pero dolů. složený obrazec: Obrázek 3-55 Složený obrazec ze čtverců ve čtverci a jeho zdrojový kód 36

4 Ověření úloh ve vyučování Úlohy z kapitol 3.1 a 3.2 byly ověřeny při vyučování v 7. a 8. ročníku základní školy v hodinách volitelného a nepovinného předmětu informatika (odpolední vyučování spojená skupina 18 žáků) v září a počátkem října 2015. Úlohy na želví grafiku byly ověřeny u týchž žáků později, v listopadu a prosinci 2015, a to od kapitoly 3.3.1 po kapitolu 3.3.7. Žáci byli již předtím seznámeni s programovacím prostředím Code.org, které využívá podobné programovací prostředí jako Scratch. Žáci tedy neměli problém do tohoto prostředí proniknout. Úlohy na pohyb postavy byly pozitivně přijaty, žáky bavilo to, že postavy reagují na jejich příkazy, což jim připomínalo spíše hru nežli učení. Význam příkazů žáci poměrně snadno pochopili, zpočátku (úlohy v 3.1) upřednostňovali příkaz klouzej před posuň se, neboť rychlost vykonání příkazu posuň se pro ně přestavovala spíše teleportaci objektu, než jeho pohyb. Z tohoto důvodu jsem připravil úlohy v kapitole 3.2, kde je možno regulovat rychlost posunu zacyklením příkazu posuň se. Dalším jasným ověřením dráhy pohybu je pak použití pera v kapitole želví grafiky (3.3). K tvorbě této kapitoly mě inspirovala série úkolů ze stránky Code.org na motivy pohádky Frozen. Po zkušenosti s touto aplikací jsem zjistil, že žáci nedostatečně pochopili význam a výhodu používání cyklů. V uvedené aplikaci je málo místa na procvičení, navíc úkoly díky předpřipraveným částím kódu žáci vyřeší metodou pokus omyl, aniž by porozuměli kódu. Proto jsem zde kladl důraz na to, aby žáci upřednostňovali používání cyklů a bloků před samostatnými příkazy, a měli dostatek úloh na procvičení. Toto úsilí se celkem vyplatilo. Zatímco v kapitole želví grafiky 3.3.2 ještě měla značná část žáků tendenci programovat obrazce pomocí samostatných příkazů, pouze několik žáků rovnou zařadilo cyklus, v kapitole rozpoznávání vzorů 3.3.5 již přirozeně téměř všichni žáci použili cykly. U těchto úloh však problémy žákům dělalo rozhodnutí, kterou část kódu je nejvhodnější opakovat, což ale byl smysl úloh. Použití bloků pak žáci přijali také vcelku dobře, obzvláště jakmile se seznámili s možností použit parametr k nastavení velikosti obrazce. Kapitolu 3.3.8 jsem nestihl před dokončením práce již s žáky projít, výuka je plánována na leden 2016. 37

5 Závěr Cílem práce bylo vytvořit úlohy pro výuku základů programování na základní škole v prostředí Scratch. Úlohy uvedené v práci zahrnují programování pohybu postavy a želví grafiky. V předložených úlohách byl kladen důraz na rozvíjení informatického myšlení, konkrétně rozpoznávání opakujících se vzorů, sestavování algoritmů, v oblasti programování byl kladen důraz na jednoduchost kódu, využívání cyklů a procedur. Na začátku kapitoly je vždy uveden úvodní (vzorový) příklad, na němž se demonstruje nový prvek programování. Následují vždy úlohy na procvičení daného prvku, které nejen opakují užití nového prvku, ale i rozvíjí v složitější aplikaci. Uvedené úlohy byly odzkoušeny při vyučování volitelného a nepovinného předmětu Informatika v 7. a 8. ročníku základní školy. Žáci zvládli uvedenými postupy problematiku celkem bez výraznějších potíží. Důraz byl při výuce kladen na pochopení principu úloh. Tato sbírka úloh umožnila zařazení výuky programování na základní škole, kde autor vykonává přímou pedagogickou činnost, tedy tématu, který se považuje jako jeden z klíčových pro rozvoj kompetencí souvisejících s informatickým myšlením, široce uplatnitelných v budoucím životě žáků. 38

6 Použitá literatura [1] BALADA, Jan, et al. Rámcový vzdělávací program pro základní vzdělávání. VÚP, Praha, 2007. [2] GOOGLE, Inc. What is CT? Exploring Computational Thinking [online]. [cit. 2015-12-08]. Dostupné z: http://www.google.com/edu/computational-thinking/what-is-ct.html [3] ISTE & CSTA. Operational Definition of Computational Thinking for K-12 Education. [online]. 2011 [cit. 2015-12-08]. Dostupné z: http://bit.ly/1mmddgf [4] KREJSA, Jan. Výuka základů programování v prostředí Scratch. České Budějovice, 2014. Diplomová práce. Jihočeská univerzita v Českých Budějovicích, Pedagogická fakulta. [5] LESSNER, Daniel. Analýza významu pojmu computational thinking. Journal of Technology & Information Education, 2014, 6, 1. [6] MPSV, MŠMT. Strategie digitální gramotnosti ČR na období 2015 až 2020. MPSV, Praha, leden 2015. [7] PAPERT, Seymour a Idit HAREL. Situating Constructionism. In: Constructionism. Ablex Publishing Corporation, 1991, s. 193-206. [8] PECINOVSKÝ, J., Proč učit programování na základní škole. [online]. [cit. 2015-12-08]. Dostupné z: http://www.ceskaskola.cz/2001/09/rudolf-pecinovsky-proc-ucit.html [9] PECINOVSKÝ, J., Zásady správné výuky programování. [online]. [cit. 2015-12-08].Dostupné z: http://www.ceskaskola.cz/2001/09/rudolf-pecinovsky-zasady-spravnevyuky.html [10] RESNICK, M., Scratch.mit.edu [online]. 13. 5. 2009 [cit. 2015-12-08]. Getting Started Guide. Dostupné z WWW: http://info.scratch.mit.edu/sites/infoscratch.media.mit.edu/files/file/scratchgettingstarte dv14.pdf [11] STUDENÝ, Jan. Výuka programování v prostredí Scratch a Snap!. České Budějovice, 2015. Bakalářská práce. Jihočeská univerzita v Českých Budějovicích, Pedagogická fakulta. [12] VANÍČEK, J. Programování ve Scratch badatelsky orientovaným způsobem. In Didinfo 2015. Banská Bystrica: Univerzita Mateja Béla, 2015. [13] Wikipedie: Otevřená encyklopedie: Programování [online]. 2014 [cit. 2015-12-08]. Dostupný z WWW: https://cs.wikipedia.org/w/index.php?title=programov%c3%a1n%c3%ad&oldid=11927244 39