• Rezultati Niso Bili Najdeni

KATERI PROGRAMSKI JEZIK NAJ SLEDI SCRATCHU? JAVASCRIPT?

N/A
N/A
Protected

Academic year: 2022

Share "KATERI PROGRAMSKI JEZIK NAJ SLEDI SCRATCHU? JAVASCRIPT?"

Copied!
125
0
0

Celotno besedilo

(1)

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA

MATEJA BEVČIČ

KATERI PROGRAMSKI JEZIK NAJ SLEDI SCRATCHU? JAVASCRIPT?

MAGISTRSKO DELO

LJUBLJANA, 2017

(2)
(3)

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA

POUČEVANJE, PREDMETNO POUČEVANJE

MATEJA BEVČIČ

Mentor: izr. prof. dr. JANEZ DEMŠAR

KATERI PROGRAMSKI JEZIK NAJ SLEDI SCRATCHU? JAVASCRIPT?

MAGISTRSKO DELO

LJUBLJANA, 2017

(4)
(5)

Zahvaljujem se mentorju, izr. prof. dr. Janezu Demšarju, za vso pomoč, ideje in nasvete pri pisanju magistrskega dela.

Hvala učiteljici Ireni, ki mi je omogočila izvedbo raziskave in hvala učencem, ki so v njej sodelovali.

Hvala družini in prijateljem, ki so me podpirali in spodbujali tekom pisanja magistrskega dela in celotnega študija.

(6)
(7)

Povzetek

Učenci se v osnovni šoli srečajo s programiranjem v Scratchu že v drugem triletju. Gre za vizualno programiranje z zlaganjem ukaznih blokov, preko katerih učenci spoznavajo osnove programiranja. Težave nato nastopijo pri prehodu na tekstovno programiranje, saj to predstavlja učencem velik in zahteven korak. Prav zaradi tega je zelo pomembno, kateri programski jezik in katero okolje izberemo ter s tem poskušamo učencem ta ko- rak čimbolj olajšati.

Pri nas in tudi po svetu se kot prvi tekstovni jezik pogosto uporablja Python. »Te- žava« Pythona je ta, da v osnovi ni izrazito vizualen, zato menimo, da ni primeren za osnovnošolce; predvsem ne kot prvi jezik, ki sledi Scratchu. V magistrski nalogi smo skušali ugotoviti, kako primeren je za to JavaScript v kombinaciji s HTML-jem in CSS-om. Z izvedbo učnih ur na ljubljanski osnovni šoli smo preverjali motivacijo in razumevanje učencev. Ugotovili smo, da je prehod na tekstovno programiranje pre- cej težek, predvsem za tiste učence, ki Scratcha ne poznajo, saj jim primanjkujejo osnove računalništva, ki jih najlažje usvojijo v Scratchu. Spoznali smo tudi, da je zares pomembno, da učenci takoj vidijo, kaj določen del kode naredi, saj to pripomore k nji- hovemu razumevanju. Zaradi tega menimo, da je JavaScript primeren za poučevanje v osnovni šoli, saj lahko zanj sestavimo vrsto različnih nalog.

Ključne besede: tekstovno programiranje, Scratch, HTML, CSS, JavaScript, Python

(8)
(9)

Abstract

Which Programming Language Should Follow Scratch? JavaScript?

Pupils start with Scratch programming already in the second triennium of primary school. Scratch is a visual programming language where users learn basic program- ming by stacking blocks of commands. The problems then arise when switching to text-based programming as this represents a great and demanding step for pupils. It is for this very reason very important which programming language and environment we select as we try to make this step as easy as possible for pupils.

Python is often used as the first text-based language in Slovenia and also around the world. »The problem« of Python is that it is not very visual so we feel it is not suitable for primary school pupils; especially not as the first language that follows Scratch. In the master’s thesis we tried to find out how appropriate JavaScript is in combination with HTML and CSS for this. By conducting lessons at the primary school in Ljubljana we examined the pupils’ motivation and understanding. We found out that the transi- tion to text-based programming is quite difficult, especially for those pupils who do not know Scratch because they lack the basics of computer science most easily adopted in Scratch. We also learned that it is really important that pupils immediately see what a certain part of the code does, as this helps them to understand it. For this reason we believe that JavaScript is appropriate for teaching in primary schools because we can compile a number of such tasks for it.

Keywords: text-based programming, Scratch, HTML, CSS, JavaScript, Python

(10)
(11)

Kazalo

1 Uvod . . . 1

2 Teoretični del . . . 7

2.1 Začetki poučevanja programiranja . . . 7

2.2 Scratch kot vzor okolja za učenje programiranja . . . 20

2.3 Prehod iz vizualnega na tekstovno programiranje . . . 25

2.3.1 Python ali JavaScript? . . . 27

2.3.2 JavaScript . . . 29

3 Priprave in izvedba raziskave . . . 31

3.1 Prva in druga ura: HTML in CSS . . . 32

3.2 Tretja in četrta ura: CSS in uvod v JavaScript . . . 36

3.3 Peta ura: JavaScript . . . 42

3.4 Šesta ura: JavaScript . . . 46

3.5 Sedma ura: JavaScript . . . 49

3.6 Osma ura: JavaScript . . . 58

4 Nadaljnje aktivnosti . . . 61

4.1 Projektno delo: Kamen, škarje, list . . . 61

4.2 Projektno delo: Spomin . . . 71

5 Empirični del . . . 81

5.1 Opredelitev raziskovalnega problema . . . 81

5.2 Raziskovalna vprašanja . . . 81

5.3 Metodologija . . . 82

5.3.1 Metoda in raziskovalni pristop . . . 82

5.3.2 Vzorec . . . 82

5.3.3 Opis postopka zbiranja podatkov . . . 82

5.3.4 Postopki obdelave podatkov . . . 83

5.3.5 Pričakovani rezultati . . . 83

5.4 Vprašalnik in odgovori učencev . . . 84

5.5 Vprašalnik in odgovori učiteljice . . . 88

(12)

6 Sklep . . . 93

Literatura . . . 95

Prilogi . . . i

Koda igre Kamen, škarje, list . . . i

Koda igre Spomin . . . vii

(13)

Slike

2.1 Primer sodobnejšega Logo okolja . . . 9

2.2 Okolje Scratch . . . 22

2.3 Kodi v Scratchu in JavaScriptu . . . 26

3.1 Izgled spletne strani . . . 34

3.2 Izgled spletne strani . . . 39

3.3 Pogovorna okna JavaScripta . . . 40

3.4 JavaScript konzola v brskalniku . . . 40

3.5 Učni list JavaScripta (prva stran) . . . 56

3.6 Učni list JavaScripta (druga stran) . . . 57

4.1 Izgled igre Kamen, škarje, list . . . 62

4.2 Izgled dveh iger Spomina . . . 71

4.3 Igralno polje z gumbi . . . 75

4.4 Poimenovanje slik pri Spominu . . . 77

Tabele

5.1 Odgovori učencev o učenju, razumevanju in težavah pri HTML-ju in CSS-u . . . 84

5.2 Odgovori učencev na vprašanje: Pri pisanju kode sem si pomagal/a z internetom (Če da, napiši s katero spletno stranjo). . . . 84

5.3 Odgovori učencev na vprašanje: Obkroži en odgovor. Naloge so bile: . 85 5.4 Odgovori učencev na vprašanje: Obkroži en odgovor. Naloge so bile: . 85 5.5 Odgovori učencev na različna vprašanja o JavaScriptu . . . 86

5.6 Odgovori učencev na vprašanje: Pri pisanju kode sem si pomagal/a z internetom (Če da, napiši s katero spletno stranjo). . . . 87

Odgovori učencev na vprašanje: Želiš še kaj dodati? Npr. kaj ti je bilo najbolj / najmanj všeč? . . . 87

(14)
(15)

Poglavje 1 Uvod

»Vsak človek bi se moral naučiti programirati ...

saj te nauči, kako razmišljati.«

- Steve Jobs (2012)

Crow (2014) je v britanskem časopisu The Guardian programiranje opisal kot ume- tnost pripovedovanja računalniku, kako naj izvede določene naloge. Ko enkrat znamo programirati, lahko ustvarjamo virtualne svetove v računalniku in edina omejitev pri tem, kaj je mogoče in kaj ni, je naša domišljija.

Zakaj je tako pomembno, da se naučimo programirati in da se tega lotimo že pri otrocih? Odgovor na slednje je dokaj preprost - učenje programiranja ni kratkotrajen proces. Pomemben je čas, vztrajnost in pravilno razmišljanje, zato je pomembno, da z njim seznanimo otroke že v osnovni šoli. Zakaj pa je programiranje pomembno, bomo videli v nadaljevanju. Poglejmo si nekaj dejstev, ki govorijo o tem.

Živimo v svetu, kjer prevladuje tehnologija. Telefonski klici gredo prek računalni- ško nadzorovanih omrežij, televizijski signal dobimo preko interneta, nakupujemo prek spleta in tudi zemljevidov ne kupujemo več v trgovini, saj jih dobimo na internetu. V prihodnosti pa nas čaka le še več digitalizacije. Mogoče bomo nekaterih zdravstvenih oskrb deležni kar prek spleta in mogoče bomo imeli celo avtomobile, ki bodo vozili sami (Crow, 2014).

Če je bilo pred leti še malo povpraševanja po programerjih in računalniških sposob- nostih, je situacija sedaj drastično spremenjena. Dandanes je tehnologija tako napre- dovala, da ima že skoraj vsak pametni telefon. Pravzaprav živimo v svetu, kjer lahko računalnike najdemo povsod in veliko je predmetov, ki so z njimi povezani. Na primer, pametni telefon je združitev računalnika in telefona, Googlova očala so kombinacija računalnika in očal, pametne ure pa predstavljajo združitev računalnika in zapestne ure. Lahko predpostavljamo, da bodo v prihodnosti vsi predmeti nekako povezani z računalnikom. Že sedaj težko najdemo nekoga, ki doma nima osebnega računalnika.

(16)

