## 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,
* ...
## 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)
![qr code](https://api.qrserver.com/v1/create-qr-code/?data=http://bit.ly/2OMWgCk&size=300x300)
(**http://bit.ly/2OMWgCk**)