54
Univerzita Hradec Králové Přírodovědecká fakulta Katedra informatiky Základy algoritmizace a programování v prostředí Scratch Bakalářská práce Autor: Filip Šrámek Studijní program: B1801 Specializace v pedagogice Studijní obor: Informatika Základy techniky Vedoucí práce: PhDr. Michal Musílek, Ph.D. Hradec Králové Duben 2015

Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

Univerzita Hradec Králové

Přírodovědecká fakulta

Katedra informatiky

Základy algoritmizace a

programování v prostředí Scratch

Bakalářská práce

Autor: Filip Šrámek

Studijní program: B1801 Specializace v pedagogice

Studijní obor: Informatika

Základy techniky

Vedoucí práce: PhDr. Michal Musílek, Ph.D.

Hradec Králové Duben 2015

Page 2: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

Univerzita Hradec Králové

Přírodovědecká fakulta

Zadání bakalářské práce

Autor: Filip Šrámek

Studijní program: B 1801 Specializace v pedagogice

Studijní obor: Informatika se zaměřením na vzdělávání

Základy techniky se zaměřením na vzdělávání

Název práce: Základy algoritmizace a programování v prostředí

Scratch

Název práce AJ: The Basics of Algorithms and Programming in

Environment Scratch

Cíl a metody práce: Cílem práce je seznámení s prostředím Scratch, jeho

možnostmi a použitím v rámci zájmového útvaru, zaměřeného na informatiku.

Teoretická část práce zmapuje dostupné materiály v českém a anglickém jazyce

a stručně shrne nejdůležitější informace v nich obsažené. Praktická část bude

spočívat ve vytvoření malé sbírky řešených úloh, vhodných pro žáky 2. stupně

základní školy.

Garantující pracoviště: katedra informatiky, Přírodovědecké fakulty UHK

Vedoucí práce: PhDr. Michal Musílek, Ph.D.

Konzultant:

Oponent: Ing. Mgr. Josef Šedivý, Ph.D.

Datum zadání závěrečné práce: 14.4 2014

Datum odevzdání závěrečné práce:

Page 3: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

Prohlášení

Prohlašuji, že jsem bakalářskou práci vypracoval pod vedením vedoucího

bakalářské práce samostatně a uvedl jsem všechny použité prameny a literaturu.

Podpis modře

V Hradci Králové dne Filip Šrámek

Page 4: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

Poděkování

Děkuji PhDr. Michalu Musílkovi, Ph.D. za odborné vedení a cenné rady, které mi

při zpracování práce poskytl.

Page 5: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

Anotace

ŠRÁMEK, Filip. Základy algoritmizace a programování v prostředí Scratch

Hradec Králové, 2014. Bakalářská práce na Přírodovědecké fakultě Univerzity

Hradec Králové. Vedoucí bakalářské práce Michal Musílek. xx s.

Cílem práce je seznámení s prostředím Scratch, jeho možnostmi a použitím

v rámci zájmového útvaru, zaměřeného na informatiku. Teoretická část práce

zmapuje dostupné materiály v českém a anglickém jazyce a stručně shrne

nejdůležitější informace v nich obsažené. Praktická část bude spočívat ve vytvoření

malé sbírky řešených úloh, vhodných pro žáky 2. stupně základní školy.

Klíčová slova:

programovací jazyk, Scratch, algoritmizace, programování, výuka, rozvoj

myšlení, starší školní věk

Page 6: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

Annotation

ŠRÁMEK, Filip. The Basics of Algorithms and Programming in Environment

Scratch. Hradec Králové, 2014. Bachelor Thesis at Faculty of Science University of

Hradec Králové. Thesis Supervizor Michal Musílek .xx s.

The aim of bachelor thesis is familiar a readerwith the environment Scratch,

its possibilities and use. The theoretical part will map material available in Czech

and English and briefly summarizes the most important information contained the

rein. The practical part will be to create a small collection of solved problems,

suitable for pupils of the lower secondary school.

Keywords: Scratch, programing,teaching programming

Page 7: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

Obsah

Úvod............................................................................................................................. 8

1 SCRATCH .................................................................................................................. 9

1.1 Historie .................................................................................................... 11

1.2 Popis Prostředí ....................................................................................... 12

1.3 Funkčnost a programátorské principy ................................................. 14

2 Existující materiály k výuce programovacího jazyka Scratch ........................... 18

2.1 Materiály v anglickém jazyce................................................................. 18

2.2 Materiály v ostatních jazycích ............................................................... 22

2.3 Materiály v českém a slovenském jazyce ............................................. 22

2.4 Výhody oproti jiným programovacím jazykům ........................................ 23

2.5 Nevýhody oproti jiným programovacím jazykům ............................... 26

3 Scratch modifikace ................................................................................................ 27

3.1 ScratchJr .................................................................................................. 27

3.2 BYOB (Snap!) ............................................................................................ 27

3.3 Rozdíly verzí 1.4 a 2.0 programu Scratch............................................. 29

4 Praktická část......................................................................................................... 32

4.1 Úvod......................................................................................................... 32

4.2 Popis přiloženého CD ............................................................................. 32

4.3 Algoritmizace úloh.................................................................................. 33

4.4 Sbírka úloh .............................................................................................. 34

4.5 Studie formou rozhovoru o programu Scratch ........................................ 47

Závěr .......................................................................................................................... 50

Použitá literatura...................................................................................................... 51

Page 8: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

8

Úvod

O dětském programovacím jazyce Scratch jsem se poprvé dozvěděl na vysoké

škole v předmětu dětské programovací jazyky. Hned mě zaujal svou jednoduchostí,

přehledností a pěkným grafickým prostředím. Dále jsem tento program využil při

vedení kroužku počítačů v DDM (Domě dětí a mládeže). Překvapilo mne, jaký

zájem tento program u dětí vzbudil. Z toho důvodu jsem se začal zajímat

o rozšíření a uplatnění tohoto programu ve výuce dětí staršího školního věku

v České republice.

Cílem práce je shrnutí dosavadních zkušeností a vytvoření uceleného materiálu

pro podporu výuky programování v zájmovém útvaru. Materiál chci koncipovat

tak, aby byl využitelný i pro výuky programování na základních školách. Tato práce

má ukázat, že naučit programovat žáky 2. stupně základní školy s využitím

vývojového prostředí Scratch nemusí být příliš složité.

V první kapitole se zaměřím na samotný popis prostředí. Popíšu implementaci

programátorských principů jako například (tvorba cyklů, posloupnosti příkazů

a podmínek)

Druhá kapitola této práce bude věnována shrnutí nalezených zdrojů v českém

jazyce i shrnutí cizojazyčných zdrojů. Podám přehled výhod a nevýhod tohoto

prostředí.

Třetí část se zaměří na modifikace jazyka Scratch (ScratchJr a Snap!(BYOB)).

Porovnám také rozdíly aktuální on-line verze programu Scratch2.0 a verzi

programu Scratch1.4.

Poslední kapitola představuje praktickou část práce. Sestává se z řešených úloh

vytvořených v prostředí Scratch. Na těchto úlohách demonstruji základní možnosti

programu. Na těchto úlohách lze žákům objasnit základní algoritmické

a programovací postupy.

Page 9: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

9

1 SCRATCH

Scratch je programovací jazyk určený k výuce programování. Tento jazyk

je navržen pro děti od osmi do šestnácti let, ale je používán lidmi v každého věku,

jak uvádí (Lifelong Kindergarten Group, MIT Media Lab. 2015a). Uplatnění tohoto

programovacího jazyka je velké, umožňuje například tvorbu her a animací. Hodí

se jako první programovací jazyk. Je ho možné uplatnit i mezipředmětově ve výuce.

Zejména se využívá na základních školách a středních školách. Může se využívat

v zájmových a volno časových kroužcích i v domácnostech. Jak uvádí (Lifelong

Kindergarten Group, MIT Media Lab. 2015a) vyskytuje se ve více jak stopadesátí

zemích světa a je přeložen do více jak 40 jazyků. Tento program je poskytován

zcela zdarma. Tento jazyk je určený k výuce a jako takový umožňuje žákům velmi

snadno pochopit základní koncepty programování a algoritmizace jak

uvádíMeerbaum-Salant (2010). Jak ukazuje (Lifelong Kindergarten Group, MIT

Media Lab. 2015a)schopnost vytvářet počítačové programy je důležitou součástí

počítačové gramotnosti v dnešní společnosti. Lidé, kteří pracují s programem

Scratch, se učí funkční a důležité strategie pro řešení problémů, návrhy projektů

a vyjadřování myšlenek.

Obrázek 1 Rozložení věku uživatelů

Graf převzat z:(LifelongKindergarten Group, MIT Media Lab. 2015b)

Page 10: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

10

Programovací jazyk Scratch také pomáhá zdokonalit se v tvořivém myšlení,

systematickém myšlení a sociální spolupráci jak uvádí (Lifelong Kindergarten

Group, MIT Media Lab. 2015a). Podle Malana a Leitnera(2007) uvedlo 76%

studentů, kteří se zúčastnili výuky lekcí jazyka Scratch, že tyto lekce měly kladný

vliv na jejich další setkání s programováním a s jazykem Java. Scratch

je multiplatformní, v současné době existují dvě hlavní verze 1.4, která se instaluje

jako klasický program a verze 2.0, která běží ve webovém prohlížeči s podporou

Flash. Verze 2.0 se dá stáhnout i off-line a provozovat v prostředí Adobe Air Verze

programovacího jazyka Scratch verze 2.0 je dostupná na systém android a iOS,

bohužel se prozatím jedná o otevřenou beta verzi. Z toho důvodu v této verzi

prozatím nefungují některé funkce například (ukládání a otevírání projektů). Pro

iPad zatím aplikace není dostupná, ale autoři, již nahrály ke stažení verzi programu

ScratchJr na platformu se systémem iPad. Tento program již druhým rokem

používám v kroužku počítačů (v DDM Týniště). Velmi se mi osvědčilo použití

jazyka Scratch k prvnímu seznámení s programováním a algoritmizací. Někteří

účastníci kroužku program využívají k tvorbě různých projektů doma. Při svém

vedení kroužku jsem nejvíce využíval verzi jazyka Scratch 1.4 a nyní pomalu

přecházím k výuce programování ve verzi 2.0. Žáky, docházející do mého kroužku

nejvíce zaujala jednoduchost vytvoření prvního programu. Samy děti došli

k názoru, že k začátku programování příliš nepotřebují umět programovat (jak se

obávali). S tímto názorem musím souhlasit k práci v jazyku Scratch nepotřebujete

komplexní znalost jiných programovacích jazyků jako (C+, Java, Perl, Python).

K základní tvorbě naprogramování projektu není potřebná žádná předchozí

znalost programování. Při tvorbě složitějších projektů je třeba umět správně