Programiranje pa je ključnega pomena, da računalniki delujejo in sploh obstajajo (Life is tech, 2015).

Učenje programiranja te nauči pomembne stvari v življenju. Nauči te učiti se iz napak, zmanjša strah pred napakami in neuspehi, nauči te rešiti probleme na boljši in logičen način, analizirati napake in odpravo le-teh ter skupinskega dela, saj je včasih potrebna pomoč prijatelja (Saha, 2015).

Vsaka služba v prihodnosti ne bo vsebovala programiranja, je pa vseeno pomembno, da otroke naučimo programirati, saj to predstavlja nov pogled na svet. Pri programiranju gre v prvi vrsti za razvijanje računalniškega razmišljanja. Računalniško razmišljanje uporabljajo inženirji pri reševanju problemov. Je kombinacija matematike, logike in algoritmov (Crow, 2014). V nadaljevanju si bomo pogledali, kaj računalniško razmi- šljanje sploh je.

Računalniško razmišljanje predstavlja splošna stališča in spretnosti, ki bi se jih mo- rali vsi, ne le računalnikarji, naučiti in jih uporabljati. Računalniško razmišljanje je temeljna sposobnost za vsakogar. Vsak otrok bi moral imeti, poleg sposobnosti branja, pisanja in računanja, tudi sposobnost računalniškega razmišljanja (Wing, 2006).

Uporaba računalniškega razmišljanja je zelo široka in pravzaprav presega samo ra- čunalništvo. Računalniško razmišljanje je proces prepoznavanja vidikov računanja in uporabe orodij in tehnik s področja računalništva za razumevanje narave, družbe ter drugih umetnih sistemov in postopkov. Učencem omogoča reševanje problemov, raz- členitev na manjše, rešljive dele in uporabo algoritmov za njihovo reševanje (Csizmadia idr., 2015).

Računalniško razmišljanje je kognitivni oz. miselni postopek, ki vključuje logično raz- mišljanje, s katerim se rešuje probleme, postopki pa so bolje razumljivi. Računalniško razmišljanje zajema:

• sposobnost algoritmičnega razmišljanja;

• sposobnost razgradnje problemov;

• sposobnost posploševanja, prepoznavanja in uporabe vzorcev;

• sposobnost abstraktnega razmišljanja in »izbire dobrih predstavitev«;

• sposobnost evalvacije (Csizmadia idr., 2015).

Poglejmo si nekaj lastnosti, ki jih pridobimo z usvojitvijo računalniškega razmišljanja.

Te lastnosti nam koristijo na vsakem koraku, ne le v računalništvu.

Logično sklepanje - omogoča osmisliti stvari z analizo in preverjanje dejstev skozi

(17)

jasno in natančno razmišljanje. Omogoča oblikovanje lastnega znanja in modelov za preverjanje napovedi in zaključkov. Uporablja se za testiranje, odpravljanje napak in popravljanje algoritmov. Logično sklepanje je ključnega pomena pri od- pravljanju napak pri programiranju. Učenci lahko sodelujejo s sošolci, ocenjujejo druge programe, skupaj iščejo napake in predlagajo popravke.

Abstrakcija - omogoča lažje razmišljanje o problemih. Spretnost abstrakcije je v tem, da se osredotočimo na pomembne stvari, nepotrebne podrobnosti pa posta- vimo nekoliko v ozadje. Lep primer je zemljevid podzemne železnice Londona, ki vsebuje le tiste ključne informacije, ki jih potnik potrebuje – imena postaj in povezave med njimi, ne pa tudi nepotrebnih informacij, kot je npr. natančen geografski položaj.

Evalvacija oz. vrednotenje- postopek, ki zagotavlja, da je rešitev (algoritem, sis- tem ali postopek) dobra in primerna za uporabo. Rešitve je potrebno ovrednotiti.

Vprašamo se: Ali so pravilne? So dovolj hitre? So ekonomične? So enostavne za uporabo?

Algoritmično razmišljanje - način, kako pridemo do rešitve z jasno opredelitvijo korakov. Nekateri problemi so edinstveni: rešimo jih, uporabimo rešitev in nanje pozabimo. Algoritmično razmišljanje pride v poštev, ko imamo znova in znova podobne probleme. Ni potrebno, da vedno znova iščemo rešitev. Potrebujemo takšno rešitev, ki deluje v vseh primerih. En takšnih primerov je učenje množenja oz. deljenja. Če sledimo preprostim navodilom, računalnika ali osebe, najdemo rešitev za vsako množenje. Ko enkrat razumemo postopek, ga znamo uporabiti, ne da bi se ga vedno znova učili. Algoritmično razmišljanje je temeljno znanje, ki ga otroci razvijejo, ko se naučijo napisati svoje računalniške programe.

Dekompozicija (razgradnja) - razmišljanje o problemih in o njegovim sestavnih delih. Dele potem razumemo, rešujemo, razvijamo in ocenjujemo ločeno. To omogoča lažje reševanje (kompleksnejših) težav, boljše razumevanje novih situacij in lažje oblikovanje večjih sistemov.

Posploševanje (vzorci) - povezano z identifikacijo vzorcev, podobnosti in povezav ter njihovo uporabo. Posploševanje je način hitrega reševanja novih problemov, ki temeljijo na rešitvah prejšnjih problemov, in gradnja iz predhodnih izkušenj.

Postavimo si pomembna vprašanja, kot so: Je ta problem podoben kakšnemu prejšnjemu? V čem se razlikuje (Csizmadia idr., 2015)?

Učenci se v nižjih razredih srečajo z vizualnim programiranjem v Scratchu. Nato na- stopi težava, kateri jezik naj sledi Scratchu. S tem se bomo ukvarjali v magistrski nalogi in skušali ugotoviti, ali je JavaScript primeren programski jezik za prehod iz Scratcha na tekstovno programiranje. Ker je ta korak zelo velik in težak, je bistvenega pomena, da izberemo jezik, ki bo za učenje otrok najbolj primeren.

(18)

Scratch je eden novejših vizualnih programskih jezikov, ki je bil narejen za učenje pro- gramiranja za otroke od 8. leta starosti naprej. Otroci lahko z njim programirajo svoje računalniške igre ali animacije, svoje izdelke prek spleta delijo z drugimi in se tako učijo ter pridobivajo izkušnje (Lajovic, 2011).

Vizualno programiranje, predvsem Scratch, se je izkazalo kot zelo priljubljeno na pri- marni ravni. Programiranje s Scratchom, kjer učenci spoznavajo osnovne koncepte programiranja, kot so npr. spremenljivke in zanke, naj bi olajšalo kasnejše »tekstovno programiranje«. Izkušnje pa kažejo, da se pri prehodu na tekstovno programiranje pojavlja vrzel, kar predstavlja velik izziv, tako za učitelje kot tudi za učence. Ključne so štiri težave: izbira programskega jezika, zapleti pri vzpostavitvi in pri začetku pro- gramiranja, soočanje z napakami pri sintaksi ter zahtevnost razumevanja ne-vizualnih učinkov programa (Millican, 2014).

Razprave o izbiri programskega jezika potekajo že desetletja. Bi morali začeti z je- zikom, namenjenim za poučevanje (npr. Pascal ali BASIC), ali s sodobnejšim in bolj uporabljanim jezikom (npr. Java ali Python)? Programski jezik, kot je npr. Java, novince veliko prezgodaj sooči s prezapleteno sintakso jezika. Poleg tega so izdelki takšnih jezikov veliko bolj tekstovni kot grafični. Strukture, kot so zanke in pogojni stavki, so predstavljeni prek numeričnih primerov, ki so večini manj razumljivi in pri- vlačni. Če imamo vizualen izdelek, veliko hitreje prepoznamo napake, ko do njih pride (Millican, 2014).

Programiranje je način razmišljanja, ne pa spretnost ali rutina (Bret, 2012b). Uče- nje o zankah ni učenje programiranja, prav tako kot učenje o svinčnikih ni učenje risanja.

Ljudje razumejo, kar vidijo (Bret, 2012b). Če učenec ne vidi, kaj program počne, je to težje. Cilja programiranja morata torej biti podpiranje in spodbujanje različnih načinov mišljenja, okolje pa mora omogočati učencem, da vidijo in razumejo izvajanje svojih programov.

Yang (2014) navaja nekaj razlogov, zakaj bi moral biti JavaScript prvi programski jezik (za osnovnošolce pa jezik, ki sledi Scratchu):

• JavaScript je praktičen jezik, saj ga ni potrebno naložiti na računalnik. Vsak brskalnik namreč že vsebuje JavaScript konzolo. Prav tako najdemo na spletu mnogo gradiva za učenje ter izdelke drugih ljudi, kar predstavlja izziv.

• Učenje mora biti zabavno. Najbolj učinkovita metoda učenja je samostojno od- krivanje: poskusi vodijo do postavljanja vprašanj, odgovori nanj pa do učenja. Z JavaScriptom lahko začnemo postopoma in zgradimo zabavne stvari.

(19)

• Dejstvo, da so aplikacije, kot so Gmail, Google Maps, Facebook ter številne druge, napisane (tudi) v JavaScriptu, predstavlja za učence veliko motivacijo pri učenju.

Programski sistem je sestavljen iz dveh delov – programskega okolja in programskega jezika. Okolje je naloženo na računalnik, jezik pa je tisti del, ki je »naložen v progra- merjevi glavi«. Okolje mora učencu omogočati, da razume:

• kaj pomeni določen ukaz;

• kaj se zgodi, ko nekaj naredimo / spremenimo;

• prikaz stanja - kako računalnik razmišlja;

• ustvarjanje z reakcijo - kako nekje začeti in nato stvar oblikovati;

• abstraktno ustvarjanje - kako iz konkretnega primera preiti v splošen primer (Bret, 2012b).

Programski jezik pa mora zagotoviti:

• povezavo med računalniškim in resničnim svetom – če želimo, da oseba z zave- zanimi očmi pride do cilja, ji moramo dajati navodila po korakih – prav tako moramo storiti z računalnikom;

• razčlenitev problema na manjše enote, podprobleme;

