Objavljeno: 30.4.2024 | Avtor: Arnold Marko | Monitor Maj 2024

Učimo se programiranja

Razmislek o tem, kdaj in kako naj se otroci začnejo učiti tujih jezikov, je smiseln, enako kot tudi razmislek, kako in kdaj naj se lotimo računalniške pismenosti mladih generacij. Kako je torej z učenjem računalniških jezikov oziroma osnov programiranja?

Seveda ne bo vsak mladostnik postal programer (tako kot ne bo postal jezikoslovec), pomembno pa je, da se tistim z nekaj »žilice« omogoči, da čim hitreje in na nezahteven način dojamejo osnovne koncepte in logiko programiranja. Ker je pisanje kode dokaj dolgovezno in nič kaj privlačno opravilo, je smiselno, da mlajši svoje prve korake opravijo prek vizualno zanimivih rešitev, s programskimi bloki, ki predstavljajo algoritme, funkcije in podobno. Zanimivo je, da večina tovrstnih rešitev temelji na istem pogonu, Google Blockly, in da sam Google tovrstnega učnega sistema sploh nima.

Najprej je bil Scratch

Najbolj znano in razširjeno orodje, ki temelji na prej omenjenem pogonu, je Scratch, ki so ga na ameriški univerzi MIT razvili že leta 2007. Odlikujeta ga enostavnost in preglednost, predvsem pa ima zelo veliko skupnost, zaradi česar je na voljo ogromno že razvitih programov, ki jih lahko vsakdo prilagodi in spreminja po svoje. Poleg tega ponuja zajetno število Scratch vodnikov, forumov, delavnic in podobnega, zato se na skoraj vsako vprašanje prek spletnih iskalnikov najde tudi odgovor. Prav ta razširjenost ga naredi zanimivega, čeprav sama zasnova in funkcionalnost ne ponujata nič revolucionarnega. Ločljivost grafičnega okna (tj. odra), ki prikazuje programe, je skromnih 480 × 360 pik (razmerje je torej 4 : 3), programi pa so vezani na izvajanje v samem okolju Scratch in jih ni mogoče izvoziti kot samostojne. Programi se tudi ne zapisujejo v nobenem od standardnih jezikov (Python, Java, JavaScript ...), kar bi lahko koristilo pri prehodu iz grafičnega programiranja v pisanje kode. Uporabljati ga je mogoče prek spletnega vmesnika, na voljo pa so tudi namizne različice za Windows, MacOS, ChromeOS, Android in Linux. Zanimivo, da je funkcionalnost spletne različice večja od funkcionalnosti samostojnih programov, saj lahko v njej pedagogi ustvarjajo tudi učilnice oziroma razrede učencev.

Scratch je najprimernejši za izdelavo animaciji in preprostih iger.

Osnovna objekta v Scratchu sta lik (sprite) in ozadje (stage). Ozadja so velikosti odra in imajo bistveno manj funkcij (blokov) kot liki, ki so glavni objekt, s katerim se ustvarja. Likom dodajamo bloke, s katerimi jih premikamo, usmerjamo, preverjamo njihov položaj ali vrednost spremenljivk, z drugimi liki pa se sporazumevajo prek sporočil (objav). V Scratchu je osem kategorij programskih blokov, ki jih kombiniramo v grafičnem urejevalniku posameznega lika (ali odra) in tako ustvarimo svoje programe. Zasnova in zmogljivost Scratcha je še najprimernejša za izdelovanje animacij in preprostih iger (labirinti, enozaslonske arkade, strelske v stilu Space Invaders …), kar je tudi osnovni namen. Ciljni populaciji, to so otroci stari med 8 in 11 leti, je tako programiranje dovolj zanimivo in hkrati dovolj zahtevno, da se naučijo razvijati osnove kodiranja programov (zanke, pogojni stavki, spremenljivke …). Svoje rezultate lahko tudi javno delijo, pogledajo v kodo že objavljenih rešitev in jo poljubno spreminjajo.

Scratch ima barvito knjižnico likov, ki jih je mogoče spremeniti v vgrajenem urejevalniku ali uvoziti kot slike z računalnika.

Scratch je primerno izhodišče tudi za mlajše od omenjene starostne skupine. Obstaja namreč tudi v »junior« izvedbi, za starostno skupino med 5 in 7 leti. ScratchJr je na voljo kot aplikacija za iOS, Android in FireOS. Ker temelji predvsem na vlečenju, ki jo omogočajo zasloni na dotik, spletne ali namizne različice ni, »programiranje« pa je bistveno bolj omejeno in je primerno bolj za ustvarjanje preprostih animacij in osnovnih interakcij z liki v njih (z dotikom sprožimo zvok ali animacijo). Ker je ciljna populacija dokaj mlada, naj omenimo, da je Scratch v celoti preveden v slovenščino in da je prevajalska skupnost zelo aktivna, kar pomeni, da se tudi nadgradnje in popravki zelo hitro prevedejo.

Ker lahko omejitve Scratcha čez nekaj časa postanejo ozko grlo učenja programiranja, velja omeniti še Snap. Ta je zelo podoben Scratchu, le da ima večje število blokov, v lastnih blokih pa je mogoče kombinirati kodo JavaScript, kar omogoča dopolnjevanje učenja programiranja s pisanjem čisto prave kode.

MIT App Inventor