rozložit problém na více jednodušších kroků, dále je nutné logické uvažování

potřebné při řešení problémů. Před začátkem programování v jazyce Scratch je

nutná základní znalost práce na počítači (pokud tvoříte programy na počítači) jako

například práce s myší, klávesnicí a programy. Dále se mi osvědčilo časté ukládání

rozpracovaných projektů. Verze jazyka Scratch 1.4 je velmi stabilní, ale může se

objevit porucha se zařízením nebo nečekaná událost jako výpadek proudu a poté

přijdete o svou rozpracovanou práci v jazyce Scratch.

Page 11: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

11

Obrázek 2 Celosvětové rozložení uživatelů

Obrázek převzat z: (LifelongKindergarten Group, MIT Media Lab. 2015b)

1.1 Historie

Scratch byl vyvíjen v MIT Media Lab, vytvořil ho tým Lifelong Kindergarten

(Celý život ve školce). Tento jazyk navazuje na myšlenky jazyka LOGO a to

na myšlenkách samotné aktivity žáků a ne samotným pasivním přijímáním

poznatků. Scratch byl vytvořen v jazyce Squeak, v open source implementaci

Smalltalk-80 jak ukazuje (HistoryofScratch. 2015). Začátek vývoje tohoto jazyku

začal v roce 2003 a trval do vydání první oficiální verze čtyři roky. Během té doby

se experimentovalo s různými druhy uživatelského prostředí a s různými bloky

a funkcemi. V listopadu roku 2006 vyšla testovací verze pro pedagogy. Pro širokou

veřejnost byl program dostupný 8. ledna 2007.Poslední verze 2.0 vyšla 9 května

2013,podrobně viz (HistoryofScratch. 2015).

Scratch navazuje na některé myšlenky jazyka LOGO. A navazuje na Piagetovy

myšlenky poznávacích procesů. Žáci by měli poznávat a porovnávat skutečnosti

za pomocí znalostí a zkušeností, které již mají, jak uvádí (RESNIK, M. et al. 2004).

Název programovacího jazyka Scratch byl převzat z hudební scény,

kde znamená různé míchání a mixování hudby jak ukazuje (HistoryofScratch.

2015). Je také zajímavé, že engine jazyka Scratch se nazývá Squake (pištění)

a má ve svém logu myš. Můžeme se jen domnívat, zda použití kocoura v logu jazyka

Scratch nemá nějakou souvislost s enginem, na kterém programovací jazyk Scratch

běží kromě verze 2.0. Jazyk Scratch je velmi rozšířen zejména v USA. Pomalu tento

jazyk získává popularitu i v Evropě. Bohužel je velmi nemilým zjištěním ohlédnutí

Page 12: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

12

do jiných zemí kde pomalu zavádějí dětské programovací jazyky do výuky a těší

se tam velké popularitě a podpoře. Naproti tomu u nás celkově chybí popularizace

programovacích jazyků pro děti. V Česku je prozatím velmi malá podpora dětského

programování a základní školy se staví k výuce programování a algoritmizace

s odstupem prozatím jen velmi málo základních škol zavedlo do své výuky základy

programování a algoritmizaci.

1.2 Popis Prostředí

Celý program je v češtině, výjimkou tvoří pouze název programu a označení

postavy slovem sprite. Program Scratch je velmi vhodný k prvnímu seznámení

s programováním. Výstupy programu se okamžitě zobrazují ve 2D grafickém

prostředí (scéně). Pro drobné rozdíly samotných verzí programu budu popisovat

prostředí off-line verze 2.0 a poté uvedu některé rozdíly u verze 1.4. Popis

prostředí verze 1.4 lze nalézt na přiloženém CD. Samotné prostředí se skládá

z několika částí. Normálně je barva pozadí programovacího jazyka Scratch bílá pro

potřeby snazší orientace v tomto programu autor této práce barevně označil

jednotlivě popsané části. Jednotlivé části programu jsou označeny barvami (zelená,

červená,žlutá, modrá a fialová) defaultně jsou tyto části označené bílou barvou.

Obrázek 3 Prostředí jazyka Scratch 2.0

V levé části (červená) vidíme scénu, kde se vytváří grafický výstup programu.

Jsou tu také dvě tlačítka (zelená vlajka a červený osmiúhelník), které znamenají

Spustit skripty zelené vlajky a zastavení všeho.

Page 13: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

13

Modrá část slouží k vkládání nových postav je zde seznam všech použitých

postav a kostýmů a také zobrazení prostředí za postavou. V této části můžeme také

malovat a vkládat své vlastní postavy.

V pravé části (zelená) vidíme aktuální souřadnice postavy v kartézské soustavě

(x, y). V nabídce Skripty se nachází použité příkazy, v další nabídce nazvané

Kostýmy jsou další kostýmy, pomocí kterých můžou být vytvořeny animace. V této

nabídce jsou podobné funkce jako v modré části s rozdílem, že tako, nabídka slouží

ke změně kostýmu. Toto se využívá například u tvorby animací například animaci

chůze. Poslední funkcí této části jsou Zvuky lze postavě přiřadit určité zvuky, které

pak mohou být spuštěny příkazy.

Uprostřed (žlutá) můžeme vidět barevně odlišené skupiny příkazů (na obrázku

zelená). Pro přehlednost jsou příkazy seřazené do 8 barevně odlišných skupin:

Pohyb, Vzhled, Zvuk, Pero, Ovládáni, Vnímáni, Operátory a Proměnné. V horní části

(fialová) je hlavní nabídka, která obsahuje funkce jako uložení programu a změnu

jazyku a také změnu velikosti scény a rychlé nástroje pro úpravu postavy.

Prostředí Scratch se ovládá velmi jednoduše. Jednotlivé příkazy z palety příkazu

v levé části se přetahují do skriptovací části pro určitou postavu uprostřed.

Po přetažení příkazů do skriptovací části můžeme příkazy libovolně přeskupovat

a měnit jejich pořadí tím se vytvářejí programové bloky. Příkazy do sebe zapadají

podobným způsobem, jako stavebnice např. lega. Ne všechny příkazy do sebe

zapadají. Tak je předcházeno tvorbě některých syntaktických chyb.

Spuštění vytvořeného programu se dá realizovat více způsoby. Prvním

způsobem je dvojklik na blok příkazu, který se má spustit. Pro dalším způsoby jsou

použity příkazy událostí například: pokud je použita událost po stisku klávesy

nebo po stisku myši se začne vykonávat program, který po splnění události

pokračuje. Nejtypičtějším a nejvíc využívaným způsobem spuštění programu

je po kliknutí na zelenou vlaječku, kterým funguje podobným způsobem jako

po stisku klávesy. Zelená vlaječka se nachází v pravém horním rohu pod hlavní

nabídkou.

Page 14: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

14

1.3 Funkčnost a programátorské principy

Programátorské koncepty, které Scratch umožňuje, jsou shrnuté v níže

vytvořené tabulce, která je dostupná online na Scratch stránce podrobněji

viz.(Lifelong Kindergarten Group, MIT Media Lab. 2011b).

Koncept Vysvětlení Příklad

Posloupnost Při tvorbě

programu

potřebujete myslet

systematicky o

různých krocích.

Cykly Opakuj dokola a

opakuj můžou být

použity pro tvorbu

cyklů. (opakování

série příkazů)

Podmínky Pokud a Pokud

jinak tyto příkazy

kontrolují

podmínku

Proměnné Kategorie

proměnné dovoluje

vytvořit novou

proměnou a použít

ji v programu. Do

proměnných může

být uložen text a

čísla.

Scratch

podporuje lokální i

globální proměnné.

Seznamy

(Pole)

Seznam bloků

umožňují

ukládání a přístup

k seznamu čísel a

textu. Tento druh

datové struktury

může být

považován za

"dynamické pole."

Page 15: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

15

Události Po stisku

klávesy a nebo Po

kliknutí na- jsou

příklady událostí -

reakce na události

vyvolané

uživatelem nebo

jiné části

programu.

vlákna

(paralelní

vykonávaní)

Spuštění dvou

bloků příkazů ve

stejném čase

vytváří dva

nezávislé procesy,

které probíhají

paralelně

Koordinace a

Synchronizace

Rozešli všem a

po obdržení

zprávy

Můžete

koordinovat

Akce a mnoho

postav. Rozešli

všem a čekej

umožňuje

synchronizaci

vstup z

klávesnice

Ptej se a čekej,

vyzve uživatele k

zadání. Vstup

z klávesnice se

ukládá do

Odpovědi.

náhodná čísla Zvol náhodné

číslo vybere

náhodná celá čísla

v daném rozsahu.

Page 16: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

16

booleovská logika

pokud, nebo,

pokud jinak to

jsou příklady

booleovské logiky.

dynamické

interakce

Souřadnice

myši x,

Souřadnice myši

y, a hlasitost

mohou být

použity jako

dynamický vstup

pro interakci v

reálném čase

návrh

uživatelského

rozhraní

Můžete

navrhnout

interaktivní

uživatelské

rozhraní

v programu

Scratch –

například pomocí

klikání na sprity k

vytvoření tlačítka.

Podle výzkumu, vytvořeného na 425-tich projektech: Nejvíce je používaný první

programový koncept posloupnost příkazů jak ukazuje (BARKER, L 2008).

Je nejjednodušeji realizovatelný a hned lze vidět výsledky. Verze programovacího

jazyka 2.0 již umí více funkcí, mezi kterými jsou například tvorba rekurze

dědičnost a další. Programovací jazyk Scratch umožňuje programovat robotické

sady např. (PicoBoard, LEGO WeDo, LEGO Mindstorm NXT apod.) jak ukazuje

(Hardware ThatCanConnect to Scratch 2014). Přípojná karta PicoBoard umožňuje

snímat hodnoty v skutečném světě snadné je její propojení s počítačem pomocí

USB rozhraní. LegoWeDo naproti PicoBoard umí nejen snímat údaje na senzorech,

ale pomocí příkazů k ovládání motorů lze ovládat i jednotlivé motory v této

Page 17: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

17

robotické sadě. Těchto sad lze využít při první konstrukci robota ovládaného přes

programový jazyk Scratch. Pokud tyto robotické sady nevyužíváte, můžete příkazy

k jejich ovládání v programu schovat. Zajímavé je využití webové kamery jako

senzoru kinect jak uvádí (Kinect2Scratch 2012).

To ukazuje, že program Scratch již není pouhým nástrojem k výuce

programování, ale pomalu se z něj stává plnohodnotný jazyk s velkou členskou

základnou. Podle mého názoru nedosáhne veškerých funkcí jako jazyky C+ a Java.

Programovací jazyk je omezený již před vytvořenými kartičkami příkazů. Ve verzi

2.0 již lze vytvořit svůj vlastní blok příkazů, avšak skládá se z již předem