• povezavo več delčkov programa v smiselno enoto;

• berljivost – učenec mora razumeti, kaj posamezna vrstica kode pomeni (Bret, 2012b).

Okolje je pri učenju programiranja torej zelo pomembno. Učenci morajo čimprej vi- deti, kaj so ustvarili. To pripomore k boljšemu razumevanju kode in samega delovanja programa (Bret, 2012a).

JavaScript je skriptni jezik, ki skrbi za obnašanje spletnih strani – pove nam npr.

ali smo v obrazec vnesli pravilen podatek, omogoča animiranje elementov (menijev, funkcije gumbov) ter še mnogo drugih stvari (The web standards model - HTML CSS and JavaScript, 2014). Spletna stran, ki jo vidimo v brskalniku, je kombinacija struk- ture, sloga ter interaktivnosti. HTML (Hypertext Markup Language) omogoča prikaz vsebine v različnih strukturnih tipih, kot so odstavki, seznami, slike, tabele itd., CSS (Cascading Stylesheets) skrbi za prikaz, JavaScript pa brskalniku pove, kako naj se odziva na dogodke, kot so klik ali spreminjanje določene vrednosti (Hunt, 2007).

Lahko rečemo, da HTML predstavlja kosti, CSS meso, JavaScript pa mišice in mo- žgane spletnega programiranja. Jeziki delujejo precej različno, zato ni nevarnosti, da bi jih zamešali med sabo, hkrati pa se lepo dopolnjujejo in zato je smiselno, da se učence nauči vse tri (Fajfar, 2016).

(20)

JavaScript učencu nudi okolje, v katerem lahko ustvarja in je v tem smislu podoben Scratchu. Njegova slabost v primerjavi s Scratchem, pa tudi drugimi novejšimi jeziki, na primer Pythonom, pa je predvsem bolj zapletena sintaksa.

Obstajajo številne vzporednice med naravnimi jeziki in programskimi jeziki. V obeh primerih se je potrebno znati izražati in upoštevati pravila jezika. Potrebno je razumeti slovnico. Kar napišemo, mora biti razumljivo, da lahko druga oseba, ali pa računalnik, to interpretira (Woodward in Fayed, 2016). Programiranje računalnika ne pomeni nič manj kot komuniciranje z njim v jeziku, ki ga oba razumeta. Učenje jezikov pa je ena od stvari, ki jo učenci znajo najbolje. Vsak »normalen« otrok se nauči govoriti. Zakaj se torej ne bi naučil govoriti z računalnikom (Papert, 1980)?

V naslednjem poglavju bomo nadaljevali z razmišljanjem o pomenu poučevanja progra- miranja in o primernosti različnih jezikov. Tretje poglavje opisuje izvedene učne ure, četrto pa vsebuje dodatni material, ki ga zaradi pomanjkanja časa nismo praktično preizkusili. Empirično raziskavo, omejeno z velikostjo vzorca, predstavljamo v petem poglavju.

(21)

Poglavje 2

Teoretični del

Obstaja več razlogov, zakaj bi se lahko nekomu programiranje v osnovni šoli zdelo (ne- koliko) zapleteno. Čeprav se otroci precej enostavno naučijo svojega maternega jezika, pa ima večina težave pri učenju tujih jezikov v šoli. Še pogostejše so težave pri pisanju - pri nekaterih tudi v maternem jeziku (Papert, 1980).

Papert (1980) meni, da je možno računalnike oblikovati tako, da postane učenje komu- niciranja z njimi naravni proces, t.j. kot učenje francoščine z življenjem v Franciji in ne z življenjem v Ameriki in učenjem v razredu. Učenje komuniciranja z računalnikom lahko vpliva in olajša učenje na vseh področjih. Kako točno, bomo videli v nadaljeva- nju.

Papert opozarja tudi na to, da je potrebno zmožnosti otrok opazovati v kontekstu tega, ali okolje spodbuja njihov razvoj. Ne moremo gledati, kako slabo so se otroci v ameriških šolah naučili francosko in zato reči, da so nesposobni, saj po drugi strani predpostavljamo, da bi se z življenjem v Franciji jezika naučili z lahkoto. Cilj je to- rej narediti takšne računalnike, da bodo otroci z veseljem komunicirali z njimi in da bo njihova komunikacija tako uspešna kot učenje francoščine z življenjem v Franciji (Papert, 1980).

2.1 Začetki poučevanja programiranja

Izobraževanje ni nekaj, kar učitelj naredi, ampak je naravni proces, ki se razvije spon- tano v človeškem telesu. Znanja se ne pridobi s poslušanjem, ampak v skladu z izku- šnjami, kjer lahko otrok deluje v svojem okolju. Učiteljeva naloga ni razlaga, ampak priprava in motivacija učencev za izvedbo dejavnosti v posebnem okolju, narejenem za otroka (Montessori, citirano v: Stark Schmidt in Schmidt, 2009).

Osrednji del Piagetove razvojne teorije učenja in razmišljanja vključuje udeležbo učenca.

Podobno kot Montessorijeva tudi Piaget trdi, da znanje ne more biti pridobljeno na verbalni način, ampak mora biti izdelano in zgrajeno s strani tistega, ki se uči. Učenec

(22)

mora biti aktiven (Jean Piaget – Intellectual development, b.d.).

Piaget je zagovarjal aktivno odkrivanje učnih okolij v naših šolah. Inteligenca raste skozi procesa asimilacije (prilagajanje okolja samemu sebi) in akomodacije (sebe pri- lagajamo okolju), zato bi morala biti oba procesa zagotovljena. Ključnega pomena je aktivnost - otroci morajo raziskovati, eksperimentirati, spraševati in sami iskati odgo- vore. Pri tem je učiteljeva naloga oceniti stopnjo kognitivnega razvoja učenca; njihove prednosti in šibkosti. Učenci morajo imeti priložnost komunicirati med sabo, argumen- tirati in sprožati debate. Dovoljeno jim mora biti, da delajo napake in se iz njih učijo (Jean Piaget – Intellectual development, b.d.). Papert (1980) se je strinjal s Piageto- vim načinom učenja in to poimenoval »učenje, ne da bi se učili«, kakor se na primer otroci naučijo govoriti, gibati v prostoru, naučijo se retorike in sporazumevanja s starši brez specifičnega (namernega) učenja.

Laboratoriji, delavnice in tehnologije, ki spodbujajo interaktivnost (na primer mul- timedija in virtualni svet), se ujemajo s Piagetovo miselnostjo. Seveda pa računalniki sami po sebi še ne zagotavljajo aktivnega odkrivanja okolja, saj le vaje in učenje na pamet, kar se pogosto uporablja v jezikovnih šolah, ne spodbujajo kreativnosti in od- krivanja (Jean Piaget – Intellectual development, b.d.).

Dve glavni temi - da se otroci lahko naučijo uporabljati računalnik »na mojstrski način« in to, da lahko učenje uporabe računalnika spremeni način učenja na splošno, sta oblikovali Papertovo raziskavo o računalnikih in izobraževanju (Papert, 1980).

Rezultat njegovega desetletnega delovanja s skupino študentov in kolegov na MIT (LOGO skupina v Artificial Intelligence Laboratory) je izdelava okolja, s katerim se učenci učijo komuniciranja z računalnikom. Pri tem je vidno vlogo odigralo sledenje vi- ziji »posnemanja načina, kako se učenci naučijo govoriti«, kar izobraževalno raziskavo zelo razlikuje od tradicionalnih. Kot že rečeno - model uspešnega učenja je takšno uče- nje, kjer se učimo in se pravzaprav ne zavedamo, da se učimo. To pa nam omogočajo računalniki in okolja, kot je Logo, saj učenje pomaknejo tudi izven klasičnega učenja v razredu (Papert, 1980).

Okolje Logo

Logo je izobraževalni programski jezik, ki so ga leta 1967 oblikovali Wally Feurzeig, Seymour Papert in Cynthia Solomon (Abelson, Goodman in Rudolph, 1974). »Logo«

ni kratica; beseda izhaja iz grške besede logos, ki pomeni beseda ali, po Feurzeigu,

(23)

»misel«. S tem imenom je želel poudariti, da se Logo razlikuje od ostalih jezikov, ki so bili primarno osredotočeni na števila in ne na grafiko oz. logiko. Jezik je znan po svoji uporabi želvje grafike. Z njim pišemo ukaze za gibanje želve, kar je vidno bodisi na zaslonu bodisi prek premikanja majhnega robotka, želve (Goldenberg, 1982).

Do konca podpoglavja povzamemo Papertovo (1980) opazovanje otroške interakcije z računalnikom v jeziku Logo. Kot že rečeno, v programskem jeziku Logo komuni- ciramo z želvo. Na začetku otroka seznanimo z osnovnimi ukazi in sicer kako želvo premikamo s pomočjo pisanja ukazov prek tipkovnice. FORWARD (naprej) 100 želvo premakne naprej za razdaljo 100 korakov. Ukaz RIGHT (desno) 90 želvo obrne za 90 v desno; PENUP (pisalo je dvignjeno) želvo premika brez puščanja sledi, medtem ko PENDOWN (pisalo je spuščeno) želvo premika in za njo riše črto. Otrok mora seveda sam raziskovati, kaj ta števila pomenijo.

Ideja programiranja je predstavljena na način učenja želve novih besed. Učenci prido- bivajo programerske izkušnje s programiranjem želve in uvedbo novih ukazov, kot so npr. SQUARE (kvadrat) ali TRIANGLE (trikotnik) oz. SQ ali TRI ali karkoli si otrok zamisli, z risanjem ustreznih oblik. Tako kot lahko npr. hišo narišemo s kombinacijo kvadrata in trikotnika, lahko program za risanje hiše narišemo s kombinacijo ukazov za risanje kvadrata in s kombinacijo ukazov za risanje trikotnika. Iz teh preprostih risb gre lahko mlad programer v različne smeri - v bolj kompleksne, abstraktne risbe ali pa v nasprotno, opusti svoje risanje z želvo. V nadaljevanju se otroci naučijo dodajati glasbo in sprogramirati želvo, da pleše.

Slika 2.1: Primer sodobnejšega Logo okolja

(24)

Morda se nekaterim programiranje zdi kompleksno in menijo, da je potrebno biti na- darjen, a Papert iz izkušenj meni drugače in predpostavlja, da se lahko vsak otrok nauči programirati. Videl je namreč na stotine osnovnošolcev, ki so se programiranja naučili brez večjih težav. Pravzaprav tisti, ki so v raziskavi sodelovali, niso bili »nič posebnega« - nekateri so bili v šoli uspešni, drugi malo manj, nekateri so bili nadar- jeni za matematiko, drugi za jezike, tretji za ples itd. Seveda se otroci niso naučili

»tekoče programirati«, bili pa so na dobri poti do tega, da se naučijo »komunicirati z računalnikom«.

Računalniška kultura

V večini primerov se računalnik na izobraževalnem področju uporablja za reševanje nalog na različnih nivojih, za iskanje in pridobivanje različnih informacij itd. Z dru- gimi besedami, računalnik programira otroka. V Logo okolju je odnos obrnjen - nadzor ima otrok in otrok programira računalnik. S tem, ko otrok uči računalnik, kako naj razmišlja, začne raziskovati, kako razmišlja on sam. Razmišljanje o razmišljanju otroka spremeni v epistemologa1, v nekaj, kar ni niti večina odraslih.

Idejo o podobi otroka kot epistemologa je Papert dobil med sodelovanjem s Piagetom.

Po petih letih delovanja na Piagetovim centru (Center for Genetic Epistemology) v Ženevi, leta 1964, je Paperta impresioniral Piagetov pogled na otroka kot aktivnega konstruktorja svojih lastnih intelektualnih struktur. Čeprav rečemo, da so intelektualne strukture zgrajene s strani učenca in ne naučene s strani učitelja, pa to ne pomeni, da so zgrajene iz ničesar. Ravno nasprotno: kot ostali graditelji, tudi otroci uporabljajo materiale, ki jih najdejo okoli sebe, najpogosteje modele in metafore, ki jih dobijo iz kulture, v kateri živijo.

Prisotnost računalnika ima v naših življenjih velik pomen. Mogoče ima za intelek- tualni razvoj celo večji pomen kot ostale tehnologije, vključno s televizijo, in tudi tisk.

Pri vsem omenjenem namreč otrok le posluša razlago, ko pa se uči programirati ozi- roma na splošno uporabljati računalnik, se proces učenja spremeni; otrok postane bolj aktiven in samostojen. Znanje postane vir energije od trenutka, ko se začne oblikovati v otrokovi glavi.

Tekom svoje raziskave je Papert opazil, da učenci, ki so se naučili programirati, znajo uporabljati zelo konkretne računalniške modele za razmišljanje o razmišljanju in za učenje o učenju. Veliko otrok na primer pri učenju zavira dejstvo, da je njihov model

1Epistemologija - učenje razmišljanja o razmišljanju.

(25)

učenja takšen, v katerem sta možnosti le dve: razumeš ali pa ne razumeš. Ko pa se učiš programiranja, spoznaš, da skoraj nikoli ne narediš vse pravilno že v prvem poskusu. Pot do uspešnega programerja vključuje odkrivanje in popravljanje napak, ki onemogočajo delovanje programa. Pri programiranju ni tako pomembno vprašanje, ali program dela ali ne, temveč ali jepopravljiv. Takšna miselnost veliko pripomore k odpravljanju strahu pred delanjem napak, saj uporaba računalnika spreminja pojem o črno-beli verziji (ne)uspeha. Računalnik je primer objekta, s katerim razmišljamo. Seveda delo z računalnikom ni pogoj za doseganje dobrih strategij za učenje in prav gotovo so bile strategije razhroščevanja2 razvite že dolgo pred iznajdbo računalnikov, ampak razmišljanje o učenju z razvijanjem programa je dober način za pridobivanje strategij oiskanju oz. odpravljanju napak ter izboljšanje le-teh.

Želvja geometrija

»Želvja geometrija« (angl. turtle geometry) je drugačen način učenja geometrije in sicer računalniški način učenja geometrije. Želva je robot, ki ga otrok premika s pisanjem ukazov. Učenje premikanja želve je kot učenje govorjenja jezika, saj aktivira otrokovo znanje in užitek v govorjenju. Ker je občutek takšen, kot da nam nekdo ukazuje, aktivira tudi otrokovo znanje in veselje po ukazovanju. Ko se otrok uči programirati premikanje želve, se pravzaprav tudi sam fizično premika po prostoru. To naredi tako, da mu sošolci dajejo navodila, npr. »naredi 10 korakov naprej«, »obrni se za 50 v desno«, »naredi 5 korakov naprej« itd. Z razmišljanjem, kako se premikati po prostoru, ni težko navodil prenesti v kodo. Otrok se vpraša, kako sedaj narisati krog.

Dovolj je, da pomisli, kako bi krog naredil s koraki. Tako ugotovi, da do hoje v krogu pridemo z majhnim korakom naprej, nato se malo obrnemo, pa spet naredimo majhen korak naprej, se spet obrnemo itd. Iz tega opisa do kode je nato le majhen korak.

TO CIRCLE REPEAT [FORWARD 1 RIGHT 1]

Otroci se naučijo risanja kvadrata, trikotnika, nato pa želijo narisati bolj zapletene like.

Tako poskušajo narisati hišo. Otrok napiše kodo, zažene, a slika ni pravilna (trikotnik je znotraj kvadrata namesto na njem).

Tipična reakcija pri matematiki bi bila, da bi otrok želel na »napako« čimprej pozabiti, v Logo okolju pa otrok ni kritiziran za napako, saj je proces razhroščevanja normalno

2Razhroščevanje (angl. debugging)- iskanje in odpravljanje napak.

(26)

stanje za razumevanje programa. Programer je spodbujan, da razišče problem, namesto da bi nanj pozabil.

Učenec vidi, da stvar ni v celoti napačna in niti v celoti pravilna; slika je boljša, a bug (napaka) še vedno obstaja. Nekateri učenci rišejo preproste stvari (hiša), nekateri pa bolj abstraktne.

Učenci s temi preprostimi risbicami krepijo nekatere ideje, npr. kot, ponavljanje, pro- cedura. Želvja geometrija je bila zasnovana posebej zaradi tega, da otrok vidi, kaj dela, da dobi smisel in občutek ter da zna razločiti, kaj je pomembno. Preden se nekaj naučimo, je koristno, da to na nek način osmislimo. Mnogo otrok je pred začetkom učenja Loga sovražilo števila, nato pa so jih vzljubili. Veliko otrok, tudi v 1. in 3.

razredu, se je iz nalog in izkušenj naučilo, kaj pomeni kot 45, 10 ali 360, pri čemer ima še nekaj starejših osnovnošolcev težave. Drugi pomemben matematični koncept, ki se ga učenci naučijo in bolje razumejo, je uporaba spremenljivke - ideja za uporabo simbola namesto nečesa neznanega.

Primer pogovora med dvema otrokoma

Spodnji primer pogovora med dvema učencema ni resničen, je le hipotetičen, a takšne situacije se v resnici dogajajo. Pokazal nam bo, kako se otroci skozi igro in pogovor učijo programiranja, odkrivanja in popravljanja napak ter poskušanja, kaj določen del kode naredi. Prav tako je dobrodošlo, da učenci med seboj sodelujejo, saj se s tem dopolnjujejo in delijo svoje znanje in ideje.

(27)

NAČRT

A: »Narišiva rožico.«

ISKANJE SREDSTEV

B: »Imaš kakšen program, ki ga lahko uporabiva?«

A: »Ja, tukaj je koda za polovico kroga, ki sem jo naredil prejšnji teden.«

B: »Pokaži mi.«

A: »To nariše četrtino kroga. Začne tam, kjer se želva nahaja.«

B: »Potrebuje vhodni podatek za velikost.«

POSKUSIVA NEKAJ

A: »Narediva cvet tako, da dava dva QCIRCLES (četrtina kroga) skupaj.«

B: »Prav, kakše velikosti?«

A: »Reciva 50?«

PRVA NAPAKA B: »Ne dela!«

A: »Seveda! Dva QCIRCLES data polkrog.«

ODPRAVA NAPAKE

A: »Med četrtinama kroga morava želvo obrniti.«

B: »Poskusi 120

A: »OK, pri trikotnikih je to delovalo.«

TO JE PTIČ!

B: »Kaj se dogaja?«

A: »Poskusi obrat v desno.«

B: »Zakaj ne pustiva ptiča?«

A: »Ti kar. Jaz hočem mojo rožo.«

B: »Lahko narediva rožo, nato pa še jato.«

(28)

TO JE RIBA ...

B: »Obrat v desno je boljši.«

A: »Ampak ne veva za koliko obrnit.«

B: »Lahko poskusiva z različnimi števili.«

A: »Ali pa vključiva nekaj matematike.«

MATEMATIKA ZA POMOČ

A: »Če želiva, da želva naredi cel krog, je to 360

B: »Vsak QCIRCLE je 90. Dva sta torej 180

A: »Skupaj 360. Odvzemiva 180 za QCIRCLES.

Ostane 180 za špičaste dele. 90 za vsakega.«

B: »Torej morava dati RIGHT 90 na vsakem koraku.«

A: »Poskusiva.«

A: »Štirje dajo rožo.«

B: »To je bolj kot propeler.«

A: »Poskusiva 10.«

GRADNJA

B: »Vse to pisati desetkrat... Me že bolijo prsti.«

A: »Lahko uporabiva REPEAT (ponovi).«

(29)

A: »Uspelo nama je!«

B: »Prevelika je.«

A: »Vse, kar morava narediti, je to, da zamenjava 50 v PETAL (cvet). Dajva 25.«

B: »Če pustiva v PETAL vhodni podatek, lahko narediva majhne in velike rože.«

A: »Lahko narediva proceduro za risanje rože.«

