• No results found

Hra Flappy Bird vytvorená v knižnici Pygame Zero

In document 2020 Sborník konference (Page 169-173)

Python as the Main Programming Language in the Teaching of Computer Courses in High Schools

Obrázok 2: Hra Flappy Bird vytvorená v knižnici Pygame Zero

16 https://www.djangoproject.com

Obrázok 2: Hra Flappy Bird vytvorená v knižnici Pygame Zero

DIDINFO 2020, Technická univerzita v Liberci, Fakulta přírodovědně-humanitní a pedagogická Okrem uvedeného faktu aj realizácia predmetu častokrát pripomína obdobie okolo roku 2000, keď ešte neexistovali žiadne rámce, ktoré uľahčujú tvorbu webových aplikácií. Vývojári si teda museli všetko implementovať sami, čím sa častokrát neúmyselne dopúšťali rozličných chýb. Asi najznámejším problémom takéhoto prístupu je vzájomne pretkávaný PHP kód s HTML kódom, čo indikuje absenciu aplikácie návrhového vzoru MVC, resp. MTV, čím je možné oddeliť aplikačnú logiku od prezentačnej vrstvy. Na tomto vzore je dnes založený každý moderný webový rámec.

V rámci projektu IT Akadémia sa v predmete Programovanie webových stránok nachádza snaha pokryť obe oblasti – tvorbu klientskych aplikácií v jazyku JavaScript, a tvorbu serverových aplikácií v jazyku PHP. Aby žiaci mohli s novými jazykmi pracovať, musia sa zoznámiť so základmi syntaxe, ako aj s novými nástrojmi. Toto zoznámenie však podľa informačného listu predmetu [11] zaberá približne tretinu času celého kurzu.

3.4 Programovanie mikrokontrolérov a Internet vecí

Najmä stredné odborné školy so zameraním na elektrotechniku vyučujú predmety, v rámci ktorých učia žiakov programovať mikrokontroléry. Veľmi populárne sú v tejto oblasti prototypovacie dosky Arduino, konkrétne Arduino Uno. Táto doska bola vytvorená v roku 2003 a za krátky čas sa stala veľmi populárnou vďaka prijateľnej cene. Existencia obrovského množstva dokumentácie a rozširujúcich

„shield-ov“ z nej robí ideálneho kandidáta pre použitie v školstve.

Túto dosku je možné programovať v dvoch jazykoch: v jazyku C a v jazyku JavaScript (projekt Johny Five19). Programovať ju v jazyku Python však nie je možné kvôli obmedzeným parametrom mikrokontroléra ATmega328P. Toto obmedzenie je možné čiastočne obísť pomocou protokolu Firmata20, kedy vie Arduino prijímať príkazy cez sériovú linku napr. aj z jazyka Python. To si ale vyžaduje mať navyše zariadenie, ktoré bude doske Arduino tieto príkazy posielať.

Dnes už však existujú náhrady, ktoré dokážu Arduino prekonať ako v parametroch, tak aj v cene.

Jednou z nich je aj mikrokontrolér ESP3221, ktorý má dostatok pamäte a prostriedkov na to, aby v ňom mohol fungovať MicroPython22.

MicroPython je špeciálna verzia jazyka Python 3, ktorá obsahuje malú podmnožinu štandardnej knižnice a je upravená a optimalizovaná tak, aby mohla fungovať v mikrokontroléroch. Pomocou jazyka MicroPython je možné programovať napr. aj populárne zariadenia BBC micro:bit23.

Výhodou mikrokontroléra ESP32 oproti prototypovacej doske Arduino Uno je však aj jeho výbava.

V základe totiž tento mikrokontrolér obsahuje aj podporu pre WiFi a Bluetooth LE, čo z neho robí ideálneho kandidáta na zariadenie pre oblasť Inernetu vecí.

Počas posledných dvoch rokov sme mali možnosť školiť učiteľov stredných škôl práve v oblasti IoT.

Arduino Uno sme postupne nahradili mikrokontrolérom ESP32 a aj v tomto kurze sa tým pádom stal jazyk Python jediným programovacím jazykom, čo výučbu značne urýchlilo. Samotní učitelia, ktorí dovtedy mali skúsenosť len s doskami Arduino ocenili, že to, na čo potrebujú osobitné rozširujúce

„shield-y“ majú rovno integrované v jednom zariadení. Oslovení však boli najmä jednoduchosťou implementácie výsledných riešení, ktorú priniesol práve MicroPython.

4 ZÁVER

V tomto článku sme prezentovali výhody použitia jedného programovacieho jazyka pre celé štúdium žiakov na stredných školách. Konkrétne sme zvolili jazyk Python, ktorý je možné použiť na tvorbu všetkých bežných typov aplikácií a je tiež výbornou voľbou na prvý programovací jazyk, s ktorým by sa mohli žiaci stretnúť. Je tiež veľmi populárny v oblasti dátovej analytiky a strojového učenia.

19 http://johnny-five.io

20 https://github.com/firmata/protocol

21 http://esp32.net

DIDINFO 2020, Technická univerzita v Liberci, Fakulta přírodovědně-humanitní a pedagogická Pri analýze informačných listov vybraných predmetov sme tiež zistili, že čas potrebný na predstavenie základnej syntaxe nového jazyka, je na úrovni 25% až 30% z celkového trvania kurzu. To v súčte znamená, že ak v každom ročníku bude použitý nový programovací jazyk, jeden celý ročník štúdia bude venovaný opakovaným základom programovania, ale zakaždým v inom jazyku.

