Hlavní navigace

Programovací jazyky určené pro výuku programování (2)

15. 7. 2010
Doba čtení: 17 minut

Sdílet

Ve druhé části článku o programovacích jazycích vhodných pro výuku programování se zaměříme především na ty jazyky, které kladou důraz na návrh vhodné struktury dat popř. se s pomocí nich dá procvičit objektově orientovaný návrh a objektově orientované programování. Zmíníme Pascal, Python, Squeak a NetLogo.

Obsah

1. Programovací jazyk Pascal – výuka návrhu datových struktur a algoritmizace

2. Využití Pascalu v minulosti

3. Programovací jazyk Pascal v současnosti

4. Python aneb síla dynamicky typovaného programovacího ja­zyka

5. Vývojové prostředí pro Python

6. Výukové nástroje kombinující programovací jazyk a interaktivní grafické uživatelské rozhraní

7. NetLogo

8. Squeak

9. Odkazy na Internetu

1. Programovací jazyk Pascal – výuka návrhu datových struktur a algoritmizace

Při popisu programovacích jazyků, které byly navrženy s ohledem na to, aby byly snadno použitelné při výuce programování, samozřejmě nesmíme zapomenout ani na programovací jazyk Pascal, který byl po poměrně dlouhou dobu používán jak ve školství, tak i, což je pro „výukový jazyk“ poněkud netypické, pro tvorbu komerčních aplikací. Jedná se o jazyk, který byl navržen již v průběhu let 1969 a 1969 Niklausem Wirthem s ohledem na to, aby se v něm mohly jednoduše psát programy splňující zásady strukturovaného programování (Wirth ještě před vytvořením Pascalu napsal vlastní verzi programovacího jazyka ALGOL nazvanou ALGOL W, kterým je Pascal inspirován). S ohledem na podporu strukturovaného programování obsahuje Pascal oba typy (nepočítaných) programových smyček, tj. smyčku s podmínkou vyhodnocovanou na začátku (WHILE-END) i smyčku s podmínkou uváděnou a vyhodnocovanou na konci (REPEAT-UNTIL). Kromě těchto dvou typů smyček obsahuje Pascal i počítanou smyčku FOR, která je zde ovšem, na rozdíl od mnoha dalších (Algolských) programovacích jazyků, omezena na použití celočíselných proměnných vystupujících v roli počitadla smyčky.

Obrázek 1: Historická první verze vývojového prostředí Delphi 1.0 běžícího ve Windows 3.11.

Další vlastností Pascalu, jež vychází ze zásad strukturovaného programování, je podpora pro tvorbu uživatelských procedur a funkcí (ty byly v původním jazyku poměrně striktně oddělené, na rozdíl od céčka, C++ či Javy), dokonce bylo možné tvořit procedury a funkce uvnitř jiných procedur a funkcí, což například umožňovalo lépe program rozdělit na vzájemně oddělené a izolované části. Pravděpodobně nejzajímavější vlastností Pascalu jsou však jeho vestavěné datové typy (například typ množina, který bylo možné využít mnoha způsoby) a současně i možnost tvorby vlastních datových typů. Z těchto důvodů, ke kterým ještě můžeme přidat možnost jednoprůchodového (a tedy i velmi rychlého) překladu Pascalovských programů do strojového kódu, se programovací jazyk Pascal vyučoval (a dodnes vyučuje) jak na středních školách, tak i na některých školách vysokých jako první programovací jazyk, i když mnohé školy postupně přechází na některé jiné programovací jazyky, například na Javu nebo Python. Jedním z důvodů přechodu na jiný programovací jazyk je i to, že standardní Pascal nepodporuje OOP, i když při použití Delphi či FreePascalu je díky rozšíření jazyka OOP plně podporováno.

Obrázek 2: Grafické uživatelské rozhraní projektu Lazarus, který se snaží napodobit Delphi. Tento projekt lze používat jak na MS Windows, tak i na Linuxu.

2. Využití Pascalu v minulosti

