## Python ako hlavný nástroj vo výučbe informatických predmetov na stredných školách miroslav.binas@tuke.sk, matej.madeja@tuke.sk, gta.bruothova@gmail.com / [**DIDINFO 2020**](http://www.didinfo.net/)
## Prečo Python? Notes: * nepojdem do detailov, vyzdvihnem len dve veci
![Steep Learning Curve](images/python.learning.curve.png) Notes: * ma strmu krivku ucenia sa * aj pre tuto vlastnost je Python vybornou (a castou) volbou ako prvy jazyk
## Univerzálny programovací jazyk notes: * skriptovanie, serverove programovanie, testovanie aplikacii, desktopove aplikacie, ...
## Prečo len jeden jazyk? notes: * uvediem niekoľko dôvodov
## 1. Menej je niekedy viac notes: * vedia kadečo, ale nič poriadne * slovami mojho sefa: nie je dolezite, co vsetko by mali studenti vediet, ale co nakoniec naozaj vedia * problem - opakujeme sa
| predmet |pomer | % | |---------------------------|-------|-----| | [Algoritmizácia](http://itakademia.sk/wp-content/uploads/2018/07/Riesenie_problemov_a_programovanie.pdf) | | | | [Objektové programovanie](http://itakademia.sk/wp-content/uploads/2018/07/Objektovy_pristup_k_rieseniu_problemov.pdf) | 14/66 | 21% | | [Programovanie web. stránok](http://itakademia.sk/wp-content/uploads/2018/07/Programovanie_webovych_stranok.pdf) | 18/66 | 27% | | [IoT](http://itakademia.sk/wp-content/uploads/2018/07/Internet_veci.pdf) a [Mikrokontroléry](http://itakademia.sk/wp-content/uploads/2018/09/A-15.pdf) | 16/66 | 24% | notes: * opakujeme sa * kazdy rok venujeme zhruba 1/3 kurzu opakovaniu * to znamena, ze ak prvy rocnik ich nieco naucime a nasledujuce tri to budeme opakovat, tak jeden cely rok sme stravili len s opakovanim
## 2. Jedno IDE * nemusí byť nutne topka ([PyCharm](https://www.jetbrains.com/pycharm/)) * určite sa vyhnite IDLE! * [Mu](https://codewith.mu) vs [Thonny](https://thonny.org) notes: * novy jazyk/technologia = nove IDE * nove klavesove skratky, * nove umiestnenia uz znamych veci, * instalacia, * riesenie problemov, * ...
## 3. Bus Factor > 1
## 4. Čo najskôr umožnite študentom vytvárať kódy notes: * pecinovsky
## Poďme na to! notes: * budem trosku ohovarat
## [Špeciálna trieda](http://itakademia.sk/model-specialnej-triedy-so-zameranim-na-informatiku/) | predmet | jazyk | |---------------------------|-------| | [Algoritmizácia](http://itakademia.sk/wp-content/uploads/2018/07/Riesenie_problemov_a_programovanie.pdf) | Python | | [Objektové programovanie](http://itakademia.sk/wp-content/uploads/2018/07/Objektovy_pristup_k_rieseniu_problemov.pdf) | Java | | [Programovanie web. stránok](http://itakademia.sk/wp-content/uploads/2018/07/Programovanie_webovych_stranok.pdf) | PHP, HTML5, MySQL, JS | | [IoT](http://itakademia.sk/wp-content/uploads/2018/07/Internet_veci.pdf) a [Mikrokontroléry](http://itakademia.sk/wp-content/uploads/2018/09/A-15.pdf) | C, Blockly | notes: * vyhli sme sa mobilnym aplikaciam a UI, aj ked Python ma zastupenie aj v tejto oblasti
## Úvodné kurzy programovania * motivačný faktor - hry * Oliver a Minecraft * v hrách sa riešia zaujímavé problémy * častokrát sú herní developeri lepší programátori ako programátori IS * podpora kreativity - projekty na GTA * nápady sa dajú rozvíjať * [Reeborg](http://reeborg.ca/index_en.html), [Pygame Zero](https://pygame-zero.readthedocs.io/en/stable/), [Minecraft](https://github.com/martinohanlon/mcpi), ... notes: * hovoril som vlani * Pygame Zero * Minecraft MCPI * vysledok * GTA a zaverecne projekty * vzdy sa najde skupinka ludi, ktori to robia
## Objektovo orientované programovanie * [Greenfoot](https://www.greenfoot.org/door) * Objects first approach * Python je objektovo orientovaný * obecne sa objektom nevyhnete * OOP nie je ani tak o programovaní (často UI), ako skôr o návrhu/architektúre
## Webové stránky * najhorší možný výber - PHP * jazyk, ktorý je určený len na tvorbu dynamických webov * ([vraj skritpy a UI](https://www.php.net/manual/en/intro-whatcando.php)) * štýl programovania ako pred 20 rokmi (žiadne MVC/MTV) * Python má dva typy webových rámcov * micro webové rámce * plnohodnotné webové rámce
![Flask vs Django](images/flask.vs.django.jpeg) [Flask](https://palletsprojects.com/p/flask/) vs [Django](https://www.djangoproject.com)
## IoT a Mikrokontroléry * Arduino a jazyk C * dlho topka * špeciálne verzie Python-u * [MicroPython](http://micropython.org) - ESP32, micro:bit * [CircuitPython](https://circuitpython.org) * [GPIO Zero](https://gpiozero.readthedocs.io/en/stable/) - RPi
## 5. Vzájomné prepojenie tém * hra s herným ovládačom, diaľkový ovládač, ovládanie hw cez webovú stránku, ... * diaľkový detonátor v _Minecraft_-e
## Záver * detiská to žerú * učitelia to žerú tiež
[![Namakany den 2020](images/namakany.den.2020.png)](http://www.namakanyden.sk)
## Otázky?
![qr code](https://api.qrserver.com/v1/create-qr-code/?data=http://bit.ly/2OMWgCk&size=300x300) (**http://bit.ly/2OMWgCk**)