NAZAJ V ŠOLO: Navdihniti otroke za programiranje, tudi s 400 evri za nevladnike
Marjan Kodelja 1. avgusta 2019 ob 08:44

Če znamo uporabiti kateri koli program, še ne pomeni, da razumemo delovanje računalnika, še manj, da smo res računalniško pismeni. To pomeni sposobnost abstrakcije, miselnega procesa, v katerem pride do razločevanja med idejami in objekti. Obvladati moramo algoritme, ki so osnova programiranja, znati si moramo predstavljati podatke in obvladati preprosto logiko. Šele nato lahko razumemo, kako računalniki mislijo. To pomeni zmožnost reševanja problema prek analize in abstrakcije podatkov pred prepoznavanjem, preizkušanjem in izvajanjem potencialne rešitve

Sliši se izobraženo in tako tudi je. Lahko pa povemo malce bolj preprosto. Najprej si moramo v glavi zamisliti, kako bomo rešili problem, ki ga želimo rešiti, razumeti, kateri podatki so nam na voljo in kaj nam ti govorijo. Šele nato pride na vrsto programiranje, ni pomembno, v katerem programskem jeziku ali s katerim bolj ali manj zapletenim orodjem.

Učenci naj bi se na začetku učenja računalništva, torej v zgodnjih letih, igrali s programi, kot je Scratch, in igračami, ki jih lahko programirajo. Na višjih stopnjah pa naj bi prešli na programske jezike (orodja) Python, HTML, JavaScript in Java. Velja si jih ogledati podrobneje, saj lahko tudi sami katerega od teh uporabimo doma, ko se nenadoma pred nami pojavi potomec in prosi, da ga naučimo programirati

Programiranje brez pisanja kode

Orodje Scratch so leta 2006 razvili na ameriški zasebni raziskovalni univerzi MIT, omogoča pa izdelavo iger, interaktivnih zgodb in animacij, ne da bi morali napisati eno samo vrstico programske kode. Namesto tega ponuja navidezne gradnike – bloke z ukazi, podobnost s fizičnimi lego kockami je na mestu, ki jih združujemo, povezujemo med seboj in ustvarjamo razmeroma zapletene programe. Kako zapletene? No, en uporabnik je le s tem orodjem izdelal različico igre Flappy Bird. Moč orodja je v seznanjanju otrok z osnovnimi zamislimi programiranja, kot so zanke, spremenljivke in nizi, ne da bi se tega zavedali. Spoznavajo jih na podlagi poskusov in napak, pri čemer jim je na voljo veliko ukazov (gradniki) in kombinacij, kako so ti nanizani drug za drugim

Njegova prava moč pa je nekje drugje. V veliki zbirki projektov, navodil, vadnic, ki so izdelane kot pomoč učiteljem, staršem in otrokom, da se ti lahko najprej vodeno, nato pa samostojno lotijo izdelave svoje igrice ali česa podobnega. Najbolj uporabni so že narejeni projekti, ki jih lahko vsak pogleda, uporabi ali spremeni in objavi kot svoj projekt, saj je vse prostokodno. Edina zahteva pri uporabi je, da pri svojem projektu navedemo uporabnika, čigar delo smo si izposodili<!–

Scratch je dolgo časa deloval v obliki samostojnega lokalno nameščenega programa, danes pa deluje v spletnem brskalniku, vse prej omenjeno pa je v oblaku. Samostojni program je še vedno na voljo, praktičen je, ko ga želite namestiti na računalnik brez ali s slabo povezavo s spletom. Pohvalno je, da je spletni vmesnik preveden tudi v slovenski jezik. A ne biti preveč navdušeni. Ne gre za celovit prevod, temveč so prevedeni le najosnovnejši deli strani.

BASIC za prve korake

Programski jezik BASIC je veljal za jezik, ki ga zaradi svoje enostavne rabe najraje izberejo začetniki v svetu programiranja. Ko so se po naših domovih bohotili hišni računalniki, dolgo pred osebnimi računalniki, je bil Basic del njih, pozneje pa je nastalo več različic tega programskega jezika