Překladače programovacího jazyka Pascal se začaly poměrně masivně rozšiřovat na různé typy počítačů již během první poloviny sedmdesátých let minulého století. Jednalo se většinou o implementace pro sálové počítače a minipočítače. Později, konkrétně v osmdesátých letech minulého století, vznikly překladače Pascalu pro většinu domácích osmibitových mikropočítačů. Pravděpodobně nejznámějším z těchto překladačů byl Turbo Pascal určený původně pro osmibitové mikropočítače s operačním systémem CP/M. V tuzemských podmínkách byly překladače tohoto programovacího jazyka dostupné například na počítačích JSEP (Jednotný systém elektronických počítačů) používaných na některých vysokých školách, dále na počítačích ADT a taktéž na prakticky všech československých osmibitových mikropočítačích, především na PMD-85 a taktéž na IQ-151, kde mohl být editor a překladač Pascalu použit v rámci operačního systému AMOS.

pc104

Obrázek 3: Hlavní menu editoru a překladače programovacího jazyka PASCAL na československém osmibitovém mikropočítači PMD-85.

Později byl Pascal implementován firmou Borland na osobních počítačích PC a právě zde se dočkal pravděpodobně svého největšího rozšíření. Produkty Turbo Pascal a Borland Pascal byly na těchto počítačích oblíbené zejména z toho důvodu, že obsahovaly integrované vývojové prostředí s editorem, překladačem i debuggerem a v pozdějších verzích i s integrovanou kontextovou nápovědou. Překlad byl navíc tak rychlý (především při překladu pouze do operační paměti, nikoli při zápisu výsledného spustitelného .EXE souboru na disk), že se Turbo Pascal dal používat prakticky stejným způsobem jako interpretované programovací jazyky, zejména v té době stále oblíbený a rozšířený Basic. Na tomto místě je možná vhodné zmínit historku o tom, jak Bill Gates osobně velmi nelibě nesl, že Turbo Pascal má tak rychlý překladač, protože Microsoft nebyl schopný v té době přijít s produktem, který by byl podobně rychlý a současně nenáročný na systémové prostředky jako Turbo Pascal. Gatesova frustrace patrně vycházela i z toho, že sám začínal jako vývojář programovacích jazyků (MBasic, AppleSoft Basic) určených původně pro osmibitové mikropočítače.

Obrázek 4: Hlavní menu vývojového prostředí Turbo Pascalu 1.0.

Zajímavá fakta o Turbo Pascalu 1.0:

  • Byl provozovatelný na počítačích s mikroprocesorem Intel 8086 (DOS) nebo Zilog Z-80 (CP/M)
  • Vyžadoval pouze 64 kB paměti
  • Dodáván na disketě, na níž bylo obsazeno pouze 130 kB
  • Disketa obsahovala pouze deset souborů, viz následující tabulka:
Soubor Význam
TURBO.COM compiler and editor
TURBOMSG.OVR error messages file
TINST.COM development environment installation program
TINSTMSG.OVR message file for TINST program
TLIST.COM program lister
ERROR.DOC addendum to the Turbo Reference Manual
CALC.PAS MicroCalc (spread sheet demo program)
CALCMAIN.PAS Root demo program demonstrating include file usage
CALC.HLP On-line manual for MicroCalc
CALCDEMO.MCS Example spread sheet definition

Obrázek 5: Disketa určená pro počítače IBM PC popř. pro jejich klony, která obsahuje Turbo Pascal verze 1.0.

3. Programovací jazyk Pascal v současnosti

V současnosti lze pro výuku programování s využitím Pascalu použít buď některou ze starších verzí Turbo Pascalu či Borland Pascalu (například na některých tuzemských školách se dodnes zachovaly učebny se staršími počítači s nainstalovaným MS-DOSem a právě některým vývojovým prostředím firmy Borland, což například z ekonomického hlediska, ale i kvůli snadné administraci nemusí být úplně špatné řešení), nebo lze použít vývojový nástroj Delphi firmy Embarcadero Technologies (původně Borland), popř. jako ekonomicky výhodnější řešení volně dostupné integrované vývojové prostředí Lazarus, které pro překlad využívá FreePascal (samotný FreePascal je totiž tvořen pouze překladačem, takže se pro výuku moc nehodí). Integrované vývojové prostředí Lazarus lze využít na platformě MS Windows, Linux i Mac OS X, přičemž vytvářené programy jsou, samozřejmě ve zdrojové formě, mezi těmito platformami přenositelné.