B: »Z uporabo RANDOM (naključna velikost) lahko narediva različno velike rože. In dobiva cel vrt!«

Učenci lahko vedno svoje delo še nadgrajujejo, naredijo npr. jato ptičev (idejo dobijo tudi z napakami, ki se izkažejo za dobrodošle) ali dodajo nekaj drugega.

Kako se učimo?

Papert meni, da je razmišljanje in razumevanje dobro in uporabno pri učenju, ampak - kam bi prišla stonoga, če bi za vsak korak razmišljala, kdaj in katero nogo mora pre- makniti? Bi se enako zgodilo nam? Mar to pomeni, da moramo prenehati razmišljati o sebi?

Pravzaprav je v naši kulturi precej razširjena miselnost, da razmišljanje ovira deja- nje in tudi učenje. Pri učenju pogosto slišimo naslednjo misel, ki spominja na učenje vožnje s kolesom: »Kar vztrajaj, nekega dne se boš že naučil«.

Mnogo filozofov je razvilo idejo, da vsega znanja ne moremo opisati z besedami in da se pravzaprav nekaterega znanja sploh ne zavedamo. Eden izmed njih je bil tudi psiholog Bruner, ki je v svoji klasifikaciji ločil tri tipe znanja: nekatera znanja so predstavljena kotdejanja(akcije), druga skozislike(podobe) in tretja kotsimboli(matematični znaki in drugi simboli). Bruner je trdil, da »besede in diagrami« ne morejo dobro predstaviti nekega znanja, ki ga je možno izraziti le z dejanji.

Papert takšno strogo delitev zavrača, saj meni, da ne moremo vsakega znanja opi- sati z besedami in niti ne obstaja takšno znanje, ki je neopisljivo. Pomembno vlogo pri tem, da postanemo dober učenec, igra dejstvo, da se naučimo, kaj je mogoče izraziti z besedami. S tega vidika vprašanje o učenju vožnje s kolesom ni mišljeno, da moramo nekomu opisati cel postopek učenja, ampak kaj je mogoče storiti, da drugemu (ali sebi)

(30)

pomagamo izboljšati in olajšati učenje (vožnje z s kolesom).

Učenje fizičnih spretnosti ima torej veliko skupnega z gradnjo znanstvenih teorij in ni res, da je najboljši način za njihovo učenje le vaja in vztrajnost.

S tem spoznanjem pridemo do veliko prednosti. Iz izkušenj iz Loga vemo, da to pomeni bolj učinkovito učenje fizičnih spretnosti. Tudi v različnih aktivnostih, ki se otrokom zdijo pomembna v vsakdanjem življenju, lahko najdemo prostor za znanstveno raz- mišljanje. To povezovanje znanosti s fizičnimi aktivnostmi lahko naredi veliko več za učenje znanosti, kakor pa, kot temu rečejo izobraževalni pedagogi, »motivacija«. To lahko da otrokom občutek nekakšne povezanosti z znanstveniki, saj vemo, da znanstve- niki uporabljajo formalne opisne jezike in otroci vedo, da lahko takšen jezik uporabijo tudi sami kot orodje za učenje motoričnih sposobnosti, npr. žongliranja. Ideja je, da medtem, ko otroci delajo nekaj prijetnega zase, razmišljajo o tem, da »delajo nekaj znanstvenega«. Če bi otroci v Descartesovem koordinatnem sistemu3 videli nekaj smi- selnega in ne samo nekaj »vesoljskega« za vsakdanje življenje, bi tudi njim pomagalo, da bi se počutili bolj pomembne.

Pomemben del programiranja je koncept strukturiranega programiranja (problem raz- delimo na manjše podprobleme). S tem načinom se je soočil učenec 5. razreda, ki je v Logo okolju želel narisati fantka. Kar se je po napisani kodi narisalo na ekranu, ni bilo niti najmanj podobno fantku, ki ga je želel učenec narisati. Kaj je šlo narobe? Uče- nec je bil pripravljen na takšna presenečenja. Logo je odlično okolje za odkrivanje in razreševanje nastalih napak. Nihče ne pričakuje, da bo vse delalo že v prvem poskusu in nihče ne ocenjuje s pravilno, dobra ocena oziroma napačno, slaba ocena. Bolj po- membno je vprašanje - kako popravim napako? Da lahko napako popravimo, moramo najprej razumeti, kaj se je zgodilo in kaj smo zgrešili. Težavo je bilo v učenčevi kodi težko najti, zato jo je bilo potrebno najprej razdeliti na manjše dele - podprograme.

Nato je iskanje napake lažje, saj veliko prej vidiš, v katerem delu se je napaka pojavila.

Podobno drugi učenec (7. razred) pravi, da je pogosto vse pomešal v svojih kodah.

Sedaj pa se je naučil, da ne odgrizne več kot lahko prežveči.

Kot že rečeno, lahko razmišljanje o učenju in delitvi problema na podprobleme upo- rabimo na vseh področjih. Dva petošolca sta se učila programiranja in tudi fizične spretnosti, hoje s hoduljami. Paul je bil bolj introvertiran, šibke postave in priden v

3Legenda pravi, da je Descartes izumil analitično geometrijo (koordinatni sistem) medtem, ko je ležal na postelji in opazoval muho na stropu. Lahko si predstavljamo, kako je razmišljal - premikanje muhe je izrisovalo pot v obliki krogov in elips. V vsakem trenutku lahko položaj muhe opišemo tako, da povemo, koliko je oddaljena od sten. Točke v prostoru so lahko opisane s parom števil (x, y), pot pa z enačbo ali razmerjem teh parov točk na poti.

(31)

šoli, medtem ko je bil Michael bolj močne, atletske postave, v šoli pa nekoliko manj uspešen. Paul se je hitreje naučil dela z računalnikom in dokaj kompleksnih procedur pri programiranju, Michael pa je po parih tednih še vedno pisal le nestrukturirano kodo. Ni bilo dvoma, da je sposoben pisanja tudi zahtevnejših programov, a je bil do uporabe podprogramov nekoliko zadržan. Istočasno sta se oba učenca učila tudi hoje s hoduljami. Michaelova strategija je bila: »ena noga na hoduljo, vstani, druga noga na hoduljo, naredi prvi korak itd.« Ko je med poskušanjem hitro padel, je vstal in poskusil ponovno, ponovno in ponovno, prepričan, da mu bo prej ali slej le uspelo in mu tudi je. A na presenečenje vseh, se je hoje prvi naučil Paul. Paulova strategija je bila drugačna. Začel je enako kot Michael, a ko je videl, da to ne prinaša napredka, je hotel ugotoviti, kaj dela narobe in problem rešiti. Ob koraku naprej pustiš hoduljo za seboj. Ko se enkrat tega zavedaš, ni težko napake popraviti. Ena možna rešitev je ta, da narediš korak s hoduljo in ne z nogo, kjer dovoliš, da hodulja nogo »premakne«.

To narediš tako, da hoduljo dvigneš z roko in ne z nogo. Analogija Paulovega pristopa v primerjavi s programiranjem je bila tako očitna, da to lahko vidimo kot primer pre- nosa iz programiranja na učenje fizičnih sposobnosti. Pravzaprav je bolj verjetno, da je ta položaj posledica značilnosti njunih kognitivnih stilov, ampak izkušnja z Logom je Paulu omogočila svoj stil izboljšati. Povezava med programiranjem in hojo s hodu- ljami je še bolj jasna v Michaelovem primeru. Šele s to analogijo je prepoznal razliko med njegovim in Paulovim načinom hoje s hoduljami. Z drugimi besedami, izkušnje iz programiranja so obema pomagale bolje razumeti svoja dejanja.

Proces razhroščevanja je najbolj uspešen takrat, ko so moduli (podprogrami) dovolj majhni, da v njem najdemo največ eno napako. Težavnost, če je napak več, lahko pri- merjamo s tem, ko se začetnik uči žongliranja4 - ponavadi uspe, večinoma po obupnih poskusih obdržati tri žogice v zraku, čeprav niso sposobni obdržati niti dveh. Takšen način vzame veliko časa za učenje. S časom in vajo se vsega naučimo, ampak je ta način počasen in nekoliko primitiven. Ljudje smo sposobni, da se naučimo več, hitreje, da »zavestno kontroliramo učenje« in analiziramo naše obnašanje. Kakor je Papert videl v prvih urah učenja Loga, otroci velikokrat dobijo odpor dorazhroščevanja - na primer napišejo kodo za želvo, da izriše določen lik (recimo hišo ali fantka). Program na hitro napišejo in zaženejo. Ne dela. Namesto, da bi poiskali napako, izbrišejo ce- lotno kodo. Včasih tudi cel projekt. Včasih otroci poskušajo znova in znova, ampak ne z iskanjem napake, temveč od začetka v upanju, da bodo »v prvo« napisali kodo pravilno. Mogoče jim uspe, mogoče ne. Ampak ta otrok se še vedno ni naučil procesa razhroščevanja. Kar mi vidimo kot dober program z majhno napako, otrok vidi kot

»narobe«, »slabo«, »napačno«. Šola uči, da so napake slabe in zadnja stvar, ki bi jo

4Žongliranja se lahko učimo z vajo, vajo in vajo, ali pa s preučevanjem analitičnih opisov postopkov, s pomočjo slik itd.

(32)

otrok želel, je razmišljati o njih. Zato velikokrat vse skupaj zbriše, preden bi kdorkoli lahko videl njegovo kodo. Metoda razhroščevanja zagovarja nasprotno - napake so ko- ristne, saj nas usmerijo v to, da razmišljamo, kaj se je zgodilo in razumemo, kaj je šlo narobe ter skozi to razumevanje poskušamo najti rešitev. Izkušnje z računalniškim programiranjem so na tem področju bolj učinkovite kot katerekoli druge aktivnosti in otroci dobijo drugačen pogled na razhroščevanje.

