Python (Vir:2) je tolmač. Je enostaven , pokriva vse programerske vsebine in je orodje številnih uporabnikov in razvijalcev. Preden začnemo raziskovati izbrane vsebine si moramo pogledati osnove (Vir:1). Na spletu obstaja veliko posnetih izobraževalnih tečajev. Vabim da si kakšnega ogledate.
Pri python-u velja, tako kakor pri ostalih tehnologijah, da izkušnje štejejo. Ni odveč omeniti, da je to prvi produkcijski razvojni jezik, kjer ni potrebno znanje dveh jezikov. Do sedaj smo knjižnice in gonilnike pisali v C-ju ali strojnem jeziku. Tehnologija cython (Vir:3) avtomatsko prevede python knjižnico v C in potem C v Python izvršilno knjižnico. Poglejmo si polje, torke, metode, predmet in dedovanje.
polja.py
Uporaba knjižnice numpy naredi eno, dvo (matrike) in več dimenzijska polja super uporabna. Dodanih je polno metod, ki nam pomagajo napolniti polja z začetnimi podatki. Napisane so metode za matematične operacije nad matrikami in shranjevanje ali branje rezultatov v datoteko. Vaja pokaže glavne in nekaj izbranih metod. Na slovenski izdaji (Vir:4) je knjižnica dodana. Gre za klasično podatkovno strukturo delavnega spomina in največjim naborom metod. V polja lahko vključujemo osnovne in izpeljane podatkovne strukture. Python pri spremenljivkah doda podatek o dimenziji, kar pomaga pri pisanju in odpravljanju napak.
Ta vsebina je samo za naročnike
Pri poljih so posebej zanimiva dvo dimenzionalna polja, ki jim pravimo tudi matrike. Matrike so osnova grafičnim transformacijam, robotskemu opisovanju koordinat, umetni inteligenci in še čemu. Zato ne čudi, da je razred numpy posebej razvit za delo z matrikami in ima vgrajene metode, ki jih preizkuša na milijone uporabnikov in se ni potrebno nam ukvarjat z povsem normalnimi operacijami v svetu matrik.
torke.py
Torke so posebni seznami zapisani v delovni spomin. Podatkov ne moremo spreminjat, lahko jih pa zelo hitro kličemo. Indeksno klicanje podatkov je veliko hitrejše kakor v poljih. Začetna vrednost je že v programu in ne zgubljamo časa z vpisovanjem začetnih vrednosti. Stvar programerja je, da predvidi katera metoda je pri uporabljeni podatkovni strukturi pomembna in, da uporabi pravo strukturo. Za vse metode si želimo, da imajo časovno kompleksnost 1 ali vsaj linearno. Vse, kar je večje od linearne časovne kompleksnosti je potencialna časovna bomba programa. V taki knjižnici je lahko kakšna metoda zapisana s kodo, ki deluje v na primer kvadratni časovni kompleksnosti, vendar se lahko izkaže, da kasneje poiščejo algoritem, ki deluje v linearni časovni kompleksnosti. Zamenja se knjižnica, vendar program ostane, samo hitreje deluje. Pri časovnih kompleksnostih večjih od linearne moramo neprestano razmišljati o možnosti, da se količina podatkov toliko poveča, da bo program postal neuporabno počasen.
metode.py
Po starem funkcija. Razrede sestavljajo lastnosti, metode in dogodki. Gre za moderno predmetno opisovanje kode. Lahko se tudi medsebojno primerja klasično in predmetno kodo. Razrede je lažje razlagati in uporabljati. Pedagoško je razred predmet ki združuje metode, lastnosti in dogodke opisovane vsebine.
Primer kaže klasičen zapis funkcije (metode). Prvotni namen funkcije je bil enkraten zapis dela kode, ki se kar naprej ponavlja.
predmet.py
V razredu Študent zapišemo dogodek def_init in metodo v_čast. Pri gradnji predmeta iz razreda Študent navedemo parametre ime, izobrazba, povprečje in je_začasno. Dogodek def_init nato nastavi vrednosti spremenljivk(lastnosti) ime, izobrazba, povprečje in je_začasno. Primer pokaže kako lahko lastnosti npr. izpišemo. Na koncu še kličemo metodo v_čast, ki vrne True ali False , glede na lastnost povprečje.
dedovanje.py
Dedovanje je lastnost predmeta, da podeduje lastnosti, metode in dogodke iz drugega predmeta. Podedovane stvari lahko uporabimo ali prepišemo z lastno definicijo. Pri pisanju kode je to velika bližnjica.
Vidimo da razred Kitajski_kuhar deduje iz razreda Kuhar. Prepiše se metoda naredi_posebno_jed in dodamo novo metodo naredi_pražen_riž. Dedovanje je lastnost predmetov, ki pomaga k enostavnemu in preglednemu zapisovanju programov.
Naslednjič
Pogledali si bomo strukturo, rekurzijo, slovar, datoteko in sistem. S petim nadaljevanjem python osnove, si bomo pogledali osnove, ki pa že kažejo na širino modernega programskega jezika (Vir:5). Ankete pythonu kažejo vodilno mesto tudi v letu 2021. Po zaključku te male serije uvoda v python se bomo posvetili delujočim učnim projektom. Delujoči projekti so primer orkestracije ključnih tehnologij in so primer nove pedagoške prakse. Če si ogledate slovensko izdajo boste opazili delujoča šolska projekta klimat in robot. Projekti so izbrani z namenom pokrivanja širokega polja vsebin.
Vedno bolj se kaže uporabna vrednost minimalne postavitve učila, ki ima poleg male matične plošče priključene samo še tipke (Vir:6). Gre za dejstvo, da lahko 80% vaj pripravimo z minimalno postavitvijo, vključno z vajami povezovanja (učenci morajo povezati 6 linij po Arduino standardu). Drugi razlog je cena, ki skupaj z napajalnikom, SD kartico in modulom ne preseže 60€.
Viri:
1. http://si.raspberryip.com/python/osnove/
2. https://www.python.org/
3. https://cython.org/
4. http://si.raspberryip.com/
5. https://www.youtube.com/watch?v=jf3GdvAFHsE
6. https://www.banggood.com/CJMCU-0401-4-bit-Button-Capacitive-Touch-Proximity-Sensor-Module-With-Self-locking-Function-p-1118016.html
Avtor: Boštjan Šuhelj