vytvořených příkazů. Měníme jen samotné pořadí příkazů, netvoříme vlastní

příkazy. Dále je nutné říci, že programovací jazyk Scratch má sloužit výhradně

k výuce programování. Skládá se z velkého počtu vytvořených kartiček příkazů,

takže není velká potřeba tvořit nové kartičky příkazů. Jak uvádí (BARKER, L 2008)

z velkého počtu jednoduchých příkazů lze vytvořit hodně složitý program

Page 18: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

18

2 Existující materiály k výuce programovacího

jazyka Scratch

Tato kapitola představí některé materiály k jazyku programu Scratch určené

k výuce programování. Dále ukáže, co tyto materiály obsahují a kde je lze získat.

Z těchto materiálu lze volně čerpat a při výuce. Některé sbírky tvoří neocenitelný

zdroj inspirace při výuce programování v prostředí Scratch. Bohužel je velmi málo

Česko jazyčných zdrojů takže většinu zdrojů je nutné před výukou upravit.

2.1 Materiály v anglickém jazyce

Anglický jazyk je zřejmě co do počtu zdrojů o programu Scratch nejbohatší. Již

v anglickém jazyce vyšla celá řada knížek určených k výuce programování v jazyce

Scratch.V této práci uvedu jen některé, které mě zaujaly. Za zmínku stojí například

Scratch 1.4:Průvodce pro začátečníky jak uvádí(Badger, Michael. 2009).

Oficiální stránky jazyka ScratchNa oficiálních Stránkách programovacího jazyka Scratch lze nalézt ukázky

projektů je zde šest základních kategorií (Animace, Hry, Interaktivní umění, Hudba

a tanec, příběhy, vnímání videa). V každé kategorii jsou na ukázku čtyři projekty.

Dále lze na těchto oficiálních stránkách nalézt například dále uvedené materiály.

Příručka začátečníkaObsahuje dvanáct základních témat tvorby programu v jazyku Scratch verzi 2.0

od základního rozhýbání postavy až přes změnu postavy a scény. Na oficiálních

stránkách je tato příručka celá v angličtině. Bohužel zatím není dostupný celý

a úplný překlad do Českého jazyka, ale je dostupná verze v Slovenském jazyce jak

uvádí (Scratch Support Materials. 2015).

Page 19: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

19

ScratchCardsTakzvané Scratch karty jsou podle mě vhodné k použití při výuce. Najde zde

dvanáct kartiček určených k tisku a vystřižení a následnému přeložení (tak

vznikne karta). Po vyhotovení kartičky vidíme na levé polovině, vidíme probíhající

děj samostatné postavy (např. Postava mění barvu, přesouvá se atd.) na druhé

části je možné vidět samotné programové řešení. Na oficiálních stránkách je možné

nalézt anglickou verzi. Kartičky přeložené do Češtiny lze nalézt na stránce jazyka

Scratch nebo podrobněji viz. (Scratch Support Materials. 2015).

SctratchEdJe to online komunita určená spíše pro učitele programování v jazyce Scratch.

Lidé zde sdílejí materiály určené k výuce, diskutují o problémech a řeší různé věci

týkající se programu Scratch. Pod nabídkou Resources (zdroje) lze nalézt různě

rozdělené zdroje o programování v jazyku Scratch. (např. Knihy, příručky aktivity,

jednoduché projety a další). Lze hledat dostupné zdroje podle stupně studia, dle

jazyka v, kterém je projekt vytvořený nebo dle vzdělávacích oblastí. Ve většině

případů však jedná jen o útržkovité projekty a návody je nutné je zasadit do

celkového výukového rámce. Samostatnou část tvoří kategorie nazvaná

LessonPlans (Plán Lekcí). Tato kategorie obsahuje mnoho lekcí, každá lekce

obsahuje několik projektů a úkolů k procvičení většinou za nějakým cílem (např.

Naučit se něco nového jako v lekci Geometry LessonswithScratch nebo zopakovat

senzorické vnímání jazyka ScratchAn Algebra-Geometry Unit Plan:

ScratchProgramming)

Obrázek 4 Prostředí ScratchEd

Obrázek převzat z (ScratchEd. 2004)

Page 20: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

20

Code.orgJe to nekomerční organizace. Na této stránce naleznete vytvořené lekce

programování. Tato stránka vznikla v roce 2013 bratry Partovími wiki . Proslavila

se takzvanou hodinou kódu, kterou podpořil prezident USA Obama. Jsou zde

krátká videa, obsahující sdělení o důležitosti programování tuto kampaň podpořili

například (Mark Zuckerberg a Bill Gates). Tato internetová stránka je lokalizovaná

do třiceti osmi jazyků včetně Češtiny a Slovenštiny. Ke spuštění lekcí není potřebný

Adobe FlashPlayer. Celé prostředí a ovládání lekcí se podobá Jazyku Scratch.

Obrázek 5 Prostředí Code.org

Obrázek převzat z (Code.org, 2015b)

Ve většině lekcí se nachází scéna s výstupem programu v levé části, kartičky

příkazů jsou uprostřed a přetahují se do pravé části. Tlačítkem pod scénou spustit

se spustí program a při doběhnutí programu se při správném řešení objeví

gratulace, při špatném řešení se objeví hláška, která vyzívá k dalšímu zkoušení. Při

správném řešení si lze kód programu prohlédnout v Java Scriptu, který používá i

tato stránka. Při špatném řešení se objeví místo tlačítka spustit tlačítko obnovit po

jeho stisknutí se všechny postavy vrátí na začátek ( na místo kde původně stáli

před začátkem našeho programování). Lekce jsou tvořeny zábavně zpracovanými

problémovými úlohami. K vyřešení problémových úloh je zapotřebí celý úkol

rozložit na menší části. Vyzkoušel jsem hodinu kódu přesněji kurz s Angry

Page 21: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

21

Birds osmé třídě základní školy. Žáci předtím neměli žádné zkušenosti

s programováním, ale i přesto to většinu bavilo a někteří z žáků již za půl hodiny

stihly správně vypracovat všech dvacet úloh. Drtivá většina žáků se stihla asi

za třicet pět minut dostat se dále za šestnácté lekce. Prozatím jsou například

zadání některých lekcí stále v angličtině, ale není velkým problémem, hned je

jasné, co je cílem úlohy. Stránka dále obsahuje i další dvacetihodinové online kurzy

pro každého a odkazy na další dětské programovací jazyky (mezi nimiž je uveden

i jazyk Scratch) a lekce. Aktuálně už žáci co programovali na této stránce, napsali

více jak šest miliónů řádků kódu. Tato společnost dále spolupracuje s týmem

tvořící jazyk Scratch (je jedním z hlavních promo-partnerů a partnerů pro

tutoriály). Hodina kódu začíná každý rok vždy od 8. do 14. Prosince a každý kdo

pořádá, hodinu kódu pro děti dostane i malý dárek. Minulý rok se zúčastnilo

hodiny kódu patnáct miliónů uživatelů, včetně naší země viz obr. Vytvořené lekce

lze spustit kdykoliv a z jakéhokoliv místa jen je potřeba připojení k internetu.

Obrázek 6 Místa pořádající hodinu kódu

Obrázek převzat z (Code.org, 2015a)

Video kurzy Lze nalézt celou řadu různě kvalitní video lekcí a návodů. Drtivá většina video

návodů je v angličtině ale lze nalézt video návody i například v českém,

slovenském a polském jazyce. Oficiální video návody lze nalézt na oficiální stránce

jazyka Scratch (Lifelong Kindergarten Group, MIT Media Lab.2015c) tyto video

návody jsou koncipovány k prvnímu seznámení s jazykem Scratch avšak bohužel

jsou v anglickém jazyce. Oficiální video lekce na těchto stránkách obsahuje dvanáct

videí obsahující základní funkce a použití editoru kreslení. Mnohem

propracovanější video návody jsem nalezl na stránce (learnscratch.org,2007-

Page 22: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

22

2015), která obsahuje celkem šedesát čtyři lekcí rozdělených do tří úrovní

obtížnosti tyto lekce, jsou také velmi vhodné při výuce a možné inspiraci tvorby

projektů. Video kurzy s česky mluveným komentářem lze nalézt na stránce

mintaka.eu, kterou vytvořil Vladimír Janeček (2013), bohužel přístup k dalším

lekcím je podmíněn přihlášením do účtu s heslem a jménem. Mnoho videí

s tutoriály lze nalézt na serveru youtube. Videa se však velmi liší vytvořenou

kvalitou lekcí. Někteří žáci sami vytvářejí své vlastní tutoriály například uživatel

lekcí nazvanýProto159753 uvádí (Scratch tutorialCz 1 2013) v českém jazyce další

video návod v českém jazyce lze nalézt od autora CG Scratch Team (Epizoda 1

Pohyb 2014)obsahující celkem dvě lekce(nenalezl jsem žádné spojení s oficiálním

týmem Scratch ). Lze dále nalézt video lekce od Lukáše Faltýnka jak ukazuje na

(Scratch - Ahoj svete rekl kocour a zacal tancit.ogv, 2012),avšak bez komentářů

(není popsán aktuální tvorba programu ani slovně ani pomocí popisu titulkem).

Na serveru youtube lze dále nalézt celou řadu video lekcí vytvořených uživateli

jazyka Scratch. Například lze nalézt deset video lekcí od Jana Hruboše, které nahrál

uživatel Loopie podrobněji viz.(scratch-video1-jan-hrubos-navody. 2014)

Z další video návodů v anglickém jazyce uvedu například video lekce uživatele

WPL Scratch Project obsahující několik video lekcí programování a tvorby her

v jazyce Scratch podrobněji viz. (Lesson 1 - ScratchBasics. 2011).

2.2 Materiály v ostatních jazycích

Je celá řada materiálů v cizích jazycích jako například kniha napsaná v polském

jazyce od autora Piotra Szlagora (2013), která se věnuje programu Scratch a

zejména želví geometrii a její tvorbě. Hodí se k prvnímu seznámení s jazykem

Scratch i když si myslím, že primárně není přímo určena dětem. Tato kniha je volně

dostupná na internetu za co patří velký dík autorovi knihy. Dále původně Čínský

komiks o programování v jazyku Scratch, který již byl přeložen i do našeho jazyka

název knihy je Programování pro děti (The LEAD Project 2013). Tato kniha je

poměrně hodně komplexní a obsahuje komiksovou část celá kniha je tak jeden

velký příběh je zde i kapitola o programování pomocí jazyka Scratch s robotickou

sadou PicoBoard. Existuje také několik knížek v Ruštině například A

bookforyoungprogrammers on Scratch in Russian od autora jménem Denis Golikov

(2013) tato kniha obsahuje 18 lekcí a 6 úloh k procvičení. Dá se říci, že je dosti

obsáhlá.

2.3 Materiály v českém a slovenském jazyce