V Logo okolju se zgodi nekaj pomembnega - učenci vidijo, da je tudi učitelj prav- zaprav učenec in da se vsi učimo iz svojih napak. Dogajajo se namreč situacije, ko učitelj napiše program in le-ta ne dela, nato pa učence vpraša, naj mu pomagajo najti napake. Čeprav učitelji velikokrat vedo odgovor na vprašanje, ki ga otrokom zasta- vljajo, pa se pri programiranju lahko tudi zgodi, da ga resnično ne vedo in ga skušajo najti skupaj z učenci. Zgodi se, da učenec učitelja vpraša: »Ali res ne znate popra- viti napake?« Tako učenci vidijo, da delanje napak ni tako grozno in narobe. Pogosto prihaja do novih situacij, s katerimi se tako učenci kot tudi učitelji srečajo prvič in slednjim se ni potrebno pretvarjati, da vedo vse. Skupno reševanje problema otroku omogoča, da se od odraslega uči in ne da dela, kar učitelj reče, ampak dadela to, kar dela učitelj. Ena od stvari, ki jo učitelj počne, pa je to, da nadaljuje z razreševanjem problema, dokler le-ta ni v celoti odpravljen.

Podobe učnega okolja

Učenje lahko poteka na veliko različnih načinov, med drugim tudi izven šole. Takšno učenje je (navadno) še bolj učinkovito. Na primer, v Riu de Janeiru vsako leto poteka karneval. Za pripravo nanj se nekateri učijo peti, plesati, igrati razne igre itd. Vsaka skupina se pripravlja posebej, v svojem lastnem okolju (poimenujmo ga šola sambe).

Ampak to ni šola, kot jo poznamo mi; to so družabni klubi, ki lahko štejejo od nekaj sto do nekaj tisoč članov. Vsak klub ima svoj prostor za plesanje, zabavanje in druženje s prijatelji. Člani kluba so različne starosti, od otrok pa do dedkov, od amaterjev do profesionalcev. Vsi plešejo skupaj, vsak se uči in vsak uči druge. Izkušen plesalec na primer okoli sebe zbere skupino ljudi, jih nekaj minut uči, nato pa pusti, da plešejo in vadijo sami, on pa se posveti težjim korakom. Čeprav večina učenja poteka v narav- nem okolju, je učenje vseeno namerno in osredotočeno. Ljudje čutijo, da pripadajo šoli.

Šola sambe predstavlja množico lastnosti, ki bi ga učno okolje moralo in lahko imelo, npr. učenje ni ločeno od resničnosti, šola ima svoj namen in učenje je integrirano v šolo za ta namen, novinec ni ločen od eksperta in tudi ekspert se uči, itd. Logo oko- lje je, v neki meri, kot šola sambe. Dejavnosti (kaj vse lahko naredimo v Logu) so

(33)

tako raznolike in dopuščajo možnost odkrivanja, da lahko tudi na prvem otrokovem srečanju z Logom učenec najde nekaj, kar je učitelju novo in zanimivo. Tudi kvaliteta odnosov med ljudmi je podobna - čeprav so učitelji navadno prisotni, je njihova vloga bolj podobna vlogi izkušenejših plesalcev v šoli sambe kot pa tradicionalnim učiteljem, ki imajo točno določeno vodeno uro in učni kurikulum. Učitelj bo v Logo okolju odgo- varjal na vprašanja, pomagal, če bo vprašan in se včasih usedel k učencu in rekel »naj ti nekaj pokažem«. Kar mu pokaže, ni nujno določeno v učnem načrtu, včasih je lahko nekaj, kar učenec potrebuje za trenutni projekt, lahko je nekaj, kar se je učitelj ravno naučil in meni, da bo učencem všeč. Včasih pa se učitelj preprosto obnaša spontano, kakor se obnašajo ljudje v nestrukturiranih socialnih situacijah, ko so navdušeni nad tem, kar delajo.

Pri delu z Logom je zabavno tudi to, da učenci svoje izdelke delijo z ostalimi, do- polnjujejo in eksperimentirajo z izdelki drugih otrok, nato pa dopolnjeno/izboljšano verzijo vrnejo nazaj prvotnemu avtorju. Čeprav je delo na računalniku ponavadi za- sebno (vsak dela sam), pa to povečuje otrokovo željo po interakciji. Otroci se želijo povezati z drugimi, saj si imajo veliko za povedati - kaj je kdo naredil, kako je na- redil itd. Najpomembnejša tema pogovorov kmalu postanejo napake, torej poudarek na razhroščevanju, posledica pa je ta, da učenci točno vedo, kako poiskati pomoč, ko pride do težav. Ko je prošnja za pomoč jasno in razločno izražena, ni potrebna pomoč specialista, ampak je sošolec dovolj, da zna pomagati. Logo okolje na ta način poe- nostavi interakcijo med vsemi udeleženci in nudi priložnost za bolj izrazito, učinkovito in »pošteno« učno razmerje. To je korak v smeri, ko se meja med učitelji in učenci nekoliko zmanjša. Kljub vsem podobnostim pa to vseeno ni šola sambe in učitelji so še vedno strokovnjaki, odgovorni za učenčevo znanje, pa čeprav na nek način opustijo avtoriteto. Čeprav Logo okolje ni šola sambe, nam da vpogled, kako bi bilo, če bi imeli samba šolo za učenje računalništva in drugih predmetov.

(34)

2.2 Scratch kot vzor okolja za učenje programiranja

Scratch izhaja iz spoznanj, pridobljenih iz jezika Logo, in po našem mnenju predstavlja vzor okolja, ki temelji na Papertovem konstrukcionističnem pristopu. V tem poglavju zato opisujemo njegove najpomembnejše lastnosti.

Scratch je vizualno programsko okolje, namenjeno otrokom med 8. in 16. letom starosti. Uporabnikom omogoča učenje programiranja prek ustvarjanja interaktivnih projektov, obogatenih s številnimi mediji, na primer animirane zgodbe, igre, voščila, simulacije in številne druge stvari. Ključni cilj projekta je podpiranje samostojnega učenja in sodelovanja s kolegi (Maloney, Resnick, Rusk, Silverman in Eastmond, 2010).

Okolje je namenjeno ustvarjanju projektov z različnimi mediji in skriptami. Slike in zvok lahko uvažamo ali ustvarimo v Scratchu s pomočjo vgrajenega orodja za risanje in s snemalnikom za zvok. Programiramo tako, da povezujemo skupaj ukazne bloke različnih barv. Z njimi upravljamo 2D grafične objekte (sprite), ki nastopajo na ne- kem ozadju (stage). Projekte lahko shranimo v sistem ali pa jih delimo z ostalimi na Scratchevi spletni strani (Maloney idr., 2010).

Scratch je spodbudil otroke za učenje prek raziskovanja in sodelovanja (izmenjave) z vrstniki, z manj neposrednega osredotočanja na navodila kot pri drugih programskih jezikih. Pravzaprav se je na začetku Scratch uporabljal predvsem v neformalnih učnih okoljih – različnih centrih, klubih, knjižnicah in domovih, nato pa se je začel vse bolj uporabljati tudi v šolah (Maloney idr., 2010).

Programsko okolje Scratch so začeli razvijati leta 2003, štiri leta kasneje pa je bilo javno dostopno na spletu. Je brezplačno in prevedeno v več kot 50 jezikov (Maloney idr., 2010). Kako popularno je, povedo naslednje številke: trenutno (avgusta 2017) je na spletni strani Scratcha registriranih preko 20 milijonov uporabnikov, ki so delili več kot 24 milijonov projektov. V zadnjem mesecu (julij 2017) je imela stran več kot 100 milijonov obiskov, v mesecu maju pa je bilo na strani registriranih 960.000 novih upo- rabnikov, dodanih 982.000 novih projektov in napisanih preko 3.600.000 komentarjev na projekte (Scratch, b.d.).

Scratch je bil zasnovan na konstrukcionističnih idejah Loga. Da bi okolje čim bolj približali uporabnikom, so omogočili enostaven uvoz oz. ustvarjanje svojih lastnih slik in zvokov. Spletna stran zagotavlja nekakšen družbeni kontekst, ki uporabnikom omogoča, da svoje projekte delijo z drugimi, dobijo povratno informacijo in spodbudo

(35)

vrstnikov ter se učijo iz projektov drugih. Glavni cilj Scratcha je približati progra- miranje tistim, ki pred tem s programiranjem še niso imeli izkušenj (Maloney idr., 2010).

Programsko okolje Scratch

V tem podpoglavju si bomo podrobneje pogledali, kako programsko okolje Scratch opisujejo Maloney idr. (2010). Mnogo uporabnikov se uči Scratch tako, da preizkuša ukaze »s palete« ali raziskuje kode že obstoječih projektov. Okolje spodbuja samo- stojno učenje in je bilo zasnovano tako, da zagotovi takojšnjo povratno informacijo, saj izvedbo kode vidimo na zaslonu.

Scratch ima enostaven uporabniški vmesnik. Na sliki 2.2 vidimo štiri glavne dele.

Večje podokno na levi strani predstavlja »oder«, kjer se izvajajo akcije, pod njim pa se nahaja seznam vseh grafičnih podob. Na sredini se nahaja podokno s tremi zavihki:

tu so ukazni bloki z gumbi za izbiro kategorij, možnost spreminjanja videza grafične podobe in dodajanje zvoka. Zadnje in glavno podokno pa vsebuje skripto za izbrano grafično podobo, npr. mačka.

Da so uporabniki čim bolj spodbujeni k »sestavljanju« skripte, je ukazna paleta vedno vidna. Ukazi so razdeljeni v osem kategorij: premikanje, izgled, zvok, svinčnik, dogodki, krmiljenje, zaznavanjeinoperatorji. Vsaka kategorija ima svojo barvo za ukazne bloke, kar uporabnikom pomaga pri povezovanju le-teh.

Programiranje v Scratchu na nek način spominja na zlaganje lego kock. Pri igra- nju z lego kockami ne moremo narediti napake. Različne kocke spadajo skupaj le na določene načine in lažje je zložiti pravilno kot pa napačno. Oblike kock nam kažejo, kaj je mogoče, eksperimentiranje in izkušnje pa nas učijo, kaj deluje.