Odkazy na stránky týkající se prostředí Lazarus:

  1. Lazarus (Home page)
    http://www.la­zarus.freepas­cal.org/
  2. Lazarus FAQ
    http://wiki.la­zarus.freepas­cal.org/Lazarus_Faq
  3. Lazarus (Software)
    http://en.wiki­pedia.org/wiki/La­zarus_%28softwa­re%29
  4. FreePascal
    http://www.fre­epascal.org/

4. Python aneb síla dynamicky typovaného programovacího ja­zyka

Dalším programovacím jazykem, na který nemůžeme v tomto článku zapomenout, je Python. Nejedná se sice o programovací jazyk specializovaný na výuku programování (toto zaměření měl spíše další jazyk vytvořený Guido van Rossumem nazvaný ABC), ovšem díky některým svým vlastnostem začal Python postupně pronikat i do školních učeben a laboratoří. Jednou z významných vlastností Pythonu je jeho důraz na minimalistickou syntaxi (malý počet klíčových slov), takže první programy je možné začít psát již po několika desítkách minut studia. To je velmi důležité především z toho důvodu, aby se předmět typu „výuka programování“ nakonec nezvrhl pouze ve vysvětlování syntaxe a sémantiky některého programovacího jazyka, což se často stane například při pokusu o nasazení C++ či Java (ale v minulosti i Pascalu, který je v některých ohledech značně rigidní) jakožto prvního programovacího jazyka, se kterým se studenti mají setkat.

Obrázek 6: Jednou z pomůcek programátora v Pythonu je IPython, což je interaktivní shell, v němž je možné editovat, spouštět i ladit Pythonovské programy. IPython může nahradit specializovaná vývojová prostředí, navíc je spouštěn přímo v textové konzoli, takže je s jeho pomocí možné ladit i skripty umístěné na jiném počítači (připojení přes SSH atd.).

Obliba Pythonu při výuce spočívá i v tom, že podporuje (ale současně nevyžaduje!) objektově orientovaný přístup v programování. V praxi se například mohou studenti nejdříve seznámit se základními konstrukcemi používanými při strukturovaném programování (tj. s podmínkami, programovými smyčkami, uživatelskými funkcemi) a teprve po zvládnutí základních technik se mohou začít věnovat objektově orientovanému návrhu a objektově orientovanému programování. Další vlastností Pythonu, které zjednodušuje programování jak začátečníkům, tak i profesionálům, je dynamické typování, což znamená, že se kontrola typů provádí až v době běhu programu a nikoli při jeho překladu (což ostatně mnohdy není, například i kvůli použití polymorfismu, možné ani ve staticky typovaných jazycích). Díky použití bílých znaků, tj. mezer a tabulátorů, se navíc studenti musí od začátku naučit korektně odsazovat jednotlivé bloky programového kódu (tato vlastnost Pythonu pravděpodobně vzbuzuje nejvíce emocí jak na straně jejích zastánců, tak i odpůrců).

Obrázek 7: Grafické uživatelské prostředí IDLE s otevřeným programem, který je možné přímo z tohoto prostředí spouštět či ladit. IDLE je napsáno v samotném Pythonu, přičemž využívá knihovnu Tk volanou přes wrapper Tkinter.

Následuje výpis jednoduchého programu napsaného v jazyce Python, v němž je pro kreslení takzvané „dračí křivky“ využit balíček turtle, tj. želví grafika převzatá z minule zmíněného programovacího jazyka Logo:

from turtle import right, left, forward, speed, exitonclick, hideturtle

def dragon(level=4, size=200, zig=right, zag=left):
    if level <= 0:
        forward(size)
        return

    size /= 1.41421
    zig(45)
    dragon(level-1, size, right, left)
    zag(90)
    dragon(level-1, size, left, right)
    zig(45)

speed(0)
hideturtle()
dragon(6)
exitonclick() # click to exit

Obrázek 8: Trojrozměrná varianta dračí křivky.

5. Vývojové prostředí pro Python

Při využití programovacího jazyka Python ve výuce je samozřejmě možné mít k dispozici vhodné vývojové prostředí, protože samotný Python sice obsahuje možnost spuštění interaktivní konzole, ovšem ta uživatelům nabízí pouze základní možnosti editace (řádkový editor s historií zapsaných řádků), ale například neobsahuje žádnou podporu pro barevné zvýraznění syntaxe či automatického doplňování názvů objektů (funkcí, proměnných). Jednou z mnoha možností je použití IPythonu, což je interaktivní shell, který uživatelům nabízí vylepšené (textové) uživatelské rozhraní, v němž se například zvýrazňuje syntaxe jednotlivých jazykových prvků, funguje doplňování názvů funkcí či proměnných, pro zápis delších částí kódu lze volat vybraný textový editor atd. I přes zdánlivou jednoduchost se IPython ukazuje jako velmi výkonný nástroj, který dokonce může být při výuce vhodnější než vývojová prostředí s grafickým uživatelským rozhraním, ve kterých se začínající programátor může poměrně snadno „ztratit“.

Obrázek 9: Vývojové prostředí Eric s otevřeným zdrojovým textem psaným v Pythonu. Ve spodní části okna vývojového prostředí se nachází interaktivní konzole Pythonu, v níž je možné jak vyhodnocovat jednotlivé výrazy, tak i díky reflexi zkoumat strukturu jednotlivých systémových i uživatelských objektů.

Z vývojových prostředí využívajících grafické uživatelské rozhraní je možné jmenovat například poměrně jednoduché a současně i přehledné IDLE používající pro zobrazení oken i ovládacích prvků knihovnu Tk volanou přes wrapper Tkinter, nebo mnohem rozsáhlejší integrované vývojové prostředí Eric, které je naopak implementované s využitím knihoven PyQt a Qt. Pokud by však ani Eric nenabízel všechny potřebné funkce (což je v případě výuky základů programování spíše nepravděpodobné), jsou k dispozici i nadstavby nad některými vývojovými prostředími určenými původně pro vývoj v Javě. Jedná se o NetBeans IDE a především PyDev, což je nadstavba nad Eclipse. Všechna zmíněná vývojová prostředí nabízí svým uživatelům možnost doplňování jmen objektů, funkcí i proměnných, zvýraznění syntaxe v integrovaném editoru, kontextovou nápovědu a samozřejmě podporují i ladění programů.

Obrázek 10: Asistent nabízející doplnění názvu objektu, který je v daném kontextu viditelný a který odpovídá uživatelem zapsanému prefixu ve vývojovém prostředí PyDev.

Seznam dalších vývojových prostředí vhodných pro programování v Pythonu je možné nalézt na stránce http://en.wiki­pedia.org/wiki/Lis­t_of_integrated_de­velopment_envi­ronments_for_Pyt­hon#Python.

Obrázek 11: Asistent nabízející doplnění názvu metody a/nebo atributu objektu ve vývojovém prostředí PyDev.

6. Výukové nástroje kombinující programovací jazyk a interaktivní grafické uživatelské rozhraní

Zatímco v předchozích čtyřech kapitolách jsme se zabývali programovacími jazyky, pro jejichž provozování v tom nejjednodušším případě postačuje pouze textový terminál (či v minulosti děrovačka děrných štítků a tiskárna připojená k počítači s překladačem Pascalu, jak jistě mohou doložit starší absolventi VUT v Brně či dalších vysokých škol), v následujících kapitolách se zaměříme především na ty projekty, v nichž má vedle vlastního programovacího jazyka nezastupitelnou úlohu i interaktivní a mnohdy velmi propracované grafické uživatelské rozhraní nabízející začínajícím programátorům buď klasickou dvourozměrnou grafiku (vektorovou, rastrovou, orientovanou na jednotlivé grafické objekty) nebo v některých případech i možnost práce v trojrozměrném prostoru. Jedná se o například o projekty NetLogo (ovšem s původním Logem má tento projekt již společného jen velmi málo), Squeak (založený na Smalltalku) či Scratch a Alice, o nichž se zmíníme (a to poměrně podrobně) v následujících částech tohoto seriálu.