Univerza MIT svetu ni dala le Scratcha, temveč tudi nekoliko manj znano spletno orodje MIT App Inventor, ki je namenjeno učenju razvijanja mobilnih aplikacij skozi ustvarjanje grafičnega vmesnika in programske kode. Grafični vmesnik se oblikuje v modulu Designer, ki omogoča vstavljanje elementov na posamezne zaslone aplikacije (gumbi, besedilo ipd.) ter tudi senzorjev naprave, bluetooth povezav, povezav s spletnimi stranmi in z družbenimi omrežji ter mnogo drugih elementov, ki jih bo aplikacija uporabljala za svoje delovanje. Vsak element ima svoj blok, na njem pa so podane tudi metode za branje ali zapisovanje vrednosti bloka. Zaradi obsežnega nabora teh elementov je mogoče izdelati tudi zahtevnejše aplikacije, in to na dokaj preprost, pregleden in intuitiven način. Tudi pri vrstah podatkov je App Inventor dokaj zmogljiv, saj najdemo tudi takšne strukture, kot so seznami ali slovarji.

Za izdelavo preprostih mobilnih aplikacij je potrebno le malo elementov in kode.

Aplikacije lahko zaženemo v spletnem emulatorju, lahko pa jih prek aplikacije izvajamo tudi na mobilnih telefonih ali tablicah, za Android pa jih je mogoče izvoziti tudi kot povsem uporabne »prave« aplikacije, kot paket APK. Zaradi omejitev iOS sistema to za Applove naprave ni mogoče.

Sistem je namenjen predvsem najstnikom med 11 in 16 leti, lahko pa svoje prve aplikacije brez večjih težav izdelajo tudi mlajši, vendar je treba opomniti, da vmesnik ni preveden v slovenščino. Na voljo pa je veliko vodnikov za izdelovanje aplikacij, celo takšni, ki učence uvajajo v svet praktične rabe umetne inteligence v mobilnih aplikacijah.

Code.org

Še zmogljivejši, a tudi zahtevnejši je Code.org, ki ga podpirajo znana imena, kot so Microsoft, Amazon in Google. Code omogoča razvoj različnih vrst programov, ki jih je mogoče izvoziti kot spletne aplikacije, ki temeljijo na JavaScriptu (kar je tudi osnovni programski jezik, ki ga Code.org uporablja v ozadju). Ker gre za prave spletne aplikacije, je Code primeren tudi za učenje spletnega programiranja (na temelju HTML, CSS in JavaScript). Že pri samem izboru osnove Code razlikuje med petimi vrstami programov in temu ustrezno prilagodi vmesnik: figure, igre, umetnost, igra, zabava ali aplikacija. Osnovna izbira vrste programa določa kompleksnost grafičnega vmesnika in s tem tudi zmogljivost. Izbira figure, umetnosti ali zabave naredi vmesnik podoben tistemu iz Scratcha, medtem ko izbira aplikacije ali igre poskrbi, da je kodiranje v resnici pisanje kode v urejevalniku (bodisi grafično kot vleci in spusti ali dejansko pisanje).

Izdelava zahtevnejših projektov v Codu je v bistvu pisanje kode ob pomoči grafičnega vmesnika.

Code je zaradi zapletenega vmesnika primernejši za nekoliko starejše otroke in mladostnike, predvsem za zadnjo triado osnovne šole in srednjo šolo, čeprav ga lahko uporabljajo tudi mlajši. Po pričakovanju ima Code na voljo tudi zelo širok nabor tečajev, vodnikov, primerov in celo sistem za upravljanje razredov učencev, kar ga naredi zelo primernega za šole, tudi zato, ker je mogoče postopoma dvigovati zahtevnost učenja, torej orodja čez nekaj let ni treba zamenjati. To pa ima slabosti in prednosti.

Orodij za spletno učenje programiranje je danes veliko, nemalo pa jih je neuporabnih. Prednost tu predstavljenih je predvsem v podpori in razširjenosti, ki je lahko za te namene pomembna (primeri, vodniki, pomoč …). Med bolj zanimivimi alternativami predstavljenim se sicer najde kar nekaj preprostih pogonov za izdelavo čisto pravih iger, kar je lahko za mlajšo generacijo zelo mamljivo. A o teh kdaj drugič, saj je tudi za rabo teh navadno potrebno vsaj osnovno znanje programiranja, katerega razvoj v veliki meri omogočajo prav tu predstavljeni programi.

ACS pišek

Med zanimivimi pripomočki za učenje programiranja je tudi slovenski ACS pišek. Gre za spletno stran s številnimi nalogami, ki se rešujejo ob pomoči programskih blokov. Naloge so zbrane pod različnimi »zgodbami« (pišek, robot, ples, tabornik ...), v vsaki pa je kopica različno zahtevnih nalog, ki jih je treba rešiti. Pri tem ima reševalec omejeno število in vrsto blokov, rešitve pa morajo biti pogosto univerzalne (»pišek« mora pobrati vsa jajca in jih prenesti do gnezda, polja z gnezdi in jajci pa so lahko različna). Čeprav orodje ne omogoča razvoja lastnih programov, je zelo primerno za ciljno učenje različnih konceptov (pogojni stavki, zanke, rekurzija …) na način, ki je za otroke zelo zabaven, saj je še najbolj podoben igri, v kateri je treba rešiti neki problem, ob tem pa se otrok sploh ne zaveda, da se v resnici uči čisto pravega programiranja.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji