RAC UNALNIŠ TVO Naučimo se programirati s pomočjo vizualnega programiranja sU nU NU Igor Pesek Uvod Še ne znate programirati? Potem je skrajni čas, da se naučite. V tujini in tudi pri nas v Sloveniji se vse bolj zavedamo, kako pomembno je programiranje. Ko se učimo programiranja, se učimo tudi kreativnega reševanja problemov in sistematičnega algoritmičnega razmišljanja, kar postajata vedno pomembnejši veščini v današnji visoko tehnološki družbi. Ameriški predsednik Obama, Mark Zučkerberg in mnogi drugi so dejali, da se tisti, ki se uči programiranja, pripravlja na prihodnost. Kaj so mislili s tem? Že sedaj je vedno več naprav brezžično povezanih (računalniki, mobilne naprave, bela tehnika), že v bližnji prihodnosti pa bomo obkroženi z napravami, ki bodo vse povezane v medmrežje stvari (angl. IOT Internet of Things). Naša odločitev je, ali bomo samo upo- rabniki teh naprav ali pa bomo tudi ustvarjalči novih možnosti uporabe teh naprav. Na programiranje lahko gledate kot na učenje še enega tujega jezika, s katerim boste lahko izrazili svoje ideje in reševali probleme. Pri programiranju moramo biti natančni, izražati se moramo jasno in nedvoumno, saj bo le tako določena naprava lahko v čeloti izpolnila naše ukaze. Letošnjo revijo Presek bomo zato v računalniškem delu namenili programom in spletnim portalom, kjer boste lahko naredili prve korake v programiranje. Tisti, ki že znate programirati, pa jih lahko uporabite za razvedrilo in osvežitev posameznih programerskih končeptov. Ce vam je programiranje všeč, pa svoje znanje seveda lahko sistematično nadgradite pri predmetu računalništvo v osnovnih ali poletnih šolah; le-te ponujajo mnoge izobraževalne ustanove in društva v Sloveniji (posamezne fakultete, ZOTKS). SLIKA 1. Vstopna stran Blockly Games -> PRESEK 44 (2016/2017)1 27 RAČUNALNIŠTVO —^ Vizualno programiranje Vizualno programiranje omogoča uporabniku razvijanje programov z uporabo vizualnih grafičnih elementov, pri čemer je odstranjena programska tekstovna koda, s katero imajo začetniki v programiranju največ težav in tudi precej strahu. Uporabnik oziroma programer sistematično uporablja in ureja te vizualne elemente v zaporedje, ki reši zadano nalogo. Grafični elementi v vizualnem programu služijo kot vhodni podatki, dejavnosti, povezave ali kot izhodni podatki programa. Vizualno programiranje tako tudi začetnikom omogoča eksperimentiranje in ustvarjanje novih programov. Na tak način lahko ustvarite interaktivne animačije ali igriče brez pisanja programske kode. Veliko vas je že slišalo o programu Sčratčh [1], ki ga pri nas poučujejo v osnovnih šolah v drugi tri-adi pri neobveznem izbirnem predmetu računalništvo. Sčratčh je najbolj znan predstavnik vizualnega programiranja. O tem programu in njegovih bolj naprednih funkčijah bomo govorili v eni od prihodnjih številk Preseka, danes pa bomo predstavili vizualno programsko okolje Bločkly [2] in njegovo izpeljanko Bločkly Games [3]. Okolje Bločkly so razvili v podjetju Google, saj je prav to podjetje eden glavnih pobudnikov gibanja, ki zagovarjajo stališče, da bi se vsi morali naučiti programirati. Bločkly je zelo podoben okolju Sčratčh, z razliko, da v osnovni različiči Bločklyja nimamo odra, v katerem premikamo like, temveč je po- udarek na samem učenju programerskih konceptov. Ena od glavnih dodanih vrednosti tega okolja pa je možnost, da program, ustvarjen v vizualnem okolju Blockly, pretvorimo v kodo programskih jezikov Javascript, Python, PHP ali Dart. Zakaj je to koristno in smiselno? Ko primerjamo vizualno kodo našega programa z enakovredno kodo izbranega programskega jezika, je kasnejši prehod in učenje takšnega programskega jezika hitrejše in enostavnejše. Prvi koraki v programiranje z Blockly games Blockly Games je spletna zbirka nalog, izdelana s pomočjo vizualnega okolja Blockly, kjer uporabnik spozna osnovne koncepte programiranja, kot so ponavljanje, pogojni stavki oziroma vejitve in spremenljivke. V casu pisanja tega prispevka je bil Blockly Games dostopen le v anglešcini, vendar se že intenzivno prevaja in v kratkem boste lahko uporabljali slovensko razlicico. Za igranje Blockly Games, ki jo najdete na naslovu https://blockly-games.appspot.com, se ni potrebno prijaviti, ampak lahko takoj zacnemo programirati. Sama igra je razdeljena na sedem poglavij in deset nalog v vsakem poglavju, kot je vidno na sliki 1. Vsako od sedmih poglavij razvija enega ali vec programerskih konceptov, ki se v poglavjih nadgrajujejo, zato je pomembno, da jih igramo oziroma rešujemo zaporedoma. SLIKA 2. 4. naloga iz poglavja Ptica 28 PRESEK 44 (2016/2017)1 RAČUNALNIŠTVO Prvo poglavje se imenuje Puzzle. V njem se uporabnik privadi vizualnega okolja, mehanizmov delovanja blokov in tega, kako se lepijo skupaj. Naslednje poglavje se imenuje Labirint (angl. Maze), kjer z ukazi vodimo možica, da pride do cilja. Poglavje uvaja osnovne koncepte ponavljanja oziroma zank in pogojev. Pricne se z enostavnimi nalogami, ki se po težavnosti stopnjujejo. Sledi poglavje Ptica (angl. Bird), kjer vodimo ptico do gnezda, pri cemer moramo zelo spretno uporabljati pogojne stavke. Primer četrte naloge v tem poglavju je prikazan na sliki 2. Tukaj moramo voditi ptico okrog ovire, kjer s pomocjo pogojnega stavka izvedemo, kdaj se mora ptica obrniti. Poglavje Želva (angl. Turtle) je namenjeno spoznavanju ponovitev oziroma zank, ki so eden pomembnejših konceptov v programiranju. Na sliki 3 je prikazana rešitev druge naloge. Opazimo, da nam zbirka Blockly Games ob pravilno rešeni nalogi prikaže kodo v programskem jeziku Javascript. Ker že poznamo rešitev naloge, lahko sedaj razumemo tudi prikazano kodo. Sledi peto poglavje Film (angl. Movie), kjer spoznavamo matematicne izraze in z njihovo pomocjo premikamo like ter pri tem ustvarjamo kratke filmcke. Šesto poglavje se imenuje Mentor na ribniku (angl. Pond Tutor), kjer s po-mocjo topa izstreljujemo krogle na nasprotnika. Zanimivost tega poglavja je, da moramo nekatere naloge najprej rešiti v vizualnem nacinu in nato še enkrat s pomocjo tekstovnih ukazov. Primer naloge s tega poglavja je prikazan na sliki 4. Zadnje poglavje Ribnik (angl. Pond) vsebuje samo eno nalogo, ki pa zahteva najvec znanja in tudi iznajdljivosti. Spro-gramirati moramo racko tako, da bo uspela sestreliti ostale tri racke, ki se premikajo in branijo. Tu je možnih vec rešitev, saj so strategije, kako zmagati, lahko razlicne. Zaključek Literatura [1] »Scratch«, https ://scratch .mit. edu/, ogled: 9. 8. 2016. [2] »Blockly«, https://blockly-demo.appspot. com/static/demos/code/, ogled: 9. 8. 2016. [3] »Blockly Games«, https://blockly-games. appspot.com/, ogled: 9. 8. 2016. Blockly Games : Turtle 2 A SLIKA 3. 2. naloga v poglavju želva. Ce ste uspešno rešili vse naloge, ste zelo verjetno dojeli vse osnovne koncepte v programiranju. Ce so vam bile naloge všec, lahko nekaj podobnih najdete tudi na naslovu https://studio.code.org/ flappy/1. V naslednjih številkah bomo predstavili še kakšen zanimiv program za vizualno programiranje, ki vam bo olajšal prve korake v programiranje. Veselo programiranje vam želimo! SLIKA 4. Primer naloge šestega poglavja XXX PRESEK 44 (2016/2017)1 29 RAZVEDRILO SLIKA 3 K PRISPEVKU OMOČEN PAPIR. a) Mikroskopski posnetek strukture papirja. Vlakna so debela okoli 10 mikrometrov. b) Difuzni odboj svetlobe na vlaknih -svetloba vpada od zgoraj in vecina se je odbije nazaj. c) Prehod svetlobe skozi omocena vlakna - zaradi izenačenosti lomnih kvocientov se več svetlobe odbije in lomi v smeri navzdol. d) omočene površine (tlakovci na desnem delu slike) so na videz temnejše sU nU NU REŽITEV NAGRADNE KRIŽ ANKE PRESEK 43/6 -> Pravilna rešitev nagradne križanke iz šeste številke 43. letnika Preseka je Kvadratura parabole. Izmed pravilnih rešitev so bili izžrebani Urška Poje iz Ljubljane, Neža Korenjak iz Men-geša in Timotej Vesel iz Velenja, ki so razpisane nagrade prejeli po pošti. _ XXX 30 PRESEK 44 (2016/2017)1