Obrázek 12: Ukázka grafického uživatelského rozhraní projektu Squeak.

Prvopočátky využití počítačové grafiky (nejenom) při výuce programování se sice datují již do druhé poloviny šedesátých let minulého století (viz minule popsaný vznik programovacího jazyka Logo), ovšem skutečné interaktivní grafické uživatelské rozhraní (kde je možné „programovat“ mnohdy i bez nutnosti zápisu zdrojového kódu) se začalo v této oblasti ve větší míře prosazovat především v posledních deseti letech – nejednalo se ani tak o technické problémy, které by znemožňovaly implementaci plnohodnotného GUI na starších počítačích (příkladem může být například nenáročný český Baltazar nebo i Squeak, jenž je možné spustit i na průměrně výkonném PDA), ale spíše o změněný pohled na to, jakým způsobem by se mělo programování vyučovat – především na základních školách samozřejmě co nejzáživnějším způsobem, nejlépe tak, že si děti ani neuvědomí, že se právě učí programovat :-)

Obrázek 13: Grafické uživatelské rozhraní projektu NetLogo spuštěného na počítači s Mac OS X.

7. NetLogo

Projekt nazvaný NetLogo patří mezi zajímavé moderní implementace programovacího jazyka Logo, o němž jsme se již zmiňovali v předchozí části tohoto seriálu. NetLogo je vyvíjeno v programovacím jazyku Java, čímž je do značné míry zaručena nezávislost na použité platformě. V současnosti jsou oficiálně podporovány operační systémy Linux (od jádra 2.4), Microsoft Windows 98 a vyšší i Mac OS X a vyšší, ovšem s velkou pravděpodobností bude možné tuto aplikaci spustit i na dalších platformách (nenechte se zmást požadavky uvedenými na domovské stránce tohoto projektu, protože verze 4.0.5 běží i na starší Javě 1.5). Na postarších systémech Mac OS 8 a Mac OS 9 je možné spustit předchozí verze NetLoga, což však spíše souvisí s požadavky použité JRE (Java Runtime Environment), než s konkrétními nároky této aplikace, které ostatně nejsou (na javovskou aplikaci) nijak vysoké.

Obrázek 14: Instalační program NetLoga.

Na stránce http://ccl.nor­thwestern.edu/ne­tlogo/download­.shtml je možný výběr verze NetLoga, přičemž pro stažení je nutná registrace. K dispozici jsou instalace pro Microsoft Windows, Mac OS X a obecná instalace. Je možné získat jak samotné NetLogo, tak i NetLogo s přibalenou JRE (Java Runtime Environment). Druhá varianta je vhodná pro ty uživatele, kteří nemají žádnou JRE nainstalovanou (verze 4.0 využívá JRE Javy 6). Už instalace NetLoga vypadá velmi profesionálně, především díky kvalitnímu instalačnímu programu vytvořenému v Javě. Samotná instalace verze 3.x zabere (bez JRE) cca 40MB, nezávisle na použitém operačním systému, verze 4.x již 50 MB. Součástí instalace je i hypertextová nápověda a mnoho demonstračních příkladů, většinou simulací, z nichž některé jsou zobrazeny na přiložených obrázcích.

Obrázek 15: Grafické uživatelské prostředí NetLoga

NetLogo je sice možné použít i bez zaplacení (viz http://ccl.nor­thwestern.edu/ne­tlogo/), nejsou však k dispozici zdrojové kódy a také se nesmí dále šířit upravované verze. NetLogo je zvláštní tím, že podporuje tvorbu dvourozměrné i trojrozměrné grafiky, po které se může pohybovat neomezené množství želv. Želvy spolu mohou komunikovat a vytvářet tak mezi sebou různé vazby. Z těchto důvodů se tato implementace Loga používá zejména pro simulace paralelních systémů, systémů se zpětnými vazbami apod. Pro účely tvorby různých simulací je v NetLogu k dispozici mnoho prvků grafického uživatelského rozhraní (GUI), včetně posuvníků, grafů, přepínacích tlačítek apod.

Obrázek 16: Spuštěná simulace – stlačování plynu ve válci s pístem

Obrázek 17: Další simulace – odrážející se kuličky

Obrázek 18: Celulární automat

8. Squeak

Posledním projektem, o němž se v dnešním článku (prozatím jen ve stručnosti) zmíníme, je Squeak. Jedná se o implementaci objektově orientovaného programovacího jazyka Smalltalk, který je doplněn o virtuální stroj, propracované grafické uživatelské rozhraní (jednotlivá okna je například možné otáčet o libovolný úhel atd.) a velké množství knihoven. V knihovnách jsou dostupné funkce pro práci s multimédii, 2D i 3D grafikou, přístupu k různým internetovým službám atd. Squeak lze spouštět na různých platformách, samozřejmě včetně Linuxu, MS Windows a Mac OS, ovšem lze ho provozovat, jak již bylo zmíněno v šesté kapitole, i na některých PDA a smartphonech – viz též obrázky číslo 20 a 21 (osobně Squeak bez nejmenších problémů provozuji na Asus EEE).

Obrázek 19: Desky učebnice Squeaku, která je dostupná na webu ve formátu PDF.

To, co dělá Squeak tak zajímavým, je právě programovací jazyk Smalltalk, který je plně objektově orientovaný (objektem jsou zde například i čísla nebo pravdivostní hodnoty) a reflexivní. Navíc je tvorba programů ve Squeaku od dalších produktů odlišná i v tom, že se programy automaticky stanou součástí celého prostředí a jsou uchovány až do dalšího startu Squeaku (ten se vlastně nikdy neukončuje, pouze hibernuje). Vzhledem k velkému množství možností, které Squeak nabízí, se mu budeme věnovat v následující části seriálu, podobně jako projektu Scratch (pravděpodobně nejpropracovanější prostředí pro výuku programování), který je na Squeaku založen.

skoleni

Obrázek 20: Squeak běžící na jednom velmi populárním mobilním zařízení.

Obrázek 21: Squeak běžící na různých platformách.

9. Odkazy na Internetu

  1. Lazarus (Software)
    http://en.wiki­pedia.org/wiki/La­zarus_%28softwa­re%29
  2. FreePascal
    http://www.fre­epascal.org/
  3. Why I Love Python" slides
    http://www.min­dviewinc.com/dow­nloads/pub/ec­kel/LovePython­.zip
  4. Why I love Python (presentation)
    http://www.sli­deshare.net/di­dip/why-i-love-python
  5. První jazyk: Python
    http://macek.san­dbox.cz/texty/prvni-jazyk-python/
  6. Programovací jazyk Python
    http://www.py­.cz/FrontPage
  7. Python – Wikipedia CS
    http://cs.wiki­pedia.org/wiki/Pyt­hon
  8. IPython
    http://en.wiki­pedia.org/wiki/I­python
  9. IPython: an interactive computing environment
    http://ipython­.scipy.org/mo­in/
  10. Category:Python
    http://rosetta­code.org/wiki/Ca­tegory:Python
  11. Educational programming language
    http://en.wiki­pedia.org/wiki/E­ducational_pro­gramming_langu­age
  12. Seriál Letní škola programovacího jazyka Logo
    http://www.ro­ot.cz/serialy/let­ni-skola-programovaciho-jazyka-logo/
  13. Logo Tree Project:
    http://www.eli­ca.net/downlo­ad/papers/Logo­TreeProject.pdf
  14. Language Poster (O'Reilly):
    http://www.ore­illy.com/news/grap­hics/prog_lan­g_poster.pdf
  15. Informace o Comenius Logu:
    http://www.com­logo.input.sk/in­dex.html
  16. Stránka nabízející stažení Comenius Loga:
    http://www.com­logo.input.sk/nas­tiahnutie.html
  17. Seminární práce o Comenius Logu:
    http://nwit.ped­f.cuni.cz/rotal9ap/lo­go/
  18. Informace o LEGO/Logu:
    http://educati­on.otago.ac.nz/nzlnet/L­ogo/legologo.html
  19. Informace o systému Elica:
    http://www.eli­ca.net/site/in­dex.html
  20. Informace o systému NetLogo:
    http://ccl.nor­thwestern.edu/ne­tlogo/
  21. Stažení NetLoga:
    http://ccl.nor­thwestern.edu/ne­tlogo/download­.shtml
  22. Uživatelský manuál NetLoga ve formátu PDF:
    http://ccl.nor­thwestern.edu/ne­tlogo/docs/Net­Logo%20User%20Ma­nual.pdf
  23. NetLogo FAQ:
    http://ccl.nor­thwestern.edu/ne­tlogo/docs/faq­.html
  24. Domácí stránka Daniela Azumy (autora implementace Turtle Tracks):
    http://alumnus­.caltech.edu/~da­zuma/home/
  25. Informace o aUCBLogu:
    http://www.phy­sik.uni-augsburg.de/~miche­ler/
  26. Domácí stránka MSW Loga:
    http://www.sof­tronix.com/lo­go.html
  27. Karel online
    http://karel.ol­dium.net/
  28. EDU-SIG: Python in Education
    http://www.pyt­hon.org/commu­nity/sigs/curren­t/edu-sig/
  29. Guido van Robot
    http://en.wiki­pedia.org/wiki/Gu­ido_van_Robot
  30. The Guido van Robot Programming Language
    http://gvr.sou­rceforge.net/
  31. An Introduction to Programming with Karel J. Robot
    http://blog.thin­goid.com/2003/10­/karel-intro/
  32. Teaching a young robot new tricks
    http://blog.thin­goid.com/2003/11­/karel-new-tricks/
  33. Karel and Company – More Robots
    http://blog.thin­goid.com/2003/12­/karel-and-company/
  34. Karel heads for the stars
    http://blog.thin­goid.com/2004/03­/karel-star/
  35. Karel programming language documentation
    http://mormegil­.wz.cz/prog/ka­rel/prog_doc.htm
  36. Karel J. Robot
    http://www.ma­inlandregional­.net/dklipp/Ho­nors%20Computer%20Sci­ence%20Java.htm
  37. Karel (programming language)
    http://en.wiki­pedia.org/wiki/Ka­rel_(programmin­g_language)
  38. Richard E. Pattis
    http://en.wiki­pedia.org/wiki/Richar­d_E._Pattis
  39. XKarel home page
    http://xkarel­.sourceforge.net/en­g/
  40. KKarel – screenshoty oken
    http://xkarel­.sourceforge.net/en­g/program.php#Ok­na
  41. Greenfoot
    http://www.gre­enfoot.org/abou­t/whatis.html
  42. Computer programming – Educational programming languages
    http://www.kid­slike.info/com­puter_program­ming_educatio­nal_programmin­g_languages
  43. Making Great Programmers: Why BASIC is Still Relevant
    http://kidbasic­.sourceforge.net/en/why­.html
  44. Gambas Wiki
    http://en.wiki­books.org/wiki/Gam­bas
  45. Squeak home page
    http://www.squ­eak.org/
  46. XO: The Children's Machine
    http://wiki.lap­top.org/go/The_Chil­dren's_Machine
  47. Squeak
    http://en.wiki­pedia.org/wiki/Squ­eak
  48. Squeak by Example
    http://squeak­byexample.org/
  49. Scratch home page
    http://scratch­.mit.edu/
  50. Scratch (programming language)
    http://en.wiki­pedia.org/wiki/Scrat­ch_(programmin­g_language)
  51. Free tool offers ‚easy‘ coding
    http://news.bbc­.co.uk/2/hi/tec­hnology/6647011­.stm
  52. Scratch Lowers Resistance to Programming
    http://www.wi­red.com/gadge­tlab/2009/03/scrat­ch-lowers/
  53. Základy želví grafiky
    http://www.ro­ot.cz/clanky/za­klady-zelvi-grafiky/
  54. Bill Kendrick's Web Turtle
    http://www.so­nic.net/~nbs/web­turtle/

Autor článku

Pavel Tišnovský vystudoval VUT FIT a v současné době pracuje ve společnosti Red Hat, kde vyvíjí nástroje pro OpenShift.io.