Většina materiálů k programu Scratch je cizojazyčná, ale i přesto se i u nás

vyskytuje mnoho zajímavých projektů a návodů. Podle mého názoru se tento

program a všeobecně dětské programování u nás šíří a pomalu získává

na popularitě. Tomu i nasvědčují odborné články o tomto programu

Page 23: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

23

na internetových stránkách. Většina materiálů k programu Scratch je cizojazyčná,

ale i přesto se i u nás vyskytuje mnoho zajímavých projektů a návodů. Podle mého

názoru se tento program a všeobecně dětské programování u nás šíří a pomalu

získává na popularitě. Tomu i nasvědčují odborné články o tomto programu na

internetových stránkách či programátorské úlohy též na internetu. Mnoho detailně

a podrobně vysvětlených úloh lze nalézt na stránce Ucebnicejazykascratch od

Aleny Halouskové (2012a) tuto stránku velmi doporučuji je na ní mnoho nápadů

a úloh a celkově jí hodnotím velmi kladně. Bohužel o této stránce není moc velké

povědomí. Na serveru Lupa.cz můžete nalézt článek s názvem, jak vést děti

k programování (MALÝ, Martin. 2010) článek se zabývá tématem proč vést vůbec

děti k programování a jaké jsou možnosti volby programovacích jazyků k výuce

programování pro děti. Dále autor uvádí myšlenku, že dítě ani nepostřehne, že se

učí. Bohužel tento článek nepřináší žádné návody k tvorbě projektů. Další

stránkou, na které je možné nalézt lekce programování v jazyce Scratch je stránka

Lukáše Faltýnka (2012). Bohužel autor již dlouho nepřidal žádný nový příspěvek o

jazyku Scratch ani nepřispěl žádnou další lekcí programování v tomto

programovacím jazyku. Tuto Stránku bych doporučil pro nezkušené uživatele,

kteří se poprvé seznamují s jazykem Scratch.

Zajímavé je použití jazyka Scratch k programování robotů a použití v robotice

zejména s využití zařízení Raspberry Pi. Podrobněji viz (UPTON, Eben.

a HALFACREE, Gareth. 2013). Dále v této knize naleznete popis některých funkcí

jako (booleovská logika, animace a zvuk). Některé základní školy tvoří své vlastní

lekce programování nebo vedou kroužky programování. Bohužel zatím jsem

nenašel, při hledání, žádné statistiky nebo porovnání základních škol, které

zavedly do výuky jakýkoliv dětský programovací jazyk.

2.4 Výhody oproti jiným programovacím jazykům

Program Scratch je dostupný pod licencí Creative Commons CC-BY-NC-SA

3.0 jak uvádí (Lifelong Kindergarten Group, MIT Media Lab. 2015c) to znamená,

že ho lze volně stáhnou, používat a rozšiřovat dál. Musí být uveden autor a

zachována licenci stejné je to i u projektů a používání loga, obrázků a

podobných materiálů. Projekty mohou být pozměňovány, ale musí být uveden

autor původního projektu a zachována licence a nesmí být využit ke

komerčnímu využití jak uvádí (Attribution-Non Commercial-ShareAlike 3.0

Unported. 2004). Zdrojový kód programu Scratch je volně dostupný na

gihubu.com (zatím verze 1.4).

Page 24: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

24

Ukázka zdrojového kódu verze jazyka Scratch 1.4 dostupná ze stránky Gihubu.

Podrobněji viz. (BLANTON, Amos. 2014)

invokeWithEvent:evt

"Perform the action associated witht he given menu item."

| w |

selfisEnabledifFalse: [^ self].

targetclass == HandMorphifTrue: [(selfnotObsolete) ifFalse: [^ self]].

ownerifNotNil:[selfisStayUpItemifFalse:[

selfflag: #workAround.

"The tile systeminvokesmenusstraightforwardly so the menu might not be in theworld."

(w := selfworld) ifNotNil:[

ownerdeleteIfPopUp: evt.

"Repairdamagebeforeinvokingtheactionforbetter feedback"

w displayWorldSafely]]].

selectorifNil:[^self].

CursornormalshowWhile: [ | selArgCount| "show cursor in caseitemopens a new MVC window"

(selArgCount := selectornumArgs) = 0

ifTrue:

[targetperform: selector]

ifFalse:

[selArgCount = argumentssize

ifTrue: [targetperform: selectorwithArguments: arguments]

ifFalse: [targetperform: selector

withArguments: (argumentscopyWith: evt)]]].

Page 25: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

25

Zdrojový kód lze volně měnit a upravovat pří zachování licence. Změna

zdrojového kódu, ale vyžaduje znalost programovacího jazyku Squake v, kterém je

program Scratch 1.4 napsaný. K největším kladům patří jednoduchost přehlednost

a velká společenská základna. Dále je i dostupný zdrojový kód verze 2.0. Jen na

jeho oficiální stránce jazyka Scratch je více jak 6 000 000 uživatelů registrováno

a 9 000 000 projektů sdíleno jak uvádí (Lifelong Kindergarten Group, MIT Media

Lab. 2015b).

Program je lokalizován do českého jazyka to napomáhá k lepší srozumitelnosti

programu a jednotlivých příkazů. Další velkou výhodou je, že se programy do

jazyka Scratch nepíší, ale přetahují se již předem vytvořené kartičky příkazů. Nelze

je měnit po funkční stránce. Příkazy do sebe zapadají jako kostky lega. Program

řeší možnou tvorbu syntaktických chyb tak, že do sebe příkazy, které by vedli

k tvorbě syntaktických chyb, do sebe jednoduše nezapadají.

Scratch, který je vytvořen v jazyce Squeak, který je velmi kompatibilní

a přenosný na uživatelské prostředí jako je (Windows, Macintosh, Linux/Unix,

Acorn, BeOS) a herní konzole (Sony Playstation) jak uvádí (RESNIK, M. et al.2004).

Scratch podporuje želví grafiku, kterou lze přenést například z programovacího

jazyku logo. Želví grafika je grafika kreslená pomocí virtuálního kurzoru (želvy,

může být i jiná postava) nad kartézskou soustavou souřadnic. Kurzor je ovládán

příkazy pro posun nebo otočení. Tvorba želví geometrie je poměrně snadná

postavička kreslí na scénu různé obrazce, záleží na naprogramování pohybu

postavy. Pro samotnou tvorbu želví geometrie je výhodné postavu schovat, aby

nebyla viditelná, nebo zmenšit. V nastavení postavičky lze i nastavit bodový střed

postavy, od kterého se odvíjí tvorba želví geometrie například příkazy pootočení.

Mým doporučení k tvorbě želví geometrie je nezobrazovat při tvorbě želví

geometrie postavu, nebo zobrazit zmenšenou verzi postavy se správně zvoleným

středem postavy. Uvedu projekt na přiloženém CD nazvaný nalévání čaje, v kterém

si můžete změnit střed nalévací konvice a porovnat rozdíly a změny v naklánění

konvice.

Page 26: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

26

Obrázek 7 Želví geometrie

Ukázka želví geometrie vytvořená autorem práce.

2.5 Nevýhody oproti jiným programovacím jazykům

Scratch je velmi univerzální program. Existují však stále funkce a možnosti,

které zatím nepodporuje.

procedury a funkce

rekurze

dědičnost

definovaní tříd objektů

zpracování výjimek

parametry a vracení hodnot

vstup/výstup z/do souboru

Návratové hodnoty

Jak uvádí (Lifelong Kindergarten Group, MIT Media Lab. 2011b)

Page 27: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

27

Částečně tento problém řeší existující rozšíření nazvané BYOB (Build Your Own

Blok).Nová verze programu jazyka Scratch 2.0 již řeší problém s rekurzí, takže

v této verzi je již možné vytvořit projekt s použitím rekurze.

V Česku je dle mého názoru málo lidí věnujících se programu Scratch z toho

pramení i málo přispěvatelů na Česká fóra o programovacím jazyku Scratch.

Programovací jazyky určené k výuce podle mě nejsou u nás moc rozšířeny

například i tím že tato výuka na základních školách není moc rozšířená. Někteří

autoři kritizují tento jazyk kvůli nemožnosti tvorby nových příkazů a celkově

velkého zjednodušení.

3 Scratch modifikace

3.1 ScratchJr

Je programovacím jazykem určený mladším dětem ve věku od pěti let. Liší se

grafickým pojetím (příkazové bloky do sebe zapadají ne pod sebe ale vedle sebe).

Byl vytvořen speciálně na poznávacích procesech menších dětí dle Piagetovy

filozofie. ScratchJr byl vytvořen na zdrojovém kódu programovacího jazyka

Scratch 1.4. Od svého předchůdce (tím míním Scratch verzi 1.4) zdědil podobné

grafické prostředí a funkce. Práce s tímto programem a tvorba programů je

přizpůsobena věku dětí. ScratchJr je nyní k dispozici jako bezplatná aplikace pro

iPad. Očekává se, oficiální datum vydaní verze na platformu Android.

ScratchJr je spolupráci mezi vývojovým centrem Technologies (DevTech)

Research Group (vedené Eliotem-Pearsonem) a Odborem rozvoje dítěte na Tufts