Podobno tudi Scratch ne javlja napak. Do napak v sintaksi pravzaprav ne more priti, saj lahko sestavimo skupaj le tiste ukazne bloke, ki po obliki spadajo skupaj. Če pro- gram ne javlja napak, pa seveda še ne pomeni, da napak ni. Uporabnik mora vedno skrbno razmisliti, da skripte napiše pravilno in napake odpraviti, če program ne deluje tako, kot si je zamislil. Program se sicer zažene v vsakem primeru, tudi če ne deluje pravilno. To vsekakor daje boljši občutek kot pa, če programsko okolje javi napako in kode sploh ne zažene (kakor se npr. dogaja pri drugih jezikih).

V večini jezikov, ko govorimo o tekstovnem programiranju, so spremenljivke nevi-

(36)

dne, abstraktne in težko razumljive. Scratch pa spremenljivke spremeni v konkretne predmete, ki jih uporabnik lahko vidi in z njimi upravlja, kar olajša razumevanje in opazovanje.

Slika 2.2: Okolje Scratch na spletni strani https://scratch.mit.edu in del kode

V Scratchu se lahko spremenljivka prikaže na zaslonu kot monitor spremenljivk. Mo- nitorji uporabnikom omogočajo, da vidijo učinek ukazov, kot je npr. »povečaj za 1«, s čimer jim pomagajo pri oblikovanju predstave o tem, kako spremenljivke delujejo.

Monitorji pa niso namenjeni le za pomoč pri razumevanju, lahko so uporabni tudi na primer za prikazovanje točk v igri.

Skripte v Scratchu sestavljamo tako, da sestavljamo ukazne bloke, kar predstavlja izjave, izraze in kontrolne strukture. Oblike blokov nam povedo, katere ukaze lahko združimo skupaj,drag-and-drop(povleci in spusti) sistem pa nam ne dovoli, da bi bloke nesmiselno povezovali med seboj.

Prednosti Scratcha pred Logom

Papertove sanje o tem, da bi otroci znali tekoče uporabljati računalnik, se (še) niso popolnoma uresničile. Čeprav današnje otroke včasih imenujemo digitalna generacija, večina izmed njih obvlada le brskanje po spletu, klepetanje, uporabo aplikacij in igra- nje iger. To je tako, kot če bi znali »brati«, a ne »pisati« (Resnick, 2012).

(37)

Resnick je podpiral in verjel v Papertovo idejo. Skupaj s skupino raziskovalcev na MIT Media Lab je poskušal uresničiti njegove sanje. Zavedali so se, da to ni enostavno in da je za to potrebna nova generacija tehnologij, aktivnosti in izobraževalnih strategij (Resnick, 2012).

To so poskušali doseči s Scratchem. S preučevanjem Papertovih izkušenj z Logom so zasnovali Scratch, ki naj bi bil boljši od Loga na treh področjih. Programiranje naj bi bilo:

• Bolj raziskovalno: kot smo že omenili, proces sestavljanja kode v Scratchu spo- minja na gradnjo Lego kock. Ustanovitelji Scratcha so občudovali, kako se otroci igrajo in gradijo z Lego kockami, zato so želeli narediti nekaj podobnega v Scrat- chu. To jim je tudi uspelo. Učenci zlagajo in kombinirajo različne bloke in nato vidijo, kaj se zgodi.

• Bolj smiselno: učenci lahko izdelajo različne projekte (zgodbe, igre, animacije, simulacije), izdelke lahko personalizirajo (dodajajo svoje slike, snemajo glas, ustvarjajo like) ipd.

• Bolj družabno: učenci lahko svoje izdelke delijo z drugimi na spletni strani. Po- drobneje o tem v nadaljevanju (Resnick, 2012).

Do konca podpoglavja si bomo pogledali, kako so se Resnick (2014) in njegova razisko- valna skupina My Lifelong Kindergarten na MIT Media Lab ukvarjali tudi z vpraša- njem, kako lahko pomagamo mladim, da odrastejo kot ustvarjalni misleci. V ta namen so razvili nove tehnologije, aktivnosti in strategije za vključevanje mladih v ustvarjalne učne izkušnje, kjer se lahko razvijajo kot ustvarjalni misleci. Njihov pristop pri obliko- vanju Scratcha temelji na štirih ključnih elementih, ki jih včasih imenujejo »štirje P-ji kreativnega učenja«:

Projekti (Projects): ljudje se najbolje naučijo, ko aktivno delajo na pomembnih projektih – ustvarjajo nove ideje, oblikujejo prototipe (vzorce) itd.

Vrstniki (Peers): učenje se v skupini »razcveti«, ljudje med seboj delijo ideje, sodelujejo pri projektih in gradijo - ne le na svojih, temveč tudi na idejah drugih.

Strast (Passion): ko ljudje delajo na projektih, ki so jim blizu in zanimivi, delajo dlje in bolj zavzeto, vztrajajo pri izzivih in se v procesu naučijo več.

Igra (Play): učenje vključuje igrivo eksperimentiranje – poskušanje novih stvari, preizkušanje meja, prevzemanje tveganj itd.

(38)

Poglejmo podrobneje, kako so ti štirje elementi vplivali na razvoj Scratcha.

Projekti

Scratch je bil zasnovan z idejo o projektih. Ko otroci ustvarjajo projekte v Scratchu, se vključijo v »ustvarjalno učno spiralo«: najprej si zamislijo, kaj bodo delali, nato ustvarijo projekt, zasnovan na njihovih idejah,igrajo se s svojim izdelkom, delijo ideje in izdelke z drugimi, razmišljajo o svojih izkušnjah – kar privede do zamisli o novih idejah in novih projektih. Ko gredo učenci znova in znova skozi ta proces, se nau- čijo razvijati lastne ideje, jih preizkušati, eksperimentirati z alternativami, sprejemati prispevke drugih učencev in ustvarjati nove ideje na podlagi svojih izkušenj. V tem procesu se razvijejo kot ustvarjalni misleci.

Vrstniki

Z začetkom Scratcha leta 2007 je bila istočasno ustanovljena tudi spletna skupnost – spletna stran. Že od vsega začetka so ustanovitelji verjeli, da bo interakcija z vrstniki osrednji element v tem učnem procesu.

Spletna skupnost Scratcha ima dve vlogi: zagotavlja občinstvo – ko otroci svoje pro- jekte delijo, dobijo povratne informacije in predloge s strani vrstnikov v skupnosti;

istočasno pa skupnost tudi navdihuje: ko učenci preizkušajo projekte vrstnikov, lahko pri tem dobijo nove ideje za svoje projekte.

Ustanovitelji so bili presenečeni nad tem, v kakšnem obsegu si uporabniki pomagajo med seboj. Pričakovali so, da bodo nekateri učitelji izdelovali navodila (angl. tutorial) v Scratchu, niso pa pričakovali, da bodo navodila izdelovali tudi učenci. Pravzaprav so učenci izdelali na tisoče navodil, kjer drugim pomagajo programirati in risati grafične podobe, pomagajo pa si celo pri tem, kako narediti svoje projekte čim bolj priljubljene na spletni strani. Izdelali so tudi posebne razdelke, kjer lahko uporabniki zaprosijo (ali ponudijo) za pomoč pri projektih.

Strast

Uporabniki so na spletno stran naložili veliko raznolikih projektov. Učenci niso delili le zgodb in iger, ampak tudi interaktivne rojstnodnevne kartice, risane stripe, interak- tivna pisma, virtualne izlete, plesne točke in še veliko drugega.

Raznolikost je pomembna, saj kaže na to, da učenci delajo na projektih, ki jih za- res zanimajo. Ta raznolikost projektov je odraz raznolikosti interesov mladih. Pri Scratchu lahko učenci z različnih področij in z različnimi interesi delajo na projektih, ki jih zares zanimajo. Ko pa ljudje delamo nekaj, kar nas veseli, pogosto delamo bolj

(39)

zavzeto in se tudi več naučimo.

Igra

Ko večina ljudi pomisli na besedo igra, pomisli na zabavo in uživanje. Ustnovitelji Scratcha pa so si to besedo zamislili nekoliko drugače, in sicer kot odnos in pristop za sodelovanje s svetom. Igro povezujejo s tveganjem, poskušanjem novih stvari in preiz- kušanjem meja, vidijo jo kot proces napredovanja, eksperimentiranja in raziskovanja.

Ti vidiki igre so osrednjega pomena za ustvarjalni učni proces.

2.3 Prehod iz vizualnega na tekstovno programiranje

Kaj pravzaprav pomenivizualno in kajtekstovnoprogramsko okolje? Lažje je definirati slednje. Tekstovni programski jeziki so jeziki, pri katerih za pisanje kode uporabljamo tipkovnico in so shranjeni kot tekstovne datoteke (Gardner, 2016).

Grafični oz. vizualni jeziki navadno namesto pisanja teksta uporabljajodrag-and-drop način. Uporabljajo ikone ali besedne oznake na ukaznih blokih. Pogosto se uporabljajo elementi GUI (grafični uporabniški vmesnik) za dialoge ali izbirne menije (Gardner, 2016).

Pribljubljen vizualni programski jezik je npr. Scratch, medtem ko govorimo o teks- tovnih jezikih, mislimo na JavaScript, Python ipd. Ti so »resnični« programski jeziki, ki jih uporabljajo profesionalci za razvoj programske opreme (Gardner, 2016).

Pomembna prednost grafičnih jezikov je ta, da si otrokom ni potrebno zapomniti vrste ukazov in zapletene sintakse, saj vse to dobijo v okolju. Sintaktične napake so težava za otroke in odrasle. Nihče si ne želi ure in ure sedenja za računalnikom le zaradi poza- bljenega podpičja ali oklepaja. Dobra programska okolja nam pomagajo najti napake, še boljša pa poskrbijo, da napak sploh ne moremo narediti (Gardner, 2016).