BASIC je še vedno dobro orodje za vse, ki se želijo naučiti prvega programskega jezika, saj ponudi osnove, zakonitosti programiranja, ki jih pozneje potrebujemo, ne glede na to, na kateri programski jezik presedlamo. Različic je veliko, med njimi je tudi BBC-jeva. Ta je bila napisana za hišni računalnik BBC Micro, danes pa je na voljo tudi v različici za operacijski sistem Windows (bbcbasic.co.uk). Namestite lahko brezplačno različico, ki funkcijsko ni omejena, je pa omejena v količini prostora za uporabnikov program in podatke (16 KB). Ne deluje tudi funkcija prevajanja programa v izvedbeno datoteko, ki omogoča, da program za okolje Windows deluje tudi zunaj vmesnika programskega jezika. Je tudi prostokodna različica programskega jezika Basic, torej brezplačna. Najdete jo na naslovu www.freebasic.net.

Programski jezik BASIC je primer pravega programiranja, saj programiramo tako, da na »prazen list« papirja pišemo ukaz za ukazom, z vsem, kar spada zraven. Natančno to, kar smo imenovali besedilno programiranje. Ne sestavljamo programa, tako da med seboj povezujemo pripravljene bloke, že izdelane procedure ali celo rišemo diagram poteka (algoritem), na podlagi katerega nato orodje izdela programsko kodo. Čeprav je ime besede »basic« sopomenka za nekaj lahkega, to nikakor ne pomeni, da s tem programskim jezikom ne moremo izdelati zapletenih in velikih programov. Hkrati pa je tudi najprimernejši način za učenje kodiranja. Ko usvojimo osnove, pa lahko dokaj hitro preidemo na katerega od zmogljivejših programskih jezikov.

Igrače ali resno delo

Foto: D. Bechtel

Otroci imajo radi lego kocke. Radi imajo tudi robote. Lego Mindstorms združuje oboje. Kocke, motorje, tipala in krmilno enoto, iz katere nastane robot in okolje, v katerem mu napišemo program, po katerem se ravna. Škoda, da je komplet tako drag in da je gradnja robota razmeroma težka. Mlajši otroci bodo potrebovali pomoč, pa čeprav so navodila za sestavljanje osnovnih robotov narejena pregledno in po načelu korak za korakom.

Druga pesem je programiranje. Lego ne more iz svoje kože, ponuja grafično okolje (različica okolja LabView) za programiranje, ki deluje po enakem načelu kot gradnja iz kock. Na voljo so različni gradniki (bloki z ukazi za motorje, tipala), ki jih sestavljamo in med seboj povezujemo, hkrati pa moramo vsakemu bloku določiti, kaj od njega pričakujemo. Na primer, koliko časa bo motor deloval ali kaj mora storiti, ko tipalo zazna želeni odčitek. Pravzaprav deluje po podobnem načelu kot Scratch, le da je vse skupaj malce bolj zapleteno in zmogljivo. Programe za Mindstorms lahko pišemo tudi v drugih programskih jezikih, vendar je to še toliko bolj zapleteno, primerno za študentska tekmovanja.

V Sloveniji je uveljavljen še en komplet. FisherTechnic je s stališča gradnje robotov enostavnejši, je pa tudi res, da so ti bolj podobni industrijskim robotom kot pošastim, humanoidom, ki jih lahko naredimo z gradniki lego kompleta. Še ena razlika je. Okolje za programiranje je drugačno. Namesto da bi med seboj sestavljali gradnike z že vključenimi ukazi, tu izdelamo od začetka do konca diagram poteka (algoritem). Program rišemo, orodje pa iz diagrama naredi programsko kodo, ki jo robot razume. Kar je v osnovi celo boljše. Otrok mora razumeti, kako program poteka, to pa razume, ker riše diagram, v katerem je vse prikazano. Za vsak motor, tipalo mora uporabiti grafični lik, ki mu je dodeljen, hkrati pa v diagram riše zanke, ki povedo, kdaj oziroma zakaj se izvrševanje programa iz neke točke vrne nazaj po diagramu, in pogojne odločitve, ko gre program pri izpolnjenem pogoju po drugi poti, kot če pogoj ni izpolnjen. Kot smo omenili, je diagram poteka oziroma algoritem nekaj, kar moramo v glavi ali na papirju narediti, preden se lotimo programiranja. Delno temu sledi tudi programski vmesnik kompleta Mindstorms, vendar povezave med gradniki, zanke in pogojne odločitve niso tako enostavno razumljive.

Naroči se na redna vsakotedenska e-poštna obvestila o novih prispevkih na naši strani.