Okrem ušetrenia času opakovaním sme identifikovali aj ďalšie výhody. Jednou z nich je, že žiaci budú vedieť súčasne používať rozličné paradigmy alebo budú vedieť kombinovať softvérové riešenia s hardvérovými. Nie je teda problém vytvoriť grafickú počítačovú hru, ktorej výsledky sa budú prezentovať pomocou webovej stránky, a ktorá sa bude dať ovládať vlastnoručne vyrobeným bezdrôtovým ovládačom.

Ako riešitelia projektu IT Akadémia sme mali možnosť v rokoch 2018 až 2020 lektorovať 6 kurzov, ktorých sa zúčastnilo vyše 80 učiteľov stredných škôl. Okrem toho sme lektorovali aj dve tvorivé dielne počas výročnej konferencie projektu IT Akadémia v roku 2019, ktorých sa zúčastnilo vyše 50 učiteľov stredných a vysokých škôl. Všetky uvedené aktivity sme realizovali len pomocou jazyka Python. Mnohí z účastníkov vôbec netušili o možnosti programovať webové stránky a mikrokontroléry v jazyku Python. Aj táto skúsenosť prispela k tomu, že v diskusiách o možnosti využitia tohto jazyka ako jediného jazyka na stredných školách, videli obrovský potenciál.

5 POĎAKOVANIE

Príspevok bol spracovaný v rámci projektu OP Ľudské zdroje „IT Akadémia – vzdelávanie pre 21. storočie“ (ITMS: 312011F057).

6 BIBLIOGRAFICKÉ ODKAZY

[1] StackOverflow: Developer Survey Results 2019 [online]. [vid. 17.12.2019]. Dostupné na https://insights.stackoverflow.com/survey/2019.

[2] TIOBE Index for December 2019 [online]. [vid. 17.12.2019]. Dostupné na https://www.tiobe.com/tiobe-index.

[3] PYPL PopularitY of Programming Language. [online]. [vid. 17.12.2019]. Dostupné na https://pypl.github.io/PYPL.html.

[4] GUO, Philip: Python Is Now the Most Popular Introductory Teaching Language at Top U.S. -Universities. 7.7.2014 [online]. [vid. 17.12.2019]. Dostupné na https://cacm.acm.org/blogs/blog- cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/fulltext.

[5] PECINOVSKÝ, Rudolf: Jak efektivně učit OOP, National Conference with International Participation on Software Creation, vol. 31, 2005, pp. 174–182. [online]. [vid. 17. 12. 2019].

Dostupné na

https://pdfs.semanticscholar.org/d50c/fa981ded2bf03fc6e3db8e7a85e82ce75180.pdf.

[6] BOWLER, M.: Truck Factor, (May 15, 2005). „Truck Factor“. Agile Advice.

[7] Domovská stránka projektu IT Akadémia [online]. [vid. 17. 12. 2019]. Dostupné na:

http://itakademia.sk/zakladne-informacie.

[8] GUNIŠ , Ján a kol.: Riešenie problémov a programovanie (Informačný list predmetu) [online].

[vid. 17. 12. 2019]. Dostupné na

http://itakademia.sk/wp-content/uploads/2018/07/Riesenie_problemov_a_programovanie.pdf.

[9] ŠNAJDER , Ľubomír a kol.: Programovanie mobilných zariadení (Informačný list predmetu) [online]. [vid. 17. 12. 2019]. Dostupné na

http://itakademia.sk/wp-content/uploads/2018/07/Programovanie_mobilnych_zariadeni.pdf.

[10] VARGA, Michal a kol.: Objektový prístup k riešeniu problémov (Informačný list predmetu), [online] [vid. 17. 12. 2019]. Dostupné na

http://itakademia.sk/wp-DIDINFO 2020, Technická univerzita v Liberci, Fakulta přírodovědně-humanitní a pedagogická

[11] HRUŠECKÝ, Roman a kol.: Programovanie webových stránok (Informačný list predmetu),

[online] [vid. 17. 12. 2019]. Dostupné na http://itakademia.sk/wp-content/uploads/2018/07/Programovanie_webovych_stranok.pdf.

[12] JANITOR, Jozef a kol.: Internet vecí (Informačný list predmetu), [online] [vid. 17. 12. 2019].

Dostupné na http://itakademia.sk/wp-content/uploads/2018/07/Internet_veci.pdf

[13] ŠNAJDER , Ľubomír a kol.: Programovanie mikroprocesorových systémov na SŠ (Informačný

list predmetu), [online] [vid. 17. 12. 2019]. Dostupné na http://itakademia.sk/wp-content/uploads/2018/09/A-15.pdf.

[14] PATTIS, Richard E.:Karel the Robot, John Wiley & Sons; 2. vyd., 1995, ISBN 0471597252.

[15] O'HANLON, Martin a WHALE, David: Adventures in Minecraft. 2. vyd. Indianapolis, In: Wiley, [2018]. ISBN 978-1119439585.

[16] MCMANUS, Sean. Pygame Zero: Game coding made easy [online]. 2015, 4 (35) [vid.

17. 12. 2019]. ISSN 2051-9990. Dostupné na: https://www.raspberrypi.org/magpi/issues/35/.

[17] JETBRAINS: The State of Developer Ecosystem 2019 [online]. [vid. 17. 12. 2019]. Dostupné na:

https://www.jetbrains.com/lp/devecosystem-2019.

[18] THE PHP GROUP: What can PHP do? [online]. [vid. 17. 12. 2019]. Dostupné na:

https://www.php.net/manual/en/intro-whatcando.php.

Bádateľsky orientované metodiky pre použitie App

In document 2020 Sborník konference (Page 169-173)