University (pod vedením Marina Umaschiho a Celoživotní Mateřská školou na MIT

Media Lab (v čele s Mitchelem Resnickem jak uvádí (ScratchJr. 2014).

3.2 BYOB (Snap!)

Byob build your own block Je původně rozšířením Scratche 1.4. Záměrem bylo

vytvořit program podobný jazyku Scratch verze 1.4 avšak s novými funkcemi jako

například tvorba rekurze. Byl vyvinut roku 2011 jak uvádí (Snap programming

language. 2015). Hned po spuštění programovacího jazyka BYOB se již nezobrazí

postava kočky jak tomu je defaultně v programu Scratch , ale zobrazí se postava

(sprite), který má podobu šipky (maskotem tohoto programu je postavička

nazvaná Gobo). Jméno bylo změněno z "BYOB" na "Snap!" z důvodu druhého

významu zkratky BYOB. Personál Berkeley zažil nějaký odpor ke starému jménu ze

strany potenciálních uživatelů. V současnosti je dostupný ve verzi 3.1.1.

Momentálně je dostupná beta verze 4. Program lze spustit na platformách typu

Windows, Linux a Mac OS X. V mnoha funkcích předstihl program Scratch 1.4

(rekurze, klonování postav a jejich ovládání, výstup do formátu exe a app). Je

Page 28: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

28

dostupný na stránce (http://byob.berkeley.edu/). Je celý zdarma. Je lokalizovaný

do 29 jazyku včetně češtiny. Po programu Scratch 1.4 zdědil podobné grafické

prostředí a jednoduchost ovládaní. Tento program využívají některé vysoké školy

při výuce programovaní např. Berkly (u nás ČVUT v Praze, kde pořádají i bezplatné

učení programování v jazyku BYOB (Snap!). Z důvodů jeho vylepšených funkci

používaných při tvorbě programu začal tým Lifelong KinderGarden Group vytvářet

program Scratch verze 2.0 která měla obsahovat podobné funkce a programové

principy jako BYOB Snap!. Snap (BYOB) běží v prohlížeči pomocí Javascriptu stejně

jako program Scratch je ho možné stáhnout a používat off-line. Autorem tohoto

programu je Jens Mönig a design má na starosti Brian Harvey jak uvádí (Snap

programming language. 2015).

Obrázek 8 Prostředí jazyka Snap! (BYOB) 1

Obrázek byl vytvořen autorem práce v puštěném programovacím jazyku Snap!

(BYOB) na stránce (http://snap.berkeley.edu/)

Page 29: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

29

3.3 Rozdíly verzí 1.4 a 2.0 programu Scratch

Zřejmě nejvíce viditelná změna Nové verze 2.0 je grafické uspořádání

a přeměna dříve šedivě černého pozadí za bílé. Kategorie Příkazů (kartičky

příkazů) se přesunuly z levé části doprostřed. Scéna z kdysi pravé části se

přesunula vlevo a část v, které se skládaly a přesouvaly příkazy a vytvářely

se bloky (tvořil se program). Tato část se přesunula z části dříve uprostřed, nyní se

nachází v pravé části. Níže vidíte grafické porovnání verzí 1.4 a 2.0.

Obrázek 9 Grafické prostředí verze 1.4

Obrázek vytvořen autorem práce.

Nová verze 2.0 umožňuje použití nového příkazu nazvaného blok. Tento nový

příkaz lze vytvořit kliknutím na tlačítko Vytvořit blok. Pro dokončení tvorby bloku

je potřeba zadat mu určité funkce a příkazy a pojmenovat nový blok. Dokončením

vznikne v oblasti příkazů nově vytvořený blok. Pod tento blok můžeme zadat

určitou posloupnost příkazů. Tuto posloupnost lze kdykoliv zavolat ve scénáři

postavy. Pro smazání tohoto bloku je nejprve nutné smazat každý výskyt námi

pojmenované posloupnosti příkazů. Zavolání této posloupnosti umožňuje

například tvorbu rekurze. Verze 2.0 nově umožňuje i tvorbu a ovládání klonů

postav. Další nové příkazy jsou v paletě vnímání například příkazy (aktuální

minuta a jméno uživatele a další). Další změna verze 2.0, je rozdílnost pojmenování

Page 30: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

30

některých příkazů a kategorií příkazů (např. Dříve Proměnné se v nové verzi

nazývají Data nebo dříve podmínky pokud jsou nyní nazvány když. Je možné, že za

tento problém může překlad bez ohlédnutí na předcházející verze. Dalším rozdílem

je kategorie Ovládání ve verzi 1.4 obsahovala i události (např. stisknutí klávesy)

a v nové verzi 2.0 jsou již události ve vlastní kategorii nazvané Události.

Obrázek 10 Grafické prostředí verze 2.0

Obrázek vytvořen autorem práce.

Podíváme-li se, na rozdílnost verzí z čistě technické stránky zjistíme, že

programovací jazyk Scratch 2.0 již neběží v open source enginu squake, ale již je

spustitelný za pomocí Adobe Air nebo v online verzi za pomocí softwaru Adobe

Flash Player. Prozatím existuje beta verze jazyka Scratch 2.0 dostupná na zařízení

android. Další novou funkcí verze 2.0 je takzvaný turbo mód, který razantním

způsobem urychluje matematické operace, ale pokud si tento mód zapnete i při

obyčejném tvoření programů kde využijete například změnu barvy, která se pořád

opakuje, rozdíl nepocítíte. Při programech, kde nevyužíváte matematické operace,

plně nevyužijete funkci turbo mód, program bude mít stejnou délku běhu

v normálním i turbo módu, je možné že se vám dokonce při turbo módu může

program začít sekat (lagovat). Tohoto se nemusíte bát, stačí vypnout turbo mód,

a pokud problém přetrvá tak vypnout a zapnout program. Výhodou starší verze je

údajná větší stabilita programu a menší technické nároky nutné na běh programu.

Proto je doporučována na pomalejší počítače. Verze programu 2.0 na androidu

a iOS bohužel prozatím existuje s chybami. Zatím tam nefunguji některé funkce

jako například ukládání a načítaní projektu. V teto verzi také nejsou obsazeny

Page 31: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

31

žádné postavy (sprity) které by mohli byt příkazy ovládány. Postavy tam lze vložit

z verze 1.4 to samé platí i o scéně a prostředí za postavami a zvuky. Tato verze je

již od Října roku 2014 dostupná v otevřené beta verzi a probíhá její vývoj. Na konci

dubna tohoto roku měla byt vydaná ostrá verze jazyka Scratch na android, ale

vývojáři vydali prohlášení ze se datum vydání odkládá. Pro tento program je nutné

nainstalovat adobe air. Betaverzi jsem zkoušel na dvou různých systémech android

bohužel na obou systémech android (Gingerbread, Jelly Bean) běžel program

s chybami například (nemožnost ukládání a otevírání projektů). Na google play je

možné nalézt program Scratch, ale ve většině případů tam jsou jen placené verze

což odporuje celému konceptu jazyka Scratch nehledě na možné porušeni licenci.

V některých případech jsou na Google play jen programy naprogramované v jazyku

Scratch. Programovací jazyk Scratch Verze 2.0 je spustitelný online ze stránky

(https://scratch.mit.edu/projects/editor/?tip_bar=getStarted...). Pro spuštěni je

nutné mít nainstalovaný Adobe FlashPlayer.

Některé mnou vytvořené projekty fungují jinak ve verzi 1.4 a 2.0 například

projekt střílení na koše, který využívá ukládání časomíry do proměnné

a matematické operace, funguje ve verzi 2.0 jinak než jak bylo původně zamýšleno

a například u tohoto projektu se stává, že se koše přestřelují (míč letí moc vysoko).

Dále ve verzi 1.4 lze určit rychlost spouštění programu to znamená, že program lze

i krokovat po jednotlivě prováděných příkazech. Tato funkce slouží k lepší

názornosti funkce programu a lepšímu pochopení algoritmizace projektu.

Page 32: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

32

4 Praktická část

4.1 Úvod

Cílem Této části je uvést několik úloh. Za samotným řešením stojí analýza úlohy

jako celku a poté její řešení, rozvržením úlohy na více kroků řešení, to se nazývá

algoritmizace úlohy, jak uvádí Vladimír Rambousek (2003). Vůbec se nemusíme

bát dané složitosti samotného programování. K samotnému programování

a k tvorbě programu nestačí jen pouhá znalost programování jak uvádí Karel

Dudáček (1994). Dovolím si tvrdit, že autor měl, namysli i stránku logického

uvažování potřebnou při programování. Schopnost logického uvažování a umění

rozložit si problém na menší a snadněji řešitelné kroky je podle mě velmi důležitá

vlastnost potřebná k programováním. Níže uvádím obsah přiloženého CD

s popisem některých úloh v něm obsažených. Dále uvádím zásady algoritmizace

úloh. Existuje několik pravidel správné algoritmizace úloh. Další kapitolu tvoří

malá sbírka úloh vhodná k výuce programování v jazyce Scratch. Více úloh je

možné nalézt na přiloženém CD nebo online na stránce Scratch. Dále uvádím

několik názorů žáků základní školy na programovací jazyk Scratch. Více

vytvořených projektů vhodných k výuce uvádím v kapitole existující zdroje. Celé

CD uvádím pod licencí (CC-BY-SA). To znamená, že přiložené CD lze měnit

a upravovat, ale je nutné uvést autora a zachovat licenci.

4.2 Popis přiloženého CD

Přiložené CD za použití této práce by mělo tvořit základního průvodce k jazyku

Scratch. Celý obsah CD (bez nahrávek názorů dětí kvůli ochraně soukromí) je volně

dostupný na ulož to a na oficiálních stránkách Scratch na kanálu uživatele sramfi.

Obsah je volně šiřitelný. Obsah CD nesmí být dále komerčně využíván. Obsahuje

celou řadu vytvořených projektů v jazyce Scratch některé úlohy mohou posloužit

k výuce od základních škol až po střední školy. Jiné úlohy ukazují tvorbu her

a vytvoření například vlastního hudebního nástroje tyto úlohy mohou složit jako

inspirace k tvorbě programů.

Přiložené CD je rozděleno do dvou částí a to na část nahrávek názorů dětí ZŠ

a na část věnovanou programu Scratch.

Část NAHRAVKY obsahuje nahrávky názoru dětí na zmiňovaný program. Přepis

nahrávek lze nalézt v kapitole Studie formou rozhovoru níže.

Část nazvaná SCRATCH obsahuje instalační verzi programu Scratch 1.4. Zvolil

jsem tuto verzi z důvodu uváděné vyšší stability a menším nárokům na běh

programu. Dále zde naleznete popis grafického prostředí této verze ve formátu pdf.

Za zmínku stojí i sbírka úloh věnovaná osmi druhů funkcemi příkazů (Pohyb, Zvuk

Page 33: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

33

atd.). A dále samotné programy k procvičení například chytání myši, chytání ovoce

a střílení na koše a další.

Přiložené CD obsahuje i projekty vhodné k procvičení na středních školách ve

výuce fyziky a matematiky. Například ve výuce matematiky lze využít mnou

naprogramované vykreslení funkcí sinus, cosinus tangens a exponenciální funkce.

K výuce fyziky se hodí použít příklady jejíž zadání jsem použil ze sbírek příkladů

z fyziky (VORÁČEK, Miroslav et.al. 1968) například kde se dvě auta potkají,

oplocujeme pozemek (KOMAN Milan a DŘÍZAL, Vladimír 1995 ) a z jaké výšky

padalo těleso (HLAVIČKA,A.,ŘEŠÁTKO,M. PITNER, J., 1972). Dalším příkladem je

výpočet výslednice a rovnováhy sil na jedné nositelce, program jsem použil ze

zdroje (MÍČKAL, Karel. 1998) a přeložil naprogramovaný program z kódu pro

mikropočítač IQ 151 do programu jazyka Scratch. V složce tvorba studentů lze

nalézt několik projektů vytvořených účastníky kroužku počítačů v Domě Dětí

a Mládeže v jazyku Scratch.

4.3 Algoritmizace úloh

Algoritmy používáme všichni při našem běžném životě. Je to určitá posloupnost

kroků řešení a například i logické uvažování nad nějakým problémem. Použití

v běžném životě je velmi komplexní například rozhodování co udělat dříve a co

udělat až déle. Nebo plánování nákupů myšlenkový pochod (nejdříve půjdu do

úseku masných potravin poté do úseku limonád a nakonec nakoupím ostatní

potraviny). Další využití uvedu například na naplánování trasy myšlenkový pochod

(abych ušetřil co nejvíce času a vyhnul se uzávěrkám na dálnicích, pojedu delší

cestou přes okreskové silnice). Algoritmy určitou posloupnost příkazů používáme

možná každý den v našem životě, i když o tom nevíme. Proto lze děti učit i bez

využití počítače základy algoritmizace. Existuje spousta her takzvaného off-line

učení algoritmizace určená pro žáky ZŠ. Zastávám názor, že by k výuce

programování měl být dostupný počítač a dále alespoň projektor k promítání

projektů a aktuální projekci tvorby projektu. V některých situacích nebo při

krizových situacích (výpadek proudu, hromadná porucha PC) se hodí k oživení

výuky použít výuku algoritmizace formou her navíc je lze využít i při výuce ve

venkovním prostředí. Vymýšlení úloh není příliš náročné, v nejzazším případě je

vždy možné nechat se inspirovat v jiných zdrojích například některé úlohy lze

nalézt na stránce ScratchEd.

Správně napsaný program v, kterémkoliv programovacím jazyku rozvržený na

dané kroky příkazů (algoritmy) by měl splňovat tyto podmínky.

Hromadnost

Determinovanost

Konečnost

Rezultativnost

Page 34: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

34

Hromadnost: posloupnost příkazů (dále jen algoritmus) řeší přesně vymezený

problém nebo skupinu problémů lišící se jen zadanými vstupními parametry.

Program by měl správně fungovat i při zadání jiných hodnot například uvedu

program kalkulačka. Program musí umět sečíst jakékoliv dvě čísla správně.

Kalkulačka by asi nebyla moc funkční kdyby uměla sečíst jen dvě čísla (např. Dvě

trojky).

Determinovanost: Po každém provedení příkazů musí být jasně stanoveno

jakým příkazem (nebo algoritmem) se má pokračovat. Musí být zaručeno, že pro

stejné vstupní hodnoty budou stejné výstupní hodnoty. Program musí jasně vědět

co bude následovat. Musí Vždy při zadání stejných vstupních podmínek mít stejné

výstupní parametry například již uvedený projekt kalkulačka program musí vědět

co má po zadání dvou čísel dělat. Program musí vždy například při součtu dva plus

dva dávat výsledek čtyři.

Konečnost a Rezultativnost: Program nebo algoritmus skončí po daném počtu

kroků potřebných k vyřešení úlohy (program se nesmí zaseknout v nekonečných

cyklech). Program musí po splnění určitých podmínek a kroků skončit.

Jak uvádí Eva Mílková (2010).

Dále by měl mít program jasně stanovený začátek a konec co možná pro někoho

úplně jasně nevyplívá z daných podmínek výše.

Výuka Programování v prostředí Scratch na ZŠ podle mě není o přesném

dodržování pravidel psaní algoritmů, ale o tvůrčí činnosti žáků omezení by podle

mě přinesla jen odpor k tomu programování. I přesto však u žáků ZŠ, kteří se

účastní mého kroužku počítačů v DDM Týniště, trvám na jasně stanoveném

začátku a konci programu a funkčnosti. Níže je uvedena menší sbírka úloh, pomocí

které jsem začínal seznamovat poprvé děti s programem Scratch.

4.4 Sbírka úloh

Tato část obsahuje malou sbírku úloh v jazyku Scratch vhodnou pro děti

staršího dětského věku. Úlohy jsou koncipovány pro ve fázi staršího školního věku.

Jak uvádí Vágnerová (2000) fáze staršího školního věku se týká dětí ve věku od

jedenácti do patnácti let. Tyto uvedené úlohy jsem vyzkoušel při výuce

programování v jazyce Scratch v kroužku počítačů v Domě Dětí a Mládeže (Týniště

nad Orlicí). Myslím, že uvedené úlohy jsou vhodné k prvnímu seznámení s

ovládáním a základní tvorbou programu a projektů v jazyce Scratch. Tato Sbírka je

koncipovaná jako úplný základ s programováním v jazyku Scratch více úloh

naleznete na přiloženém CD. Úlohy jsou rozdělené na dvě části nazvané Procvičte a

Vyzkoušejte. Část Procvičte by měla být probírána společně a měla by názorně

ukázat některé funkce. Část nazvaná Vyzkoušejte by měla sloužit k vyzkoušení již

probraných funkcí. Při výuce programování v jazyce Scratch se mi vyplatil přístup

Page 35: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

35

motivace žáků při hledání řešení úlohy. Dále se mi vyplatilo opakování již

probraných příkazů, jelikož vedu kroužek počítačů jen jednou týdně děti, které si

doma nevyzkoušeli probrané příkazy, postupně zapomínaly využití některých

příkazů. Proto je podle mě vhodné často opakovat probrané příkazy nebo alespoň

ty příkazy, se kterými by mohli mít při samotném programování potíže. Velmi se

mi osvědčilo využití projektoru. Všechny děti názorně vidí co je cílem programu a

co má daný program vykonávat a nemusí se cíl říkat jednotlivým žáků zvlášť to je

velká výhoda projektoru. Navíc je tvorba programu názornější a při samotném

popisu aktuálně tvořeného projektu si myslím, že i jednoduší k pochopení. Při

výuce programování v jazyku Scratch doporučuji využívání co nejvíce smyslů žáků.

Jak uvádí níže uvedené motto, které se hodí při použití v jakékoliv výuce.

„Proto budiž učitelům zlatým pravidlem, aby všecko bylo předváděno smyslům,

kolika možno. Tudíž věci viditelné zraku, slyšitelné sluchu, vonné čichu,

chutnatelné chuti a hmatatelné hmatu; a může-li něco býti vnímáno najednou více

smysly, budiž to předváděno více smyslům.“ J. A. Komenský, Velká didaktika

(Didactica Magna) (Komenský, 1958, str. 180)

Dále jsem zkoušel ve svém kroužku samostatné heuristické řešení daných úloh

žáky. Tato metoda přinesla výsledky ve formě většího zájmu žáky o samotné

programování v jazyku Scratch například úlohy jako přidání druhého hráče

v projektu nazvaného fotbal nebo hledání chyb projektů např. v projektu hudební

nástroj. Níže uvedené úlohy, byli vytvořeny v jazyce Scratch 1.4. Samostatné

procvičování níže uvedených úloh bylo prováděno také na verzi 1.4. Pokud není

uvedeno jinak pak obrázky obsažené v této kapitole jsou dílem autora této práce.

Page 36: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

36

Sbírka úloh:

Vkládáme nové postavy a scény.

Vyzkoušejte

Vložte nové postavy a novou scénu.

Tvoříme první programy

Úloha 1 Rozhýbání postavyProcvičte

Po klinutí na zelenou vlajku

posun o 10 kroku

Vyzkoušejte

Jak zadáme posun o padesát kroků ?

Jak zadáme posun na druhou stranu (vlevo) ?

Vraťte postavu na přibližné stejné původní místo bez použití příkazů.

Úloha 2 Posun postavy Procvičte

Změn y o ...

Změn x o

Vyzkoušejte

kombinujte oba příkazy

Page 37: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

37

Vytvořte pohyb postavy kocoura tak aby se vyhnul překážce ve své cestě.

V při této ukázce jsem využil příkaz pero aby byla jasně viditelná trajektorie

postavy

Obrázek 11 Ukázka projektu 1

Naprogramujte postavu tak aby se odrážela od kraje, ale aby se po odražení

přetočila jen vlevo (zrcadlově, ne vzhůru nohama). V případě nouze (nápověda

hledejte v horní části obrazovky postavu kočky). Možností řešení této úlohy je více

uvádím jen jedno možné řešení.

Očekávaný výstup

Úloha 3 Naklánění postavyProcvičte

Po stisku klávesy mezerník

Otoč se ve směru hodinových ručiček o 15°

Page 38: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

38

Vyzkoušejte

Dokážete narovnat postavu kočky bez použití Příkazů?

V případě nouze nápověda hledejte v horní části obrazovky postavy kočky.

Kombinujte natočení a změnu x o …

Co se stalo ?

Kombinujte natočení a posun o

Co se stalo?

Úloha 4Měníme vzhledProcvičte

Po stisku klávesy změň efekt barva.

Vyzkoušejte

Změňte vzhled efektem změň efekt barva a naprogramujte ať kocour povídá

měním vzhled. Uvádím jen obrázek příkazu povídej.

Animujte chůzi kocoura za pomocí změny kostýmů.

Tento program mohl být napsat i jednodušším způsobem za použití cyklu avšak

v tomto programu stačí napsat první tři příkazy a zbytek kopírováním vložit

pod sebe. Takto si žáci zvyknou na delší programy.

Očekávaný výstup

Page 39: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

39

Vytvořte program, který provede na postavě efekt víření

Takto vypadá změna efektu víření o sto.

Očekávaný výstup

Obrázek 12 Efekt změna víření

Page 40: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

40

Úloha 5 Scratch dokáže i kreslit

Procvičte

Vyzkoušejte

Vytvořte trojúhelník za pomocí posunu a otočeni.

Očekávaný výstup.

Vyzkoušejte změnu barvy a tloušťky a posunu za pomocí šipkových kláves tzv.

Po stisku šipka nahou změň y o 10 apod.

Očekávaný výstup

Page 41: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

41

Úloha 6 cykly

Procvičte

změň y o 10 změň x o 10 opakuj 15 krát

Vyzkoušejte

Vytvořte za pomocí cyklu,posunu a otočení trojúhelník.

Očekávaný výstup.

Page 42: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

42

Vytvořte za pomocí stejných příkazů kruh.

Očekávaný výstup.

Vytvořte malovací nástroj pomocí příkazů sleduj ukazatel myši posun pero dolu

opakuj dokola.

Očekávaný výstup.

Úloha 7. podmínky a vnímání okolí

Procvičte

Vložíme postavy (Sprity) kočky a jídla dále vložíme příkazy po stisku klávesy,

posun, pokud, dotýká se miska, pomysli mňam, zvětší velikost o 25

Page 43: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

43

Vyzkoušejte

Porovnejte ovládání postav za pomocí po stisku klávesy pohyb a pokud klávesa

stisknuta opakuj dokola pohyb porovnejte takto projety nazvané pohyb šipkami a

fotbal.

Vytvořte program, který se vás bude ptát na jméno a na vaši odpověď program

zareaguje říkáním ahoj a vaše jméno.

Očekávaný výstup.

Vytvořte projekt, kde budeme pomocí délky stisku kláves měnit sílu a směr

vystřelení fotbalového míče.

Očekávaný výstup.

Page 44: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

44

Page 45: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

45

Úloha 8 proměnné (vytváříme skóre)

Procvičte

Vytvoříme si proměnou skóre a vložíme postavu vesmírné lodě, laserových střel

a nepřátelských lodí vesmírné lodi přidělíme ovládání vlevo a vpravo a střelba

laserovým střelám přidělíme schování a ukázání v ten pravý čas a dobu letu.

Nepřátelským lodím přidělíme odrážení od krajů a snižování souřadnic v ose y a

vnímání když se dotýkají střel, schovej se a zvyš skóre o jedna, opakuj dokola. Je

vhodné podívat se přímo do projektu vesmírné lodě, z důvodů obsáhlosti kódu ho

zde neuvádím.

Vyzkoušejte

Vytvořte svou hru, kde bude použito skóre. Například chytání ovoce. Po každém

chycení se připočte skóre.

Upravte projekt nazvaný fotbal tak aby počítal góly do branek. A přidejte

druhou postavu, která bude ovládaná stejně jako první postava, ale jinými

klávesami (WASD).

Úloha 9 seznamy (vytváříme seznam nákupu a inventář věcí) Procvičte

Společně si vložíme několik spritů zboží a vytvoříme seznam nakoupené zboží.

Po stisku bude zobrazena cena potraviny a celková cena nákupu a zboží bude

přidáno do seznamu nakoupeného zboží viz blíže v projektu nákupní koš3.

Vyzkoušejte

Vytváříme jednoduchý kódovací nástroj. Tento nástroj vám poví každé slovo

pozpátku. Z důvodu rozsáhlosti kódu tento program zde neuvádím. Tento program

lze nalézt na přiloženém CD pod názvem kódování.

Vytvořte jednoduchý seznam nazvaný zboží a proměnou nazvanou pult. Do

seznamu zboží uložte tři libovolné položky. Funkcí programu by mělo být

Page 46: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

46

vyjmenování jednotlivých položek seznamu za pomocí proměnné pult.

Obrázek 13 Ukázka tvorby seznamu 1

Tento projekt byl převzat z (Lifelong Kindergarten Group, MIT Media Lab.

2011b a přeložen autorem práce. )

Vytvořte seznam se jmény, který bude umět hledat obsažená jména.

Zkuste tento program upravit tak aby vám zobrazil i pozici výskytu hledaného

jména. Z důvodu rozsáhlosti tohoto programu zde neuvádím kód programu.

Tento program lze nalézt pod názvem pole A10 hledání jmen a pole A10 hledání

v poli.

Úloha 10 část matematických funkcí Procvičte

Vytváříme kalkulačku, její funkcí bude součet, odečet, násobení a dělení dvou

čísel. Vytvoříme si proměnné čísloA a čísloB dále postupujeme dle předem

vytvořeného projektu nazvaného Kalkulátor.

Vyzkoušejte

Vytvořte nástroj na samotné opakování matematických operací. Pomocí úpravy

projektu kalkulačka a za pomocí náhodného výběru čísla. Budeme pracovat s

rozmezím od -100 do 100 .Tento projekt lze nalézt na CD pod názvem Kalkulačka.

Vytváříme svou vlastní hru. Správná hra by měla mít skóre a dobré ovládání.

Zkuste do hry zakomponovat sprity, které při chycení postavou budou odečítat

skóre.

Využijeme náhodného výběru čísla k zobrazení spritu, určeného k chycení

(chytání ovoce) nebo určeného k zničení (vesmírné lodě), na náhodných

souřadnicích kartézské soustavy (x,y)

Page 47: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

47

4.5 Studie formou rozhovoru o programu Scratch

Tato kvalitativní studie měla za cíl zjistit názory žáků ZŠ k programu Scratch. Tuto studii jsem prováděl na studentech základních škol za informovaného souhlasu rodičů. Několikrát jsem se setkal s odmítnutím provedení nahrávek ze strany rodičů, učitelů a dětí. Bohužel měli některé základní školy s nahráváním žáků předchozí negativní zkušenost. Provedené nahrávky obsahují dva studenty základní školy, kteří se s jazykem Scratch setkali na mém kroužku počítačů, ostatní nahrávaní žáci neměli předchozí zkušenost s programovacím jazykem Scratch. Také jsem se u některých žáků zvláště z prvního stupně ZŠ setkal s malou hovorností způsobenou nejspíše trémou z nahrávání. Tato studie je anonymní proto budu označovat žáky čísly viz. (žák číslo 1, žák číslo 2 atd.)

Žák číslo 1

Otázka

Tobě se líbil tenhle program?

Odpověď

Tak mě se docela tenhle program líbí, že děti může vlastně naučit něco s počítačem a vlastně ve škole by to mohlo taky jít, protože ve školách jak bych to řekl

Otázka

Je to docela nuda ve škole ne ?

Odpověď

No docela jo, když děti přivítají něco nového tak většinou pár dní baví a pak je to třeba přestane bavit.

Otázka

A dělali jste tohle třeba ve škole někdy?

Odpověď

Nikdy ne nikdy jsme to nedělali a docela bych to rád zkusil

Otázka

Vyzkoušel bys si ho třeba i doma někdy?

Odpověď

Klidně bych to vyzkoušel, kdybych měl na to počítač což mám, ale jestli je to pro silný počítače tak to by asi.

Page 48: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

48

Otázka

V čem vidíš třeba výhodu a nevýhodu?

Odpověď

Tak Výhodu vidím v tom, že se něco můžeme naučit na počítači to už jsem říkal a nevýhoda je v tom žádnou nevýhodu nevidím akorát že to trošku zabere času ale tak to skoro všechno

Otázka

A je to super ne vlastní tvorba her?

Odpověď

Jo je to super.

Žák číslo 2

Otázka

Tak jak tě to zaujalo třeba tohle (program Scratch)?

Odpověď

Docela mě to zajímalo je to zajímavý.

Otázka

A třeba bavilo by tě to ve škole místo normální výuky?

Odpověď

Jasně.

Otázka

A v čem třeba vidíš výhody a nevýhody třeba i oprati normální výuce?

Odpověď

Že se nemusíš tolik učit a pochopíš víc

Otázka

Stáhneš si to třeba domu a vyzkoušíš si to doma?

Odpověď

No pokud najdu tu jmenovku tak jo. Jak se to jmenuje. Jestli to nezapomenu tak jo.

Žák číslo 3

Otázka

Co si myslíš o tomhle programu?

Odpověď

Je to je to dobrej program pro děti.

Page 49: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

49

Otázka

Myslíš že v něm něco budeš dělat doma nebo zkoušel bys v něm něco?

Odpověď

Jo, jo

Otázka

Uvítal bys to na základní škole?

Odpověď

Jo.

Žák číslo 4

Otázka

Co si myslíš o programu Scratch?

Odpověď

Že je to dobrý a měli bychom v tom pokračovat.

Otázka

V čem vidíš hlavní výhodu?

Odpověď

Je to jednoduchý. Ale zas to s tím nechci přehánět.

Žák číslo 5

Otázka

Co si myslíš o programu Scratch?

Odpověď

Je to dobrý, ale moc se mi to už jako to.

Ale někdy bychom v něm mohli dělat, ale jenom někdy.

Otázka

V čem vidíš výhodu a nevýhodu programu Scratch? Co tě tam baví co tě tam nebaví?

Odpověď

Baví mě to s ním, ale nebaví mě stím pořád dělat ,ale jako já já už moc nechci.

Page 50: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

50

Závěr

Cílem této práce bylo přiblížit rodičům, dětem a učitelům programové prostředí

jazyka Scratch. Mnohé základní školy ještě do své výuky nezavedly základy

algoritmizace a programování. Tato práce má ukázat učitelům informatiky, že

programovací jazyk Scratch je vhodný k prvnímu seznámení s algoritmizací

a programováním. Také je tento program vhodný pro samostatnou tvorbu her,

animací a projektů tvořených žáky doma.

Tato práce měla popsat programové prostředí jazyka Scratch. Tento cíl podle

mě splnila. Dále měla uvést existující zdroje vhodné k výuce programování

v programu Scratch. Uvádím jak cizojazyčné tak i České zdroje obsahující návody

tvorby programů. Bohužel i při pečlivém hledání jsem nalezl velmi málo zdrojů

napsaných v Českém jazyce. Při výuce programování v programu Scratch je nutné

při použití cizojazyčných projektů většinu programů upravit to samé platí i pro

využívání cizojazyčných návodů k tvorbě programů. Dále uvádím i některé úpravy

jazyka Scratch (BYOB, ScratchJr) a věnuji se i samotným rozdílům verzí jazyka

Scratch 1.4 a 2.0.

Velký přínos mé práce vidím v praktické části, která obsahuje tvořené úlohy

a nahrávky žáků na přiloženém CD. Práce obsahuje projekty, které by mohli být

využity při výuce programování v jazyce Scratch v základních školách nebo

kurzech programování. Všechny projekty obsažené na CD jsem nahrál na oficiální

Scratch stránku programového jazyka Scratch. Dále na přiloženém CD najdete

několik projektů vhodných k mezipředmětové výuce. Ve svých projektech ukazuji

i některé učivo středních škol předmětů matematiky a fyzika. Domnívám se, že

tento program má velké využití i ve výuce na středních školách a gymnáziích

(nejvíce asi v předmětech informatiky, matematiky a fyziky). Další částí obsahu CD

jsou anonymní nahrávky názoru dětí na programovací jazyk Scratch.

Page 51: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

51

Použitá literatura

Attribution-NonCommercial-ShareAlike 3.0 Unported. 2004 CreativeCommons. [Online] [Citace: 10. Leden 2015.] Dostupné z: http://creativecommons.org/licenses/by-nc-sa/3.0/.

BARKER, L 2008. Snap, Create and SharewithScratch (Case Study 5). In promising 1.Practices workshop

BADGER, Michael 2009Scratch 1.4: Beginner’sGuide. Birmingham, UK : PacktPublishing, ISBN 978-1847196767.

BLANTON, Amos. 2014 Source Code repository for Scratch 1.4 [online]. [cit. 15.4.2015]. Dostupné z https://github.com/LLK/Scratch_1.4

Code.org, 2015 FAQ Často kladené dotazy. Code.org [online]. [cit. 2015-04-2]. Dostupné z http://hourofcode.com/cz#faq

Code.org, 2015Anybodycanlearn . Code.org [online]. 2015 [cit. 2015-04-2]. Dostupné z http://code.org/

CreativeComputing, 2015 Dowload . CREATIVE COMPUTING [online]. [cit. 2015-04-2]. Dostupné z http://scratched.gse.harvard.edu/guide/download.html

DevTech Research Group at Tufts University, theLifelong Kindergarten Group at the MIT Media Lab, a thePlayful Invention Company.AboutScratchJr [Online] (2006). [Citace: 15. Února 2015.] Dostupné z:http://www.scratchjr.org/about.html

DUDÁČEK, Karel 1994 Poprvé u počítače ANEB Začínámepracovat s PC 3. Upravené vydáníČeskéBudějovice KOPP, 101st. ISBN 80-85828-04-9

Epizoda 1 Pohyb 2014 In: Youtube [online]. last modified on 6.09.2014 [cit.

2015-04-10]. Dostupné z:

https://www.youtube.com/channel/UCYnJZnoMtiEc3qTwM43eRXA . Kanál

uživatele .CG Scratch Team

Faltýnek, Lukáš. 2012 Naučte své děti programovat. Lukáš Faltýnek a autoři o životě a světě kolem nás. [Online] [Citace: 15. duben 2015.] Dostupné z: http://lukas.faltynek.com/2012/02/15/naucte-sve-deti-programovat-uvod-instalace-vyvojoveho-prostredi-scratch-dil-i/.

Fasko, Daniel Jr. 2000-2001 Education and creativity. CreativityResearchJournal. 13, stránky 317-327.

GOLIKOV Denis 2013Книгаюныхпрограммистовна Scratch. Smashwords[Citace: 10. Duben 2015.] Dostupné z:https://rcokoit.ru/dld/blog/scratch56.pdf

Halousková, Alena. 2012 UčebnicejazykaScratch. [Online] [Citace: 15. prosinec 2012.] Dostupné z:http://perun.ms.mff.cuni.cz/ucebnicejazykascratch/download/ucebnice.zip.

Page 52: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

52

Halousková, Alena.2012Učebnice jazyka Scratch. [Online] [Citace: 15. prosinec 2012.] Dostupné z: http://perun.ms.mff.cuni.cz/ucebnicejazykascratch/.

Hardware ThatCanConnect to Scratch. 2014 In: Scratch Wiki [online]. Lifelong Kindergarten Group, MIT Media Lab, last modified on 21. 11. 2014 [cit. 2015-04-20]. Dostupné z: http://wiki.scratch.mit.edu/wiki/Hardware_That_Can_Connect_to_Scratch

HistoryofScratch. 2015 In: Scratch Wiki [online]. Lifelong Kindergarten Group, MIT Media Lab,C [cit. 2015-04-20]. Dostupné z http://wiki.scratch.mit.edu/wiki/History_of_Scratch

HLAVIČKA,A.,ŘEŠÁTKO,M. PITNER, J., 1972 Fyzika pro odborná učiliště a učňovské školy Státní pedagogické nakladatelství Praha st.48-85 ISBN 14-265-84

JANEČEK,Vladimír. 2013 Programování pro děti Scratch: vždyť tvořit je tak krásné [Zkušenosti] [online] [cit. 14.4.2015]. Dostupné z: http://superapple.cz/2013/03/programovani-pro-deti-scratch-vzdyt-tvorit-je-tak-krasne-zkusenosti/

KLUBAL, Libor , 2007-2015 Anybodycanlearn . learnscratch.org [online]. 2007-2015 [cit. 2015-04-4]. Dostupné z http://learnscratch.org/

KOMAN Milan a DŘÍZAL, Vladimír 1995 Praxe učitele matematiky-fyziky-informatiky Prometheus ISBN 80-7196-060-8

Komenský, J. A. (1958). Velká didaktika. Vybrané spisy Jana Amose Komenského. Praha: SPN. převzato z: Maňák, J., Švec, V. (2003). Výukové metody. Brno: Paida, 219 str.

Kinect2Scratch 2012 Developingwith Kinect2Scratch [online] [cit. 10.4.2015]. Dostupné z: http://scratch.saorog.com/setup.pdf

learnscratch.org, 2007-2015Anybodycanlearn . learnscratch.org [online]. 2007-2015 [cit. 2015-04-4]. Dostupné z http://learnscratch.org/Lesson 1 - ScratchBasics. 2011 In: Youtube [online]. last modified on

24.02.2011 [cit. 2015-03-25]. Dostupné z:

https://www.youtube.com/watch?v=0pxaFzRtx7k. Kanál uživatele

WPLScratchProject.

Lifelong Kindergarten Group, MIT Media Lab. 2011a. GettingStartedwithScratch. Scratch. [Online] [Citace: 15. březen 2015.] https://cdn.scratch.mit.edu/scratchr2/static/__587558227bfd4f7643eb65ad48850d03__//pdfs/help/Getting-Started-Guide-Scratch2.pdf

Lifelong Kindergarten Group, MIT Media Lab. 2011bScratch Programingconcepts. [Online] [Citace: 15. Duben 2015.] Dostupné z http://www.worcpublib.org/pdf/scratch/Scratch%20Programming%

20Concepts.pdf

Lifelong Kindergarten Group, MIT Media Lab. 2015aAboutScratch. [Online] last modified on 24. 4. 2015 [Citace: 15. Březen 2015.] https://scratch.mit.edu/about/.

Page 53: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

53

Lifelong Kindergarten Group, MIT Media Lab. 2015bScratch statistics. Scratch. [Online] last modified on 24. 4. 2015 [Citace: 27. duben 2015.] Dostupné z: https://scratch.mit.edu/statistics/

LifelongKindergarten Group, MIT Media Lab. 2015c Scratch. [Online] last modified on 24. 4. 2015 [Citace: 25. duben 2015.] www.scratch.mit.edu.

Malan, David J. a Leitner, Henry H. 2007,Scratch for buldding computerscientists. SIGCSE Bull., Sv. 39, 1.

MALÝ, Martin. 2010 Jak vést děti k programování [Online] Lupa.cz InternetInfo, s.r.o [Citace: 25. duben 2015.] Dostupné z: http://www.lupa.cz/clanky/jak-vest-deti-k-programovani/

Meerbaum-Salant, Orni, Armoni, Michal a Ben-Ari, Mordechai (Moti). 2010Learning computerscienceconceptswith Scratch. ProceedingsoftheSixth international workshop on Computing educationresearch. Aarhus, Denmark : ACM

MÍČKAL, Karel. 1998 Technická mechanika 2 3. nezměněnévydáníInformatorium Praha 75-80st. ISBN80-86073-23-8

MÍLKOVÁ, Eva. et al. 2010 Algoritmy-základy konstrukce v příkladech a jejich vizualizace GAUDEAMUS ISBN 978-80-7435-064-1

Ministerstvo Školství, Mládeže a Tělovýchovy MINISTR ŠKOLSTVÍ PODPORUJE „EVROPSKÝ TÝDEN PROGRAMOVÁNÍ A INFORMATICKÉHO MYŠLENÍ“ A VYHLAŠUJE SOUTĚŽ PRO TŘÍDY 2014 [online] [cit. 19.4.2015]. Dostupné z: http://www.msmt.cz/ministerstvo/novinar/ministr-skolstvi-podporuje-evropsky-tyden-programovani-a

RAMBOUSEK,Vladimír 2003 Praktické činnosti Práce s počítačem (1) FORTUNA ISBN 80-7168-873-8

RESNIK, M. et al.2004.Scratch: A Sneak Preview[Online] (2004). [Citace: 15. Duben 2015.] Dostupné z: https://llk.media.mit.edu/papers/ScratchSneakPreview.pdf

RESNICK, M. 2007Sowingtheseedsfor a more creative society. In LearningandLeadingwith Technology, s. 18–22Scratch - Ahoj sveterekl kocour a zacaltancit.ogv. 2012 In: Youtube [online]. last

modified on 24.02.2012 [cit. 2015-04-5]. Dostupné z:

https://www.youtube.com/watch?v=AtItxeREx-o. Kanál uživatele Lukáš

Faltýnek

ScratchEd.(2004) [Online] [Citace: 17. duben 2015.] Dostupné z : http://scratched.media.mit.edu/.

ScratchJr. 2014 In:Scratch Wiki [online]. Lifelong Kindergarten Group, MIT Media Lab, last modified on 11. 5. 2014 [cit. 2015-04-10]. Dostupné z http://wiki.scratch.mit.edu/wiki/ScratchJr

Page 54: Základy algoritmizace a programování v prostředí ScratchZáklady algoritmizace a programování v prostředí Scratch Hradec Králové, 2014. Bakalářská práce na Přírodovědecké

54

Scratch Support Materials. 2015 In: Scratch Wiki [online]. Lifelong Kindergarten

Group, MIT Media Lab, last modified on 15. 5. 2015 [cit. 2015-04-2]. Dostupné z

http://wiki.scratch.mit.edu/wiki/Scratch_Support_Materials

ScratchtutorialCz 1 2013 In: Youtube [online]. 19.09.2013 [cit. 2015-04-11].

Dostupné z: https://www.youtube.com/watch?v=6WAu3l2n0Es . Kanál uživatele

.Proto159753

scratch-video1-jan-hrubos-navody. 2014 In: Youtube [online]. last modified on

14.04.2014 [cit. 2015-03-20]. Dostupné z:

https://www.youtube.com/watch?v=rKhOAHySWMM. Kanál uživatele Loopie .

Snap programming language. 2015 In: Wikipedia: The free encyklopedia [online]. St. Petersburg (Florida): Wikimedia Foundation, last modified on 31. 3. 2015, 21:20 [cit. 2015-04-15]. Dostupné z: http://en.wikipedia.org/wiki/Snap!_%28programming_language%29

Source code. 2014 In: Scratch Wiki [online]. Lifelong Kindergarten Group at the MIT Media Lab, last modified on 17. 10. 2014 [cit. 2015-04-28]. Dostupné z http://wiki.scratch.mit.edu/wiki/Source_code.

SZLAGOR. Piotr, 2013 PROGRAMOWANIE WIZUALNE DLA KAŻDEGO. Przewodnik po Scratch ThinkGlobal ISBN: 978-83-63286-07-1

ŠUMPELA,Přemek. 2013 Programování pro děti nebo úplné začátečníky [Online] [Citace: 15. Duben 2015.] Dostupné z:http://programovaniprodeti.cz/start

The LEAD Project 2013 Programování pro děti COMPUTER PRESS ISBN: 978-80-2513-809-0

Turtle graphics. 2015 In: Scratch Wiki [online]. Lifelong Kindergarten Group atthe MIT Media Lab, last modified on 26. 3. 2015 [cit. 2015-04-28]. Dostupné z http://en.wikipedia.org/wiki/Turtle_graphics

University of California at Berkeley Snap![Online] 2009. [Citace: 10. Duben 2015.] Dostupné z: http://snap.berkeley.edu/

UPTON, Eben Upton. a HALFACREE Gareth 2013 Raspberry Pi Uživatelská příručka COMPUTER PRESS ISBN 978-80-251-4116-8

VÁGNEROVÁ, M. 2000 Vývojová psychologie. Praha : Portál,ISBN: 80-7178-308-0

VORÁČEK, Miroslav et.al. 1968 Sbírka úloh z fyziky 2. nezměněné vydání Státní pedagogické nakladatelství Praha st.25-30 ISBN 14-558-74