Scratch otrok ne obremenjuje s sintaktičnimi in drugimi tehničnimi podrobnostmi, zato se otrokom ni potrebno toliko ukvarjati s samim kodiranjem, temveč se lahko po- svetijo bistvu, to je, algoritmičnemu razmišljanju ter iskanju logičnih in postopkovnih, ne pa sintaktičnih napak. Večina otrok ima raje vizualna okolja, saj so bolj zabavna in jih je lažje uporabljati. Tekstovna okolja so videti precej pusta. Kljub temu pa imajo nekateri otroci radi tekstovno programiranje že od mladih nog in pri tem jih moramo

(40)

spodbujati. Veliko jih je zmožnih pisanja html in css kode ter učenja JavaScripta, Pythona in drugih jezikov (Gardner, 2016).

Slika 2.3: Kodi v Scratchu in JavaScriptu

Prav zaradi vizualnega okolja se nekaterim zdi, da Scratch ni »pravi« programski jezik.

Veliko staršev meni, da so njihovi otroci že prestari za učenje Scratcha, drugi domne- vajo, da je Scratch le odskočna deska za nadaljevanje. Tudi nekateri strokovnjaki za informacijsko tehnologijo menijo, da je Scratch igrača in da se otroci z njim le igrajo (Gardner, 2015).

Gardner (2015) se ne strinja s takšnim načinom razmišljanja in meni, da je Scratch vsekakor pravo programiranje, saj zahteva enake veščine kot tekstovni jeziki. Otrok, ki postane strokovnjak za Scratch, bo imel odlično podlago, ko bo enkrat začel upo-

(41)

rabljati »resne« programske jezike. Tam se bodo naučili dodatnih stvari, a temeljne sposobnosti računalniškega razmišljanja otroci pridobijo že v Scratchu.

Scratch ima nizka tla, a visok strop. To pomeni, da je po eni strani enostaven in lahko v njem že šestletni otroci izdelajo preproste projekte, po drugi strani pa omo- goča gradnjo zelo kompleksnih projektov, ki se jih ne bi sramovali niti najbolj sposobni otroci, najstniki ali celo odrasli (Gardner, 2015).

Scratch omogoča uporabo zahtevnejše matematike za simulacijo gravitacije, risanje fraktalov, uvoz podatkov iz datotek in programiranje prototipov. Lahko traja leta in leta, preden pride otrok do te faze, da obvlada že vse in res nima več kaj narediti v Scratchu (Gardner, 2015).

Otroci se s Scratchom srečajo že v 4. razredu osnovne šole in imajo nekaj let časa, da se dodobra spoznajo z njim. Proti koncu osnovne šole pa menimo, da je čas za korak naprej in preskok na tekstovno programiranje. Vprašanje je le, kateri programski jezik naj uporabimo, da bo prehod za otroke čimbolj enostaven, oziroma, v katerem jeziku lahko sestavimo boljšo kombinacijo nalog za učence.

2.3.1 Python ali JavaScript?

Python je objektno usmerjen programski jezik, ki je znan po svoji čisti sintaksi in ber- ljivosti (Atkin, 2016). V primerjavi z ostalimi jeziki lahko kodo za določen problem v Pythonu zapišemo v manj vrsticah in z manj napakami. Prav ta priročnost in enostav- nost uporabe sta razlog, da je Python zelo priljubljen jezik po celem svetu. Odličen je za obdelavo podatkov, poslovno inteligenco in razvoj aplikacij (Suman, 2017).

Python je:

• Enostaven za učenje: Omogoča krajše pisanje kode, zaradi česar je prijeten za učenje (Suman, 2017). Iste naloge rešimo v manj vrsticah kot v ostalih jezikih.

Priročnost in enostavnost uporabe sta naredila Python za priljubljen jezik.

• Preprosta sintaksa: je zelo berljiv in preprosta sintaksa začetnikom omogoča, da se osredotočijo na programske koncepte in izgubljajo manj časa s sintaktičnimi napakami (Atkin, 2016).

• Preprost za delo: Možnost za razvoj in enostavnost, s katero lahko programer katerega koli drugega jezika pridobi znanje Pythona, je ključni razlog, zakaj je takšno povpraševanje po Pythonu (Suman, 2017).

(42)

JavaScript je po drugi strani odličen programski jezik za učenje, saj se uporablja pov- sod. Spletni brskalniki, kot so Chrome, Firefox in Internet Explorer, vsi uporabljajo JavaScript. S pomočjo JavaScripta lahko spletni programerji pretvorijo spletne strani iz preprostih dokumentov v interaktivne aplikacije. JavaScript pa ni omejen le na gra- dnjo spletnih strani, JavaScript se lahko izvaja na spletnih strežnikih za ustvarjanje celih spletnih mest ter za nadzor robotov in druge strojne opreme (Morgan, 2015).

Večina ljudi je pri delu z računalnikom nedvomno že uporabljala JavaScript, saj je to jezik, v katerem so napisani programi, ki poganjajo spletno stran. Poleg tega Java- Script določa, kako se spletna stran odziva na uporabnikov klik gumba ali premikanja miške (Morgan, 2015).

Spletne strani, kot so Gmail, Facebook ali Twitter, uporabljajo JavaScript za pre- prostejše pošiljanje elektronske pošte, pisanje komentarjev ali brskanje po spletu. Ja- vaScript omogoča dodajanje glasbe in vizualnih učinkov, igranja iger in še veliko več (Morgan, 2015).

Nekatere pomembne uporabe JavaScripta so naslednje:

Validacija vnosa: JavaScript se lahko uporabi za potrditev vnosa. Podatke, ki jih vnesemo, je potrebno preveriti.

Učinki, ko »gremo z miško čez«: JavaScript se lahko uporablja za ustvarjanje različnih gumbov in učinkov, ko gremo z miško čez tekst, sliko itd. To naredi brskanje bolj zanimivo in atraktivno.

Pojavna okna: JavaScript se lahko uporabi za ustvarjanje pojavnih oken. Okna se navadno uporabljajo za prikaz pomembnih objav, ponudb in novic.

Interakcija uporabnika: JavaScript se lahko uporablja za interakcijo z uporabni- kom. Vnos uporabnika je mogoče obdelati in ga ustrezno prikazati v sporočilu.

Interaktivne zmožnosti spletne strani naredijo le-to bolj zanimivo in produktivno za uporabnika (Yaga, 2016).

Kateri programski jezik je torej bolj primeren za nadaljevanje Scratcha?

(43)

2.3.2 JavaScript

Python je trenutno najpogosteje poučevan programski jezik v srednjih šolah (Berry, 2017), ampak razenturtle5 in tkinter modula6, ki ju lahko vključimo vanj (Briggs, 2013), ni vizualen. Ravno vizualnost pa nekoliko olajša težki prehod iz grafičnega na tekstovno programiranje.

Čeprav je Python enostaven za pisanje kode (verjetno enostavnejši od JavaScripta), menimo, da je primeren za starejše otroke in ne kot prvi tekstovni jezik, s katerim se otroci srečajo na koncu osnovne šole. V JavaScriptu se lahko, s kombinacijo HTML-ja in CSS-a, naredi veliko različnih nalog, ki omogočajo takojšen vpogled v to, kaj dolo- čen ukaz / koda naredi, kar omogoča lažje razumevanje in zmanjševanje abstrakcije. Spletna stran je vizualen izdelek in JavaScript s svojimi funkcijami stran le še dodatno izpopolni in nadgradi. Na koncu imajo otroci pred sabo svoj izdelek in pri tem vedo, kaj in kako so naredili.

5Zasnovan poželvji grafiki iz Loga.

6Grafični uporabniški vmesnik.

(44)
(45)

Poglavje 3

Priprave in izvedba raziskave

V tem poglavju bomo videli, kako je potekala izvedba raziskave na osnovni šoli. Za vsako uro si bomo pogledali načrt, pripravo (kodo in njen izgled na spletu) ter potek ure. Poleg tega bomo komentirali opažanja, predvsem motivacijo in težave, ki smo jih tekom ure zasledili.

Kratek pregled po urah:

• V prvih dveh urah ponovimo znanje HTML-ja in učencem predstavimo CSS.

• V naslednjih dveh urah se bolj podrobno posvetimo CSS-u in spoznamo nekaj ukazov JavaScripta.

• Peta ura je namenjena spoznavanju spremenljivk in delu z njimi - direktno shra- njevanje vrednosti ter vnašanje vrednosti prek funkcije prompt().

• V šesti uri spoznamo funkcijo Math.random() in stavek if.

• Sedma ura učence seznani z zanko while.

• V osmi uri si pogledamo nekaj funkcij knjižnice jQuery.

Reference

POVEZANI DOKUMENTI

Zaradi šibke povezanosti ni priporočljivo, da se pri analiziranju razvoja računalniškega mišljenja, ki naj bi ga dijaki razvili med izdelovanjem projektov v Scratchu,

Magistrsko delo opisuje in predstavlja sodelovanje učencev z lokalnimi društvi, ki so zelo pomembna za delovanje in predstavljanje naše lokalne skupnosti. V teoretičnem delu

Glede na posamezne odgovore učencev vseh treh šolah, na katerih smo izvedi raziskavo, smo ugotovili, da ni bilo statistično pomembnih razlik v odgovorih učencev o zanimanju za

Glede na izvedene raziskave lahko računalniško mišljenje v Scratchu definiramo s tristopenjskim modelom, ki zajema koncepte, prakso in perspektivo računalniškega mišljenja

Med učitelji razrednega pouka na Tolminskem, ki poučujejo v prvem vzgojno-izobraževalnem obdobju, nismo uspeli dokazati statistično pomembnih razlik v načrtovanju in

Med odgovori učencev različnih šol, razredov in spola ni bilo statistično pomembnih razlik (p > 0,05).. Graf 1: Delež odgovorov učencev na

V okviru podiplomskega študija Specialno rehabilitacijske pedagogike pripravljam magistrsko nalogo na temo ocene sporazumevanja gluhih in naglušnih učencev, v kateri

Ob upoštevanju predpostavke o homogenosti varianc (F = 0,307; α = 0,584) t-test za neodvisne vzorce ni pokazal statistično pomembnih razlik med učitelji z