Naslednji koraki

Osredotočili smo se na načine za začetno učenje programiranja, ko pa otrok osnove usvoji, sledijo naslednji koraki. Zanimivo je z računalnikom krmiliti drugo napravo. S tem se učimo, kako računalniško krmiljenje deluje in kako pišemo programe za tovrstne rešitve. Mikrokrmilnik Arduino.

Malino, poceni kartični računalnik Raspberry Pi so razvili z idejo, da postane najprej učni pripomoček, šele potem kaj drugega. Ni primeren le kot učni pripomoček za učenje programiranja, temveč tudi kot osnova za celo vrsto projektov »naredi sam«. Primeren jezik za pisanje programov zanj je Python.

Tudi igre lahko pomagajo pri učenju programiranja, čeprav se morda sliši malce čudno. A ne vse. Minecraft ni samo zlaganje »navideznih« kock, pridobivanje uporabnih predmetov in raziskovanje nenavadnih svetov. Lahko je tudi programiranje. Igra omogoča dodajanje modifikacij (»mods«), s katerimi preoblikujemo svetove, objekte in podobno. Da napišemo »mod«, moramo programirati. Ni več čudno, da nekatere šole uporabljajo Minecraft kot učni pripomoček. Programski jezik za pisanje »modov« se imenuje Lua.

Obstaja še cela vrsta drugih orodij in spletnih virov za učenje programiranja. Za konec omenimo spletno mesto Codecademy, kjer so brezplačno na voljo interaktivne vadnice za spoznavanje s celo vrsto programskih jezikov.

Po 400 evrov za nevladne organizacije

Iz tega vidika je zanimiva pobuda za “druženje in kodiranje” (Meet and Code) za katero stojita podjetji SAP in Haus des Stiftens. SAP omogoča pobudo s finančno podporo in drugimi viri za neprofitne organizacije. Haus des Stiftens pa je odgovoren za izbor projektov v Nemčiji, Avstriji in Švici, kot tudi za splošno vodenje projekta in koordinacijo financiranja s strani odgovornih partnerskih držav v mreži TechSoup Europe. Partnerji TechSoup Europe so odgovorni za usklajevanje pobude in izbiro dogodkov, ki bodo podprti v njihovih državah. Med 5. in 20. oktobrom bodo v Evropo potekali dogodki, katerih cilj je prikazati otrokom in mladim med 8. in 24. letom, kako zabavno je lahko kodiranje in programiranje in kako ju lahko uporabimo za oživljanje idej z računalniško kodo. Pobudniki zato vabijo neprofitne in nevladne organizacije, naj si zamislijo dogodek ter ga prijavijo do 8. septembra. Vabljene so vse organizacije, ki jih zanima podpora mladih. Če v svojih vrstah nimajo strokovnjaka, ki bo vodil delavnico o kodiranju, ga lahko poiščejo. Važna je vsebina, pri kateri pa je meje le “nebo”. Vsaka odobrena ideja o dogodku bo prejela donacijo v višini 400 evrov. (pogoje najdete tukaj

Je pa popolnoma vseeno, s katerim programskim jezikom vstopimo v svet programiranja. Bistveno je, da usvojimo analitično mišljenje, da razumemo, kako računalnik deluje, in zakaj so programi takšni, kot so. Ko imamo enkrat neki programski jezik v malem prstu, preskok na drugega zahteva le nekaj časa, da se naučimo njegovih ukazov, sintakse in posebnosti. Zagotovo pa bo znanje programiranja, vsaj osnovnega, v prihodnje bolj pomembno od znanja uporabe računalnika. Znati bomo morali rešiti problem, ne pa le urediti besedila ali preglednice!

Naslovna fotografija: Deposit Photos

Avtor Marjan Kodelja
mm
Marjan se s tehnološkim novinarstvom ukvarja od leta 1997 in v tem času je videl že mnogo stvari, ki se nikoli niso uveljavile ali pa so imele kratek čas trajanja. Začel je pri računalniški reviji Moj mikro in ter 2000 postal njen urednik. Veliko kasneje je bil urednik naprej tednika Stop in nato še tednika Vklop, trenutno pa kruh služi s pisanjem tehnoloških člankov.
Marjan Kodelja - prispevki
2 komentarja

Dodaj odgovor

Vaš e-naslov ne bo objavljen. * označuje zahtevana polja