You are on page 1of 58

Metodika nastave informatike II

SKRIPTA
Rekurzija – osnovni slučajevi
Općenito o rekurziji
U računalnoj znanosti, rekurzija je postupak u kojem rješenje problema ovisi o rješenjima manjih oblika istog
problema. Rekurzija je centralna ideja računalne znanosti uglavnom zbog toga što omogućava opis složenih algoritma
i struktura podataka na jednostavan i elegantan način primjenom samostalnih ideja u programiranju. Jedan dio
rekurzivnog algoritma opisuje aktivnosti koje treba izvršiti u najjednostavnijem slučaju, a drugi dio opisuje rekurzivni
poziv (u kojem, algoritam aktivira sam sebe). U slučaju struktura podataka, jedan dio rekurzivne definicije opisuje
najjednostavniji strukturu, a drugi dio opisuje kako cijela struktura uključuje jednostavniju verziju same sebe.

Jedna od teškoća sa kojom se učenici suočavaju prilikom razumijevanja rekurzije je ponašanje računala kad se
rekurzivno izvršenje završava.

Nastavnici moraju biti svjesni učenikovih spoznaja o rekurziji i poteškoćama sa kojima se učenici susreću prilikom
učenja rekurzije; njihovo pedagoško znanje treba uključiti primjere rekurzije i nastavne strategije za rekurzije, i
konačno, nastavnici računalne znanosti bi trebali proširiti svoje nastavne alate s obzirom na rekurzije.

Opća struktura rekurzivne procedure


Osnovni slučaj i tijelo rekurzije.

Repna rekurzija.
Repna rekurzija je tip rekurzije gdje se rekurzivni poziv nalazi na kraju same funkcije ili procedure. Takav tip rekurzije
može se zamijeniti WHILE petljom iako je rekurzivno rješenje elegantnije.

Zašto je rekurzija teška (Haberman)


Kahney je ustanovio da stručnjaci obično posjeduju „model kopije“ rekurzije dok početnici obično koriste „model
petlje“ ili više različitih modela. Wilcoks, Sanders i Kann su ukazali da animacija koja vizualizira modele kopija može
povećati učenikove sposobnosti vrednovanja rekurzivnih funkcija.

Postoje dva aspekta osnovnih slučajeva:


- Deklarativni - prvi aspekt se temelji na deklarativnom, apstraktnom pristupu koji tretira osnovne slučajeve kao
najmanje oblike problema za koje odmah znamo odgovor. To može biti najmanji entitet ili granična vrijednost.
- Proceduralni - drugi aspekt se temelji na proceduralnom pristupu i odnosi na osnovne slučajeve kao uvjete
zaustavljanja, tj. kraj rastavljanja problema na manje istovjetne probleme.

Da bi student dobio potpun uvid u ulogu osnovnih slučajeva u stvaranju rekurzije, treba usvojiti i deklarativne i
proceduralne pristupe.

Klasifikacija studentskih pogrešaka


U cilju određivanja koji algoritam preferiraju studenti su se vodili po sljedećim kriterijima: točnost, kompleksnost koda
i tip osnovnog slučaja. Studenti su dali najveću važnost točnosti algoritma, sljedeći po redu je bila kompleksnost koda,
a tek na kraju tip osnovnih slučajeva. Napredni studenti uobičajeno opravdavaju svoja preferiranja u izrazima točnosti,
dok početnici gledaju uglavnom na čitljivost I duljinu koda. Studenti loše shvaćaju točnost, uglavnom smatraju sve dok
radi kako treba dobar je , također studenti su smatrali da je algoritam netočan kad bi se bavio nepredvidljivim, ali ipak
osnovnim slučajem.

Navedeni primjeri rješenja zadataka objašnjavaju četiri oblika teškoća u određivanju osnovnih slučajeva:
- Ignoriranje graničnih slučajeva: Studenti su često ignorirali „male oblike“ problema. Nisu uključivali granične
vrijednosti u područje dopuštenih vrijednosti za varijable koje opisuju problem. Isto tako su zanemarivali
navođenje degeneriranih slučajeva struktura podataka (npr. prazna lista, prazno stablo).
- Izbjegavanje korištenja van graničnih vrijednosti: Ponekad je dobro izaći izvan granica kako bi pojednostavnili
kod, a i samu obradu osnovnih slučajeva. Taj postupak je jako kompliciran za studente koji izbjegavaju korištenje
vangraničnih vrijednosti smatrajući ih nedopuštenim.
- Nedostatak osnovnih slučajeva: Ponekad studenti potpuno zanemare osnovne slučajeve i stvaraju netočne
rekurzivne algoritme koji ne sadrže uvjete zaustavljanja
- Preopširni osnovni slučajevi: Javlja se svaki put kad se, osim „najmanjih slučajeva“ problema, identificiraju
dodatni slučajevi kao osnovni. Ovime se samo stvaraju kompleksni algoritmi.

2
Moguća objašnjenja uzroka problema
- Konkretan ili apstraktan pristup rješavanja problema: Studenti koji koriste apstraktan pristup proučavanja
problema se najčešće odnose na rekurzivnu strukturu podataka koji se trebaju podesiti i mogu jednostavno
prepoznati granične i degenerirane slučajeve strukture. No, mogu ignorirati proceduralne aspekte rekurzivnog
procesa i time izbjeći nužne uvjete zaustavljanja. Suprotno tome, studenti koji imaju konkretan pristup
rješavanju problema, korak po korak izvode pretragu rekurzivnog procesa i prema osnovnim slučajevima se
odnose samo kao uvjetima zaustavljanja.
- Pogrešna upotreba metoda rješavanja problema: Studenti mogu pogrešno koristiti pristup rješavanja problema
„odozdo prema gore“. Počinju s proučavanjem problema ispitujući jednostavne slučajeve pa postupno prelaze na
ispitivanje općenitijih slučajeva. Postavljanjem rekurzije, studenti trebaju podijeliti područje problema na
osnovne slučajeve i ostatak na općenite slučajeve. Studenti koji imaju teškoće u razlikovanju ovog obično koriste
preopširne osnovne slučajeve.
- Utjecaj konkretnih koncepcijskih modela: Učitelji često koriste konkretne koncepcijske modele, poput modela
„ruske lutke“, da bi poučavali rekurziju. Iako konkretni koncepcijski modeli mogu pomoći početnicima u učenju
rekurzije, također mogu uzrokovati neke miskoncepcije. Na primjer, ako ruska lutka sadrži najmanju lutku koja se
ne može dalje rastaviti, to onda znači da bi osnovni slučaj uvijek trebao biti najmanji konkretni slučaj problema
umjesto da postoji i prazna lutka (NULL vrijednost).
- Prijelaz s drugih programskih paradigmi: Studenti koji su upoznati s različitim programskim paradigmama mogu
prenijeti načine rješavanja problema s jednog programskog okružja na drugo.

Nastavne preporuke
Naglasak na deklarativna i apstraktna gledišta rekurzije mogu pomoći ukloniti studentske poteškoće u shvaćanju
rekurzije. Preporuča se učiteljima ulaganje dodatnog truda za raspravu raznih gledišta na koncept osnovnog slučaja.
Osnovne slučajeve bi se trebalo shvatiti kao najmanje oblike dopuštenog ulaza problema, umjesto samo kao dodatne
uvjete zaustavljanja. Učitelji bi trebali biti vrlo oprezni u prilagođavanju ili dizajniranju konkretnih modela kao primjera
ruske lutke. Učitelji mogu pomoći ukloniti bug-ove tako da studentima jasno ukažu na probleme koje mogu susresti.
Dijagnostički upitnici mogu biti iskorišteni kao aktivnost razreda, i osnova za razrednu raspravu o klasifikaciji i
korištenju osnovnih slučajeva.

Mentalni modeli rekurzije, apstraktni i konkretni (Wu, Dale – Istraživanje)


Rezultati pokazuju da u podučavanju rekurzije novacima vrijedi sljedeće:
- Konkretni konceptualni modeli su bolji od apstraktnih modela, ali samo neposredno nakon podučavanja, s
vremenom „znanje“ opada
- Novaci s apstraktnim stilovima učenja bolje performiraju od novaka sa konkretnim stilovima učenja odmah
nakon podučavanja i nakon određenog vremena.
- Apstraktni učenici ne beneficiraju nužno od apstraktnih konceptualnih modela
- Konkretni učenici ne beneficiraju nužno od konkretnih konceptualnih modela

Koji model će najviše pomoći programerskim novacima da nauče rekurziju, postavljena su sljedeća pitanja:
- Da li su konkretni konceptualni modeli bolji od apstraktnih u pomaganju učenicima da nauče rekurziju?
- Da li učenici sa apstraktnijim stilom učenja bolje performiraju od učenika sa konkretnim stilom učenja pri učenju rekurzije?
- Da li učenici sa apstraktnim stilom učenja uče rekurziju bolje kada su opskrbljeni apstraktnim koncepcijskim modelima?
- Da li učenici sa konkretnim stilom učenja bolje uče rekurziju kada su opskrbljeni konkretnim koncepcijski modelima?

Učenici Grupa: apstraktni model Grupa: konkretni model Ukupno


Konkretni stil 37 39 76
Apstraktni stil 75 86 161
Ukupno 112 125 237

Koncepcijski modeli
Genther je predložio teoriju strukturalnog mapiranja (SMT) da objasni postupak kojim korisnici stvaraju analogiju od
koncepcijskog modela do ciljanog sustava. Genther je bio uvjeren da različiti modeli vode do predvidive razlike u
razumijevanju ciljne domene. Apstraktni model je sintetsko predstavljanje naglašene koncepcijske strukture sustava.
Kemeny i Kutz su predložili da programiranje treba biti podučeno novacima tako da oni ne budu svjesni kako stroj
funkcionira. Unutrašnji sustavi su sakriveni kroz apstrakt. Sljedeći modele možemo kategorizirati; prva tri kao
konkretni,a zadnji apstraktni: Russian dolls, Proces tracing, Stack simulation, Structural tempates

3
Kognitivni stilovi učenja (Veza sa stilovima ucenja – Kolb)
Postoje 2 glavne dimenzije po kojima ljudi uče: Prva dimenzija je apstrakt-konkretni i druga dimenzija je aktivno-
reflektna. Kolbova teorija predviđa da će učenici sa različitim stilovima učenja različito reagirati na različite metode
učenja, i da strategije podučavanja trebaju bit usklađene stilovima učenja učenika.

Neki učenici mogu shvatit bolje apstraktne koncepte dok drugi trebaju konkretnija pomagala. Pojedinci sa apstraktnim
načinom imaju tendenciju da sami otkrivaju pravila i strukture naslijeđene u apstraktnom modelu. Pojedinci koji
preferiraju konkretni način učenja uzimaju eksperimentalni pristup. Tako da konkretni model djeluje prikladnije.

Učitelji bi trebali biti pažljivi pri adaptiranju ili dizajniranju konkretnih modela. Konkretni model treba ne samo uvesti
analogiju relativno konkretnog objekta, već također i demonstrirati prikladnu razinu detalja unutarnjeg mehanizma.

Methods of Teaching Computer Science (Slučaj rekurzije)


Ovo poglavlje predstavlja dodatnu organizaciju tema za MTCS (Methods of Teaching Computer Science) tečaj oko
koncepta rekurzije. S obzirom da je rekurzija jako teška za shvatiti studentima jer im to nije uobičajeni način
razmišljanja, postoje razne metode pomoću kojih se učenicima pokušava približiti pojam rekurzije.

1.4.1 Metoda kombiniranja


Za početak se preporuča predstaviti studentima određeni problem te analizirati koja su moguća rješenja problema.

Kod metoda kombiniranja dolazimo do rekurzivnih procedura tako da pišemo više specijalnih slučajeva, počevši od
manjih argumenata. Pomoću toga pronađemo način kako koristiti manji zapis za zapisati većeg argumente. Kao
rezultat, sve procedure na kraju izgledaju gotovo pa isto, pa ih možemo kombinirati u jednu proceduru.

Ova metoda je jako dobar uvod u rekurziju jer svaki korak rješenja je jasno objašnjen sa prethodnim korakom. Ipak
ova metoda ima i jedan nedostatak, a to je da iziskuje jako puno napora, od kojih svi uloženi napori ipak ne pomažu ka
konačnom rješenju.

1.4.2 Klasifikacija svakodnevnih objekata i fenomena: slučaj rekurzije


Naglasak je na klasifikaciji objekata i fenomena iz stvarnog života kako bi usmjerili i podržali mentalne konstrukcije
studenata. Poanta je u tome da se radi sa sličnim objektima i fenomenima što omogućuje konkretiziranje koncepata
računalnih znanosti, što uvelike olakšava kada imamo visoki nivo apstrakcije. Ovaj način se uvelike oslanja na
konstruktivistički pristup u kojem studenti konstruiraju svoje znanje tako da aktivno sudjeluju u smislenim zadatcima.

Uvođenje novog pojma se odvija kroz nekoliko faza:


- Faza 1: učenicima damo objekte i fenomene iz svakodnevnog života za klasifikaciju. Učenike se podijeli u grupe i
zatražimo od njih da klasificiraju pojedine instance po različitim kriterijima o kojima oni sami odlučuju. Također
možemo tražiti proširenje klasifikacijskog seta tako da se doda nova instanca u svaki set. Svaki set treba imati
ime. Pri odabiru kriteriji bi se trebali usredotočiti na sadržaj ili samu suštinu predmeta.
- Faza 2: Učenici iznose svoje radove te se pokreće rasprava u kojoj svi sudjeluju. Često se dogodi da se tijekom
rasprave upoznajemo sa različitim idejama i stavovima i novim konceptima koje nude druge grupe, a zatim da
preispitamo vlastite perspektive.
- Faza 3: Za zadaću učenici trebaju uzeti neki drugi koncept računalne znanosti i izraditi klasifikacijsku aktivnost
- Faza 4: Učenici predstavljaju svoje zadaće

Za slučaj rekurzije možemo dati hrpu slika na kojima su rezultati rekurzivnih procedura, crteža i sl. te tražiti učenike da
pojedine slučajeve kategoriziraju.

1.4.3 Leap of faith (metoda porasta vjere)


Nakon što su učenici upoznati s konceptom rekurzije, npr. radeći na razredbenom klasifikacijskom zadatku, učenici se
mogu baviti aspektom programiranja rekurzije. Ovaj prijelaz na programiranje bi trebalo uvesti pažljivo jer je poznato
da razumijevanje rekurzije postavlja spoznajne izazove za učenike početnike računalne znanosti (George, 2000.)

Postoje najmanje tri čimbenika koji pridonose tim poteškoćama: (1) Velika razlika između rekurzivnih (jednostavnih)
algoritma i rekurzivnih (kompleksnih) procesa izvršavanja. Da bi se razumjela rekurzija, mora se razlikovati program (ili
metoda) popisa i njegov rekurzivni postupak (algoritam izvršenja), (2) učenikovi pogrešni mentalni modeli o izvršenju
rekurzivnih procesa, (3) Pedagogija o podučavanju rekurzije, učenikove poteškoće učenja rekurzije.

4
Prema Leron (1988), u prvim fazama poučavanja rekurzije, poželjno je koncentrirati se na odnose između algoritma i
njegovih produkta ili izlaza (rezultat izvršenja algoritma), a ne o odnosima između algoritma i procesima koje poziva.
Ovaj pedagoški prijedlog temelji se na tome da učenici trebaju razumjeti prvo kako se rekurzivni fenomen može opisati
rekurzivno, pa tek onda se nositi sa složenim izvršenjem rekurzivnog procesa. Harvey (1997) i Harvey & Wright (1999)
nazivaju ovaj pristup poučavanja "Leap of faith".

U principu, "Leap of faith" pristup odnosi se na nečije vjerovanje u postojanje fenomena koji se ne može dodirnuti i za
koje ne postoji dokaza. U našem slučaju, metoda "Leap of faith" je povezana s pretpostavkom da algoritam jednom
napisan i radi. To implicira da je "Leap of faith" metoda koja služi kao vodič učenicima kako napisati rekurzivni opis čak
i ako u potpunosti ne razumiju (još uvijek) zašto i kako to "čarobno" radi. Preporuča se početi implementirati ovaj
pristup s obzirom na rekurzivne oblike (npr. fraktali ili dstabla) ili druge rekurzivne pojave, a zatim, kada učenici mogu
napisati rekurzivni opise za te instance, oni mogu koristiti ovaj pristup i za pisanje rekurzivnih funkcija (opet, prije
njihovog potpunog razumijevanja procesa

1.4.4 Modeli rekurzivnog procesa (mentalni modeli)


U ovom dijelu ćemo se fokusirati na modele rekurzivnog procesa. Pretpostavljamo da su do ove faze učenici stekli neko
iskustvo vezano za formulaciju rekurzivnih opisa i zbog toga, oni mogu nastaviti učenje rekurzivnog procesa (koji se
odnosi na izvršenje algoritma). Zbog nerazmjernosti između relativno jednostavnog rekurzivnog algoritma i složenog
izvršenja rekurzivnog procesa, rekurzivni proces se smatra jednim od najtežih problema za razumijevanje vezano za
rekurzije.

Ponekad, čak i izvedive modele, poput primjeraka mentalnog modela, ne pomažu učenicima da izvrše ispravno
rekurzivne algoritme. Stoga su potrebni prikladni trasirani (skicirani) modeli kako bi učenici shvatili bit rekurzivnog
procesa.

Teže je objasniti povratni proces u rekurzivnim funkcijama (kao što je faktorijel). Jedna od teškoća sa kojom se učenici
suočavaju prilikom razumijevanja rekurzije je ponašanje računala kad se rekurzivno izvršenje završava, stoga se
preporučuje početi sa potpunom rekurzijom (ne repnom rekurzijom) jer je njen tok lakše razumjeti. Za primjere koristiti
kratke zadatke radi lakšeg pamćenja stanja i razina rekurzije.

The Little People Model


The Little People model je moćan model koji pomaže učenicima uistinu vidjeti izvršenje rekurzivnog procesa. Ovaj
model ne samo da pruža alat koji simulira rekurzivni proces, nego se također temelji na aktivnom sudjelovanju učenika
u stvaranju rekurzivnog procesa, te im na svakom koraku omogućuje predvidjeti sljedeći korak.

Model pretpostavlja da velika zajednica malih ljudi postoji unutar računala, gdje je (a) svaka osoba stručna u obavljanju
određene metode / programa, i (b) više od jednog malog čovjeka može imati istu stručnost.

Kada se metoda poziva, jedan mali čovjek, koji je stručnjak za njegovo izvršenje, ide izvršiti metodu noseći prsluk s
džepovima; broj džepova jednak je broju ulaza programa / metode za koje je mala osoba stručnjak u njihovoj provedbi.
Osim toga, svaki džep ima oznaku imena koja predstavlja naziv parametra, označenu s unutarnje strane.

Ukratko: učitelj prozove jednog učenika da započme proces rješavanja neke zagonetke (rekurzivne), taj isti učenik
provjerava što mu je u džepu te izvršava sve potrebne akcije koje on zna. Zatim taj isti učenik poziva drugog učenika
za razrješenje sljedećeg dijela zagonetke te mu u džep pospremi parametar koji je „bliži“ osnovnom slučaju. Ako učenici
zapisuju nešto na ploču bitno je da jednu kredu dijele prema pozivima rekurzije. Taj drugi učenik opet radi isto što i
prvi ali za svoj slučaj prema parametru iz džepa. Nakon što dođemo do osnovnog slučaja kreda se vraća prema prvoj
osobi te svaki učenik odrađiva one akcije koje nije odradio zbog zauzetosti krede.

Tijekom rasprave studenti se potiču na razmišljanje o procesu koji su upravo vidjeli, navodeći njegove prednosti i
nedostatke. Na primjer, budući da se model temelji na metafori, koje se koriste kako bi se razumjeli i doživjeli određene
specifične stvar koristeći analogiju ili pak neki sličan koncept, to je još jedna prilika za razgovor o metaforama kao
pedagoškom sredstvu. Ako vrijeme dopušta, preporuča se studentima zadati "obrnuti" zadatak, to jest, učenicima dati
tekstualni opis druge rekurzivne metode igre uloga malih ljudi i tražiti ih da rekonstruiraju originalnu metodu u Javi.

5
"Top-down Frames" model
Metafora „The Little People“ je odličan pedagoški alat za objašnjenje izvršenja rekurzivnih metoda; pojedini učenici,
međutim, ne mogu sami popratiti sve u svojoj bilježnici. Sljedeći model nadilazi ovo ograničenje od little people modela
omogućujući svakom učeniku vlastito praćenje rekurzivnog procesa. Ovaj model vodi učenike da na svakoj razini
rekurzije pišu sve upute koje bi trebale biti izvršene (jedna za drugom), gdje je za svaki rekurzivni poziv otvoren novi
okvir, dok su svi okviri ne ugrade u početnoj metodi pozivanja.

Važno je napomenuti da za razliku od little people modela, top-down frames model ne naglašava sve probleme
rekurzivnog procesa (proces povratka, na primjer, nije snažno pokazan ovdje), međutim, korisno je koristiti ovaj model
kao sredstvo praćenja u učeničkim bilježnicama. Također, važno je opskrbiti učenike s različitim modelima kako bi
podržali njihovo učenje o rekurzivnom procesu.

1.4.5 Istraživanje o učenju i poučavanju rekurzije


Naime, budući da rekurzija igra središnju ulogu u gotovo svim uvodnim tečajevima računalne znanosti, nastavnici
moraju biti upoznati s istraživanjem ovog obrazovnog područja ako žele postati članovi obrazovne zajednice računalne
znanosti; oni moraju biti svjesni učenikovih spoznaja o rekurziji i poteškoćama sa kojima se učenici susreću prilikom
učenja rekurzije; njihovo pedagoško znanje treba uključiti primjere rekurzije i nastavne strategije za rekurzije, i
konačno, nastavnici računalne znanosti bi trebali proširiti svoje nastavne alate s obzirom na rekurzije.

Istraživanje „What do novice programmers know about recursion?“ odnosi se na eksperiment koji je dizajniran tako
da bi se utvrdilo točno što početnici programeri razumiju o ponašanju rekurzije. Rezultati pokazuju da različiti početnici
razumiju ili krivo shvaćaju različite stvari. Istraživanje se vršilo među studentima koji su radili u Solo programu. Studenti
su upoznati sa konceptom rekurzije, te im se dalo mnogo primjera programa sa detaljnim opisom svakog koraka
izvršavanja programa. Međutim, analizom više od 100 rekurzivnih procedura koje su napisali studenti otkrilo se da
većina ima znatnih poteškoća ili pak smatraju da je nemoguće dizajnirati program koji radi. Podaci koji su prikupljeni
prilikom istraživanja pokazuju da barem dio početnika nakon tečaja o SOLO programiranju mogu identificirati i
mentalno simulirati ponašanje rekurzivnih procedura. Važno zapažanje je također da različiti početnici, koji koriste
različite modele rekurzije, mogu napisati identično programsko rješenje za dani problem.

Dodatne aktivnosti za poučavanje rekurzija:


Povijest rekurzivne funkcije, Usporedba rekurzivnih algoritama u različitim paradigmama, Rekurzivni oblici, Animacija
rekurzije, Formiranje pitanja o rekurziji, Planiranje nastave rekurzije (studenti pripremaju lekcije), debuggiranje
programa uz pomoć boja i zvukova (svaka razina rekurzije ima svoju boju ili ton)…

Stablo izvršenja - kada ne koristiti rekurziju.


Kada imamo dupliciranje slučajeva, npr. kod Fivonaccievih brojeva spuštanjem na niže razine na stablu izvršenja imamo
više istih slučajeva (na slici označeno crvenom bojom). Kada računamo broj s puno veće pozicije stablo će se granati u
toj mjeri da će biti previše istih slučajeva koje na neki
način nepotrebno rješavamo. Isto tako rekurzivna
funkcija u nekim slučajevima može biti jako nepraktična
(kao Fibonacci) jer za traženje broja s veće pozicije
možemo čekati godinama dok s običnom WHILE petljom
par sekundi.

6
Simulacija stoga, pracenje izvršavanja rekurzije.

Preko ove slike i stoga možemo lako pratiti izvršavanje rekurzije

H - stablo.
Slično kao i kod binarnog stabla, „grananje“ tj. crtanje novih H oblika vršimo na svakoj grani na koju trenutno nacrtamo.
Ideja bi bila podijeliti slovo H u četiri dijela tj. četiri grane. Prvo crtamo jednu granu, zatim opet istu granu ali na drugoj
dubini (manjem slovu H) i tako crtamo jednu granu sve do osnovnog slučaja (kaka je dubina = 0). Zatim rekurzivnim
korakom unatrag nastavljamo prethodno pozvanu proceduru gdje ćemo se vratiti u centar trenutnog (najmanjeg) slova
H te crtati sljedeću (2.) granu i tako ponovniti postupak 4. puta (za sve grane).

Primjer: GCD - najveci zajednicki nazivnik, Eulerov algoritam - rekurzivno rješenje i pomocu while petlje.

Hanojski tornjevi - simulacija.


Jednom procedurom možemo riješiti problem hanojskih tornjeva za bilo koji broj diskova jer je proces rješavanja
rekurzivan. Npr. da bi znali prebaciti 4 diska trebamo znati prebaciti 3 diska, a za 3 diska trebamo znati kako prebaciti
2 diska. Diskovi se prebacuju na isti način neovisno o njihovom broju.

Primjene rekurzije: rekurzivne procedure, gramatika, programerski koncept, strukure podataka, dokazi. McCarthy
91 funkcija.

Apstraktni: matematicka indukcija, strukturni obrasci.


7
Vizualizacije
Algoritmi i strukture podataka su osnovni građeni blokovi računalnih procesa i tehnika. Oni su centralni ne samo za
programiranje već za polje računalnih znanosti općenito. Algoritam utjelovljuje skup operacija koje se izvode da bi se
postigli neki ciljevi ili izveo neki zadatak. Strukture podataka su logičke apstrakcije koje omogućavaju programerima
da modeliraju kolekcije podataka za prikladniju manipulaciju u algoritmima.

Studenti računalnih znanosti obično smatraju da su analiza i dizajn algoritama težak predmet. Jedan od razloga za ovo
može biti da algoritam opisuje proces koji je i apstraktan i dinamičan dok metode korištene za njegovo podučavanje
nisu. Upotreba slika i vizualizacija kao pomoći u učenju je prihvaćena praksa; udžbenici su prepuni slika i predavači
često koriste dijagrame na pločama da im pomognu u objašnjavanju gradiva. Primjerice, nizovi se opisuju kao redovi
kutija a stabla se prikazuju kao čvorovi povezani strelicama.

Animacije idu jedan korak dalje. Dok statične vizualizacije mogu pokazati ljudima kako nešto izgleda, kako je
predstavljeno ili građeno, animacija, barem se tako čini, može bolje opisati procese koji se mijenjaju, dinamične
procese; animacije mogu pomoći učenicima u konstruiranju mentalnih modela raznih procesa. Vizualizacije se
primjenjuju i na mnogim drugim područjima, a ne samo za vizualizaciju algoritama. Česta je primjena vizualizacija u
prikazivanju procesa unutar sustava za upravljanje bazama podataka, zatim kao pomoć studentima pri savladavanju
memorijskih koncepata kao što su cache sheme za mapiranje i virtualna memorija te u nekim područjima koja nisu
povezana sa računalnim znanostima kao što su medicina i biologija.

Mnoge studije sugeriraju da mentalni modeli pomažu učenicima da točnije predvide ponašanja raznih procesa i
sustava. Općenito, animacije pomažu gledateljima da prate uzorke i promatraju veze. No ipak, mnogo je više
istraživanja napravljeno o algoritamskim animacijama kao tehnološkim sustavima nego o njihovim pedagoškim
učincima. Dva su razloga zašto pobornici animacija smatraju da su one tehnološki vrijedne. Prvi je da algoritamske
animacije konkretiziraju apstraktne procese. A drugi razlog leži u činjenici da su računalni algoritmi dinamični procesi,
procesi koji se mijenjaju, i da statične slike ne mogu prenijeti ovu promjenu kao što to mogu animirane slike.

No unatoč intuitivno neodoljivoj poslovici „slika vrijedi tisuću riječi“ pokušaji da se koriste animacije da bi se algoritmi
približili studentima su tijekom proteklih desetljeća doveli do razočaravajućih rezultata. Dok studenti uglavnom s
entuzijazmom prihvaćaju animacije, nažalost, nisu se našli uvjerljivi dokazi da animacije zapravo poboljšavaju učenje.

Hundhausen, Douglas i Stasko su napravili opsežno istraživanje literature koja se bavi animacijama algoritama i
njihovim ocjenama. Nisu pronašli statistički značajne razlike između grupa koje su koristile vizualizacije i koje nisu.

Taksonomija softverske vizualizacije


2.1.1 Klasifikacija vizualizacija
Vizualizirati je jednostavno dati vizualni aspekt entitetu koje to svojstvo nema. Općenito, može se reći da nam
vizualizacija omogućava da učinimo očitim značenje nekog apstraktnog entiteta, tj. da apstraktno konkretiziramo.

Softverska vizualizacija (SV) je disciplina stara kao i računalna znanost. Međutim, pojavila se kao nezavisno polje u
području računalnih znanosti sredinom 80-ih. U to vrijeme SV sustavi su uglavnom dizajnirani da vizualiziraju
dinamično ponašanje algoritama. Prva knjiga posvećena softverskoj vizualizaciji je objavljena 1998. godine: Software
Visualization: Programming as Multimedia Experience, autora J. Staskoa.

Računalna znanost je oduvijek koristila vizualne prezentacijske tehnike za različite ciljeve. No tek je napredak u
računalnoj grafici omogućio pojavu „vizualizacije“ kao nezavisnog područja u računalnoj znanosti iako još ne postoji
općeprihvaćeno ime za ovu disciplinu. Često su korišteni nazivi kao algoritamska animacija i programska vizualizacija,
no trenutno je softverska vizualizacija najčešći nazivnik. Stasko SV definira kao: „… upotreba zanata tipografije,
grafičkog dizajna, animacije i kinematografije sa modernom čovjek-računalo interakcijom i tehnologijom računalne
grafike da bi se olakšalo i čovjekovo razumijevanje i učinkovita upotreba računalnog softvera“.

Ari Korhonen dijeli SV na algoritamsku vizualizaciju i programsku vizualizaciju. Razlika između algoritamskih i
programskih animacija jest da se prva odnosi na dinamične vizualizacije algoritama koji se implementiraju kasnije (kao
neko testiranje), a druga se odnosi na dinamične vizualizacije koje se koriste da poboljšaju ljudsko razumijevanje
trenutno implementiranih programa.

8
2.1.2 Teorijska podloga vizualizacije
Ben-Ari navodi da jedno od mogućih teorijskih objašnjenja zašto vizualizacija može poboljšati učenje jest da
vizualizacija može pomoći u stvaranju mentalnih modela apstraktnih fenomena. Mentalni model je kognitivna
struktura koju osoba koristi da bi si predstavila znanje o stvarnom svijetu ili fenomenu. Mentalni modeli se često koriste
u konstruktivizmu, teoriji učenja koja smatra da učenici sami konstruiraju značenja za sebe.

Ako pretpostavimo da ljudska spoznaja nije u potpunosti verbalna već i vizualna, onda bi vizualna iskustva trebala biti
učinkovita u poticanju učenja. Nadalje, kako mnogi fenomeni nisu samo vizualni već i dinamički, animacije bi također
trebale biti učinkovita pomoć učenju.

Da bi sustav bio unčikovit učitelj mora poznavati mentalne modele učenika te mentalne modele koji će biti produkt
podučavanja. Prema tome učitelj treba objasniti kako će vizualizacija biti korištena. Ovo je teško proizvesti jer mentalni
modeli učenika nisu jednaki, a ciljevi učenja nisu predstavljeni kao željeni mentalni modeli nego u terminima
„pokrivanja materijala“.

Uloga algoritamske vizualizacije u kontekstu bloomove taksonomije


Uloga koju AV može imati u pomaganju studentima da dosegnu prve dvije razine Bloomove taksonomije jest da osigura
„neograničenu“ količinu podataka nad kojima mogu gledati izvršenje algoritma. AV će biti učinkovita ako se omogući
premotavanje animacija ukoliko se student „izgubi“. Za razine analiza i sinteza uloga AV sustava može biti da se
vizualizacija pojavi kao dio okruženja za programiranje. Student može napisati kod za implementaciju kompleksnog
algoritma i odmah vidjeti učinke izvršavanja tog koda. Vizualizacija sama možda neće biti od pomoći na razini evaluacije
osim ako nije popraćena sa hipertekstom koji objašnjava značenje događaja u promatranom algoritmu.

Prema taksonomiji učenici trebaju:

Znanje:
- prepoznati i definirati specifične koncepte u algoritmima.
Razumijevanje:
- učenici trebaju razumijeti opće principe (i ulogu) algoritama i objasniti kako radi
- prepoznati bitna svojstva određenih koncepata
- implementirati algoritam koristeći neki programski jezik i testirati
- razumjeti ponašanje algoritma u najboljem i najgorem slučaju (npr. različiti sortovi na sortiranom nizu ili slučajno
„razbacanim“ elementima
Primjena:
- Prilagoditi prije naučene algoritme za neke specifičnije primjene, okruženja ili prezentacije podataka
- Konstruirati najbolji slučaj i najgori slučaj analizu osnovnih algoritama
Analiza:
- Razumjeti vezu algoritma sa drugim algoritmima koji rješavaju isti ili sličan problem
- Razumjeti invarijante u algoritamskom kodu
- Moći objasniti, raspravljati i/ili dokazati točnost algoritma
- Moći analizirati komplicirani problem, identificirati bitne objekte i razdijeliti problem na manje probleme
Sinteza:
- Dizajnirati rješenja kompleksnih problema sa nekoliko struktura podataka, algoritama i tehnika
- Analizirati učinkovitost kompleksnih kombiniranih struktura
- Definirati kriterij za usporedbu različitih rješenja
Evaluacija

- Raspraviti za i protiv razloge različitih algoritama koji rješavaju iste ili slične probleme
- Iznijeti procjenu dizajna ili analize
- Raspravljati kako i zašto neki algoritmi trebaju biti modificirani ili kombinirani s drugima za rješavanje
kompleksnijih problema

Ostali faktori koji se mogu mjeriti


Osim učenikovog razumijevanja korištenjem razina Bloomove taksonomije možemo mjeriti i: učenikov napredak,
stopu odustajanja od studija, vrijeme učenja i zadovoljstvo učenika.

9
Pregled empirijskih studija AV
Studije su organizirane u pet različitih empirijskih metoda koje su istraživači koristili da ispitaju učinkovitost AV-a.

Kontrolirani eksperimenti: Iako postoje mnoge varijante kontroliranih eksperimenata svi objavljeni eksperimenti o
algoritamskim vizualizacijama su bili eksperimentalne usporedbe između ispitanika. U takvim usporedbama ispitanici
se prvo provjeravaju da bi se osiguralo da imaju slične pozadine, iskustvo i sposobnosti. Sljedeće, sudionici
eksperimenta se slučajnim odabirom dodjeljuju u jednu od dvije grupe, od kojih je svaka izložena različitoj kombinaciji
faktora za koju istraživači smatraju da ima značajne učinke. Treće, mjeri se izvedba ispitanika.

Opservacijske studije (Douglas, Hundhausen i McKeown vizualizacija algoritama uz pomoć škara, papira i olovki):
Ispituju interesantnu aktivnost na kvalitativan način sa puno objašnjenja. Mogu istraživati fenomen o kojem se malo
zna, sa ciljem generiranja istraživačkih pitanja i formuliranja hipoteza koje mogu biti vodič za dizajn kontroliranih
eksperimenata. Ili mogu biti korištene da se bave onim istraživačkim pitanjima za koja rigorozni eksperimenti nisu
prikladni – primjerice, pitanja kako se proces odvija, ili pitanja vezana za prirodu socijalne interakcije, koja je
tradicionalno teško operacionalizirati.

Pitanja kojima se bave opservacijske studije uključuju: Kako ljudi konceptualiziraju algoritme? Koliko često se koristi
algoritamska vizualizacija i koje uloge ima u raznim zadacima? Kako se mogu iskoristiti empirijski podaci da se poboljša
dizajn tehnologije za algoritamsku vizualizaciju? Kako se može procijeniti razumijevanje algoritama?

Upitnici i istraživanja (Naps): Upitnici i istraživanja su često korišteni kao dodatni izvor podataka u empirijskim
studijama. Pružaju pisane odgovore na skupove pitanja za koje je istraživač zainteresiran. Najčešće, upitnici i
istraživanja traže subjektivne podatke o preferencama ispitanika, njihovim mišljenjima i savjetima. Kontrolirani
eksperimenti i opservacijske studije koriste upitnike i istraživanja da bi dobile komplementarne podatke. Takvi podaci
se koriste na dva načina: za kontrolu iskustva i sposobnosti ispitanika, kao podatci koji se uključuju u rezultate
ispitivanja. Neke studije smatraju odgovore na upitnicima kao svoje primarne podatke, no to je mnogo rjeđi slučaj.

Tehnike s etnografskog područja uključuju bilo koju od kvalitativnih tehnika koje istraživač može koristiti da bi
napravio studiju nekog područja. Jedna od najeminentnijih tehnika, promatranje sudionika, je posvećena ideji da je
najbolji način da se dobije uvid u područje interesa sudjelovanjem u njemu kao prihvaćeni član. Druge tehnike uključuju
intervjuiranje, vođenje dnevnika i zabilješki.

Studije korisnosti (ovo smo radili na HCI): Posebna vrsta opservacijske studije koja ima za cilj identificirati i
dijagnosticirati probleme sa korisničkim sučeljem interaktivnog sustava. U testu korisnosti, istraživači zadaju manjem
broju sudionika, koji mogu raditi u paru, set zadataka koje moraju izvesti koristeći sustav koji se ispituje. Zadaci su
odabrani tako da uključuju sudionike u one scenarije za koje istraživači vjeruju da bi ih sustav trebao moći odraditi.
Svaka interakcija između sudionika i sustava se snima i istraživači vode detaljne zabilješke koje se kasnije analiziraju
kako bi se otkrili slomovi pri korištenju radi poboljšanja sustava.

Okvir za eksperimentalna istraživanja


Razine uključenosti studeneta – Takosnomija uključenosti (engl. Engagement Taxonomy)
- Bez gledanja. Budući da je moguće naučiti algoritam bez vizualizacije, kategorija Bez gledanja znači da nije
korištena vizualizacijska tehnologija.
- Gledanje. Gledanje je najpasivnijja od formi uključenosti. Sve ostale forme uključuju neku vrstu gledanja.
- Odgovaranje. Ključna aktivnost u ovoj kategoriji je odgovaranje na pitanja vezanih za vizualizaciju. U ovoj formi
učenik koristi vizualizaciju kao izvor za odgovaranje na pitanja. Kao takvo, uključivanje sadrži samo ograničenu
interakciju sa vizualizacijom. Međutim, odgovaranje na pitanja može uključivati aktivnosti koje na kraju
zahtijevaju još gledanja.
- Mijenjanje. Ova forma uključuje modificiranje vizualizacije. Najuobičajeniji primjer je omogućavanje učeniku da
mijenja ulazne podatke algoritma da bi istražio njegovo ponašanje u različitim slučajevima.
- Konstruiranje. U ovom slučaju učenici konstruiraju vlastite vizualizacije algoritama. Forma Konstruiranje ne
uključuje nužno kodiranje algoritma, iako su se kodiranje algoritma i njegova vizualizacija pokazali kao vrlo
uspješan način učenja.
- Predstavljanje. Ova forma uključuje prezentiranje vizualizacije publici radi povratnih informacija i rasprave.
Predstavljena vizualizacija ne mora biti napravljena od strane učenika.

Što je razina uključenosti viša i što je više razina aktivno to če učenje biti bolje.

10
Opći okvir
Opći okvir je napravljen kao sredstvo poticanja konzistentnosti za sve eksperimente. Ove smjernice pretpostavljaju da
je istraživač odabrao hipotezu za testiranje, algoritam kao središnju točku i vizualizacijski alat koji će poduprijeti formu
uključenosti.

Ispitanici. Ispitanici najčešće mogu biti uzeti iz jednog kolegija. Grupe dobrovoljaca su manje poželjne budući da uvode
faktor samo-selekcije. Ispitanici iz kolegija mogu vidjeti sudjelovanje u studiji kao način dobivanja dodatnih bodova.

Materijali i zadaci. Istraživač mora napraviti listu ciljeva učenja prema Bloomovoj taksonomiji i pripremiti obrazovne
materijale koji će biti korišteni u zadacima. Ovo uključuje pred-test i post-test, laboratorijske materijale koji uključuju
vizualizaciju, mogući plan za predavanje u učionici, prezentacije i rasprave.

Procedura. Svrha procedure je organiziranje eksperimenta (redosilijed svega sto je potrebno ucinit da bi se
eksperiment izvrsio). Najbolja metoda za dobivanje pouzdanih rezultata je podjela ispitanika u dvije ili više slučajnih
skupina u kojima je distribucija ispitanika slična, prema odabranim kovarijantnim faktorima.

Mjerni instrumenti. Pred-test i post-test: moraju biti izomorfni. Ovo se najlakše osigurava korištenjem istih pitanja u
različitom poretku i/ili sa različitim, ali usporedivim podacima. Elementi vezani za zadatak su: vrijeme potrošeno na
rad sa zadatkom, napredak učenika (bodovi i analiza elemenata pred-testa i post-testa), stopa odustajanja. Može se
koristiti upitnik da bi se dobile povratne informacije od učenika o učinkovitosti vizualizacije i njihovom stavu o temi.

Istraživanje AV i uključenost studenata (Naps)


Rad T. Lauera opisuje eksperiment o radu triju grupa: gledanje, mijenjanje i konstruiranje te izvještava kako rezultati
post-testa sugeriraju da nema značajnih razlika između te tri grupe dok rad Grissoma, McNallyja i Napsa izvještava da
rezultati pokazuju da se povećanjem razine uključenosti povećava učinkovitost učenja studenta. AV ima veći utjecaj
kada studenti idu iza granica jednostavnog gledanja vizualizacije i kada se od njih traži da se uključe u dodatne
aktivnosti strukturirane oko vizualizacije. Studenti koji su odgovarali na pitanja integrirana u AV alat su pokazali najveći
napredak između pred-testa i post-testa. Također značajan je zaključak da vizualizacije pomažu onim tipovima
razumijevanja koje ne zahtijevaju duboko i reflektivno razumijevanje. Dakle, instruktor ih može koristiti kao način da
osigura da studenti nauče osnove tako da na njih ne mora trošiti vrijeme i može prijeći na kompliciranije stvari.

Meta-analiza učinkovitosti algoritamskih vizualizacija


Metastudija – razmatra više standardnih (empirijskih studija). Gleda se isto iz više perspektiva.

U meta-analizi Hundhausen, Douglas i Stasko-a iz 2001. godine možemo naći podatak da od 24 istražena eksperimenta
12 ih je uključivalo studente u dodatne aktivnosti i 10 od tih 12 eksperimenata je pokazalo statistički značajno
poboljšanje u učenju studenata. Najinteresantnije opažanje koje iznosi taj rad jest da odlučujući faktor učinkovitog
korištenja vizualizacije nije toliko u karakteristikama alata za algoritamsku vizualizaciju koliko u načinu i stupnju
uključenja učenika u aktivnosti koje nisu samo gledanje vizualizacije.

Dvije glavne prepreke širokoj upotrebi tehnologija za vizualizaciju:


- iz učeničke perspektive, vizualizacijska tehnologija možda nije obrazovno učinkovita
- iz perspektive predavača, vizualizacijska tehnologija jednostavno zahtijeva previše truda da bi bila isplativa.

Istraživanja pokazuju da se vizualizacijska tehnologija uspješno koristi u aktivnostima koje aktiviraju učenika kao npr:
konstruiranje vlastitih skupova podataka, predviđanja budućih stanja, programiranje ciljanog algoritma, odgovaranje
strateških pitanja o vizualizaciji, konstruiranje vlastitih vizualizacija…

Općeprihvaćene sugestije izvučene iz iskustva kako animacija treba izgledati:


1. Osigurati sredstva koja će pomoći učeniku da interpretira grafičke prezentacije (tekst i naracija)
2. Prilagoditi se razini znanja korisnika (poznate metafore i pokušati ne zatrpati detaljima korisnike početnike).
3. Osigurati višestruke poglede.
4. Uključiti informacije o izvedbi.
5. Uključiti povijest izvršavanja (osigurati mogućnost povratka na korak koji se nije razumio).
6. Omogućiti fleksibilnu kontrolu izvršavanja (izvršavanje unaprijed i unatrag).
7. Omogućiti vizualizacije koje gradi sam učenik.
8. Omogućiti unošenje vlastitih skupova podataka.
9. Omogućiti dinamična pitanja (npr. na kritična mjesta postaviti pitanja da se potakne učenika na razmišljanje).
10. Omogućiti dinamične povratne informacije o aktivnostima korisnika.
11. Nadopuniti vizualizaciju sa objašnjenjima.

11
Također prevladava mišljenje da se prezentacija grafike i teksta moraju pojavljivati zajedno i tekst mora biti korišten
da opiše grafiku. Naps to naziva algoritam-osjetljiva i dinamična povezanost teksta i grafike.

Teorija multimedijalnog učenja-principi (pedagoške smjernice za dizajniranje sustava za AV)


R. Mayer i R. Moreno smjernice za dizajn uspješne AV promatraju s obrazovnog stajališta (upotreba obrazovnih
tehnologija treba uzeti u obzir kako studenti uče). Smatraju kako postoji sustav za procesuiranje vizualnih (animacije)
i verbalnih (naracija) informacija

U multimedijalnom učenju učenik se uključuje u tri kognitivna procesa.


- Odabir – primjenjuje se na dolazeće verbalne i vizualne informacije kako bi se načinila tekstualna baza i baza slika.
- Organizacija – primjenjuje se na baze slika i riječi u svrhu stvaranja odgovarajućeg modela sustava koji se treba objasniti.
- Integracija – događa se kad učenik stvara veze između odgovarajućih dijelova između verbalnog i vizualnog modela

Ovi modeli su generirali serije eksperimenata koji su iznjedrili pet glavnih principa kako koristiti multimediju da
pomogne učenicima da bolje razumiju znanstvena objašnjenja.

1. Princip višestrukih prezentacija: Bolje je predstaviti objašnjenje riječima i slikom nego samo riječima.
2. Princip neprekidnosti: Kada se daje multimedijalno objašnjenje bolje je predstaviti odgovarajuće slike i riječi
zajedno nego odvojeno (ne trebamo pamtiti npr. tekst pa onda ići gledati sliku).
3. Princip podijeljene pažnje: Kada se daje multimedijalno objašnjenje bolje je predstaviti riječi kao auditornu
naraciju nego vizualni tekst na ekranu (nećemo pretrpati sustav za procesuiranje vizalnih informacija).
4. Princip individualnih razlika: Studenti sa visokim prostornim sposobnostima mogu dulje zadržati vizualne slike u
radnoj memoriji i zato više profitiraju iz spojenih prezentacija riječi i slika.
5. Princip koherentnosti: Kada se daje multimedijalno objašnjenje bolje je koristiti manje stranih riječi i slika.
Studenti bolje uče iz koherentnog sažetka koji naglašava važne riječi i slike nego iz dužih verzija sažetaka.

Četiri teorije učinkovitosti


Pismena Vjerodostojnost. Ljudi u svojim glavama nose simboličke modele fizičkog svijeta i da su takvi simbolički modeli
temelji njihovog rezoniranja i akcija. Glavna teza teorije Pismene Vjerodostojnosti je da grafika posjeduje izvrsnu
sposobnost dekodiranja stručnjakovih mentalnih modela algoritma koji vode učinkovitim prenosima tog mentalnog
modela gledatelju. Što se mentaln model više poklapa s vizualizacijom to će prijelaz tog mentalnog modela na
gledatelja biti učinkovitiji.

Dvostruko Kodiranje. Teorija dvostrukog kodiranja slijedi iz pretpostavke da se «prepoznavanje sastoji u najvećem
dijelu od aktivnosti dva djelomice povezana ali funkcionalno nezavisna i različita simbolička sistema (verbalni i
vizualni)». Jedan dekodira verbalne događaje (riječi); drugi dekodira neverbalne događaje (slike). Vizualizacije koje
dekodiraju znanje na verbalan i na neverbalan način dopuštaju gledateljima izgradnju dualnih reprezentacija u mozgu
i referirajućih veza između tih reprezentacija (posljedica = olakšan i učinkovitiji prijenos ciljanog znanja).

Individualne Razlike. Teorija Individualnih Razlika nameće da će mjerljive razlike u ljudskim sposobnostima i stilovima
voditi do mjerljivih izvedbenih razlika u scenarijima AV uporabe. Individualne Razlike s poštivanjem stilova učenja mogu
omogućiti nekim pojedincima dekodiranje vizualizacija mnogo učinkovitije i temeljitije od drugih pojedinaca.

Kognitivni konstruktivizam umjesto smatranja znanja kao reprezentacije objektivne stvarnosti koju ljudi nose naokolo
u svojim glavama, nameće teoriju nepostajanja apsolutnog znanja. Naprotiv, on tvrdi da pojedinci konstruiraju svoje
vlastito individualno znanje iz svojih subjektivnih iskustava o svijetu. Postajući aktivno povezani sa svojim okruženjem,
pojedinci aktivno konstruiraju nova razumijevanja i interpretirajući nova iskustva unutar konteksta kojeg već poznaju.
(aktivan aganžman sa SV omogućava konstrukciju vlastitiog razumijevanja)

Zamjetljivo je da Kognitivni konstruktivizam stavlja naglasak na aktivno


učenje koje ima važne implikacije za učinkovitu uporabu AVT.
Pojedincima tehnologija ne koristi kroz pasivno gledanje vizualizacija,
bez obzira koliko je visoka razina pismene vjerodostojnosti. Naprotiv,
AVT korisnici moraju aktivno surađivati s tehnologijom kako bi im ona
mogla koristiti. Tehnologija, s ovog stajališta se smatra ne kao stvaraoc
znanja, nego oruđem izgradnje znanja.

12
Razlozi za i protiv korištenja vizualizacija
Zbog čega instruktori računalnih znanosti izbjegavaju koristiti AVT? Često navode nekoliko sljedećih razloga uključujući:
- misle da neće imati dovoljno vremena savladati je
- smatraju da korištenje te tehnologije oduzima vrijeme potrebno za ostale razredne aktivnosti
- smatraju da kreiranje vizualizacija za učionicu zahtjeva previše vremena i truda. Nadalje, u literaturi AVT, ovaj
razlog često motivira korištenje novih tehnologija čija je uporaba lakša, pa to omogućava mnogo brže kreiranje
vizualizacija
- smatraju da ta tehnologija nije edukacijski učinkovita

9 načina kako smanjiti kognitivno preopterećenje (Mayer, Moreno).


- Osnovna/suštinska obrada – kognitivni proces potreban za razumijevanje prezentiranog materijala
- Slučajna obrada – kognitivni proces koji se odnosi na zamjećivanje dizajna prezentiranog materijala (npr.
pozadinska muzika)

1. Jedan kanal je preopterećen informacijama (za suštinsku obradu) kao npr. animacija s tekstom – ne možemo čitati
i gledati animaciju. Rješenje: 1) prezentirati riječi naracijom.

2. Oba kanala (vizualni i verbalni) su preopterećenja informacijama (za suštinsku obradu) kao npr. ako je animacija
bogata informacijama (vizualno i verbalno) ali jako brza, oni koji uče neće uspjeti na vrijeme procesuirati sve
informacije jer se nove informacije neprestano slijevaju. Rješenje: 2) podjela na segmente (ostaviti vremena za
procesuiranje informacija), 3) kratko objasniti što će se u nastavku prikazati.

3. Propterečenje kanala ključnim i manje ključnim informacijama za objašnjavanje nekog koncepta (isto tako i
prebrzim objašnjavanjem kompleksnog materijala). Npr. osoba nema velik kognitivni kapacitet da obradi potrebne
informacije za neki koncept i nepotrebne informacije kao muzika u pozadini. Rješenje: 4) ukloniti zanimljiv ali
nepotreban dodatni material, 5) signaliziranje ili isticanje bitnih dijelova animacije, slike, teksta naglašavanjem,
postavljanjem strelica i sl. (kompleksnost ne smije odvratiti učenika od bitnoga prema nebitnome).

4. Slično kako kod 3. preopterećenja, razlika je u uzroku preopterećenja (ako postavimo tekst i grafike koje on
objašnjava na različita mjesta na ekranu). Rješenje: 6) Poravnati/povezati riječi i slike, postaviti povezane
materijale na istu stranicu prezentacije…7) uklanjanje nepotrebnog (npr. nije potrebno staviti, uz animaciju, i tekst
i naraciju).

5. Ako su objašnjenja i animacije odvojeni povećavamo kognitivno opterećenje jer učenik treba pamtiti kako nešto
funkcionira dok prati animaciju toga istoga. Rješenje: 8) sinkronizacija vizualnog i auditornog. 9) Smanjiti količinu
informacija koju je potrebno zapamtiti

Kategorije i opisi subjekta


Obrazovni utjecaj vizualizacije uključuje dvije komponente; poboljšanje učenja vizualizacije i implementaciju
vizualizacije u učionici. Prijašnja istraživanja pokazuju značajno razdvajanje između intuitivnog vjerovanja da
vizualizacija poboljšava učenikovo učenje, voljnost i sposobnost predavača da razviju vizualizaciju u svojim učionicama.
Ključna zapreka usvajanja vizualizacije od predavača je vrijeme potrebno za naučiti, instalirati, razviti vizualizaciju i tada
ih integrirati u kolegij. Pronalazak, učitavanje, instaliranje, učenje, razvoj, adaptiranje i integracija u tečaj, naučiti
učenike, održavanje i unaprjeđivanje vizualizacija su neki od problema. Neki smatraju da ta tehnologija nije edukacijski
učinkovita. Top 5 zapreka za korištenje AV (traženje dobrih primjera, učenje novih promjena, izrađivanje vizualizacije,
manjak učinkovitih razvojnih programa, vrijeme prilagodbe vizualizacije u nastavi).

Određivanje instruktorovih potreba


- Dizajn za neovisnu platformu (multiplatform)
- Obuhvaćanje većih koncepcija (više koncepata i algoritama istim alatom)
- Plan za postojeće predavačke i učeničke izvore (bolja integracija u nastavu, npr. AV se odnosi na udžbenik)
- Dizajn za fleksibilnost (mora se lako adaptirati različitim prezentacijskim stilovima i izvorima školovanja)
- Dobro dizajniran GUI, dokumentacija i ilustracija korištenja (trebamo smanjiti vrijeme učenja korištenja lata)
- Razvoj Web stranice potpore (web stranica za downolad, primjedbe, pohvale, lako pamtljivo ime, formi…).
- Registracija alata u spremište podataka (repozitorij).
- Objavljivanja.

13
2.9.1 Diseminirajuća oruđa vizualizacije
Svaki AV alat treba imati svoju web stranicu kako bi se olakšao pronalazak, učenje, download i instaliranje alata.
Stranica mora omogućiti povratne informacije za mjerenje zadovoljstva korisnika i evaluaciju.

- Portal (jasne informacije o imenu, autoru, kontaktu, opisu alata, dokumentacija o alatu, materijali odrške,
instrumenti evaluacije i rezultati prijašnjih evaluacija, informacije o downloadu).
- Opisna stranica (razumljiv opis alata i kako ga koristiti, razina ciljanih učenika, reference algoritama i koncepata
koji se vizualiziraju).
- Stranica dokumentacije (kako koristiti i instalirati alat, informacije o održavanju alata)
- Stranica za podršku (prijedlozi o uporabi alata, materijal za podršku predavanja, primjer ispita i testa, sklop vježbi
za uporabu alata)
- Stanica evaluacije (omogućiti povratnu informaciju dizajneru o razini zadovoljstva korisnika, omogućiti
posjetiteljima uvid u rezultate evaluacija)
- Stanica downloada (ključna stranica, uz download alata tražiti podatke o osobi kao je li student, predavač, svrhu
downloada, kontaktne informacije…sve u svrhu evaluacije i unaprjeđenja alata)
2.9.2 Evaluacija
Sredstva evaluacije
Zahtjevi za pismenim odgovorima moraju biti pažljivo promišljeni i ne smiju biti pretjerano veliki za one koje
ispunjavaju formular.

- Sredstvo evaluacije za instruktore mora sadržavati pitanja koja traže (ime, kontakt, sadržaj i razinu tečaja za koji
se alata koristi…)
- Pitanja koja koriste ljestvicu Likert s vrijednostima kao što su uopće se ne slažem, ne slažem se, neutralno,
slažem se, potpuno se slažem sadrže (do sredstva je lako doći, lako ga je korsititi, instalirati, pouzdano je za
rad…)
- Pitanja s više ponuđenih odgovora koja ne odgovaraju ljestvici kao što je ono iznad sadrže (kako ste saznali za
alat, koliko često koristite alat, u kojem kontekstu ste koristili alat, kako studenti koriste alat…)
- Sredstvo studentske evaluacije bi pitalo različita pitanja. Skalirana pitanja za mjerenje studentskog zadovoljstvo
sadrže (uživam u korištenju alata, bolje razumijem koncepte koristeći alat, alat je pouzdan, alat se lako koristi)
- Pitanja s višestrukim izborom za studente sadrže (potrošeno vrijeme, broj vježbi rješen ovim alatom, kako ste ga
koristili – laboratorij, vlastito računalo…)

Sredstvo evaluacije, bilo za predavača ili studenta, bi uvijek moralo osigurati otvoreno polje za dodatne primjedbe na
kraju. U nastavku, budući da predavači mogu vizualizacije upotrebljavati na razne načine na različitim tečajevima,
predavače bi se trebalo potaknuti da ispune evaluaciju za svaki kolegij. Pretpostavljamo da onim predavačima koji su
spremni ispuniti sredstva neće smetati da ih se kontaktira ponovno u slučaju da budu potrebna pojašnjenja njihovih
odgovora.

2.9.3 Evaluacija rezultata učenika


Na koncu, primjena tehnika vizualizacije pri poučavanju i učenju će se rasprostraniti samo ako predavači budu imali
koncentrirane dokaze da se rukovanje studenta popravlja i/ili da se interes i motivacija studenta u svezi s materijom
povećava kad se vizualizacije koriste.

Različiti oblici evaluacije


Sumativne evaluacije su one koje se rade nakon što studenti završe s korištenjem oruđa za ispitivanje u pitanju.
Formativne evaluacije se rad tijekom ispitivanja i namijenjene su za određivanje toga ostvaruju li se ciljevi povezani s
projektom tijekom samog ispitivanja.

Formativne evaluacije
- Obraćanje pažnje studenta na vizualizaciju. Proučavanjem kako student koriti određene vizualizacije možemo
odrediti koristi li je student onako kao što to predavač namjerava.
- Time-on-task. Ova evaluacija može biti predviđena i kao formativna i kao sumativna. Cilj je bilježiti koliko
vremena student provodi radeći s oruđem vizualizacije na zadatku.
- Prijelazna povratna informacija o studentu. Anonimna anketa se može primijeniti tijekom samog korištenja
oruđa na satu da bi se dobio uvid u studentove utiske u svezi s alatom
- Osvrt kolega na nastavni materijal.
- Razgovori sa studentima.

14
Sumativne evaluacije
- Analiza učenikovog razumijevanja koristeći mentalne modele.
- Analiza razumijevanja učenika prema razinama u Bloomovoj taksonomiji.
- Testovi prije i poslije sadržaja.
- Ankete o stavu (odbija-privlači) se obično rade prije i nakon što studenti koriste oruđe vizualizacije.
- Ocjene.
- Time-on-task. Vrijeme za obavljanje nekog zadatka sa i bez alata.

Kovarijantni čimbenici (koji utječu na evaluaciju)


- Stilovi učenja
- Ispitivanje studentove podloge
- Vrijeme na zadatku

Testiranje s ljudima kao subjektima


Želimo istaknuti upozorenje za one predavače koji planiraju provesti studije u svojim razredima. U mnogim zemljama
potrebno je odobrenje „uprave za provjeru istraživanja na ljudima kao subjektima“ za sve studije u koje su uključeni
studenti. Često će biti potrebna i pismena suglasnost od strane uključenih studenata.

Link za vizualizacije algoritama:

http://www.ansatt.hig.no/frodeh/algmet/animate.html

- poglavlje 4 / link 5 : Traversals, Heap Sort; Efficient Sorts


- poglalje 15 / link 9 AVL tree
- poglavlje 16 / link 7 hash table
- poglavlje 31/link 15 Dijsktra shortest path
- poglavlje 22 / link 3 Hamming

Znati objasniti primjere:

- obilazak stabla po širini i dubini,


- algoritmi sortiranja,
- AVL i CC stabla,
- Dijkstra algoritam najkraćeg puta,
- Hashing,
- Huggmanov kod,
- preorder-inorder-postorder stabla,
- Hamming,
- algoritam binomne gomile

15
Poučavanje programiranja
Za pisanje programa potrebne su dvije faze, faza rješavanja problema i faza implementacije. Idealni nastavni sadržaj
računalnih znanosti bi trebao studente naučiti fundamentalnim konceptima računalnih znanosti baziranih na
matematičkim temeljima te razviti sposobnost korištenja tih koncepata u analizama i razvoju software-a. Koji god
pristup rješavanju problema odabrali, poznato je da je rješavanje problema neophodan i prvi korak u razvoju softvera.
Za uspješno ostvarivanje faze implementacije student mora svladati nekoliko područja: Sintaksu odabranog jezika,
Konstrukcija programa, Razvojno okruženje, Testiranje i ispravljanje pogreški.

Predavanja i vježbe - U ovom pristupu studenti se pasivni primatelji informacija s minimalnom interakcijom. Prema
Boyle tradicionalni pristup u poučavanju programiranja tipično vodi do brojnih problema: pasivni stil učenja, prevelik
naglasak na jezičnu formu nasuprot funkcijama, preuranjenu kompleksnost, preuranjenu apstraktnost.

Prednosti ovog pristupa su: pruža osnovno znanje početnicima, vježbe pružaju studentima priliku da testiraju svoje
znanje, predavanja su nužna za buđenje interesa o predmetu, ekonomično je i fleksibilno.

Za dugoročno pamćenje najbolje koriste vrste interakcije podučavanja i tutorstva, uradi i raspravljaj dok najlošije
koriste interakcije kao samo čitanje, slušanje ili gledanje.

Vizualizacija software-a - Vizualizacija software-a je prenošenje apstraktnih ideja koje se javljaju u kodu u vizualne
prikaze koji će bolje i jednostavnije pokazati rad tog sustava. Prednosti: objašnjavanje složenih principa pomoću slika,
većina studenata bolje razmišlja vizualno, predavači mogu obraditi više materijala u manje vremena jer su prezentacije
jasnije, dobra vizualizacija može povećati razumijevanje studenata

VS se dijeli na:
- Vizualizacija programa – Alice & JKarelRobot. Prednosti: vizualizacija zaokuplja studente, studenti mogu
kontrolirati alat i biti u interakciji s njim, software-ski alati koji omogućuju animirane i vizualne poglede su korisni,
imaju mogućnost mijenjati kod i brzo vidjeti animirane rezultate, održavati interakciju i učiniti program
jednostavnim za debugiranje.
- Animacija algoritma - služe za vizualizaciju svih operacija tog algoritma, a ne samo određenog koda ili podataka.
Prvi alat za vizualizaciju algoritma, BALSA, je razvio Mark Brown u ranim osamdesetima. Sambaje interaktivni
animirani interpreter koji čita ascii komande i izvodi odgovarajuće animirane akcije. JHAVE je klijent – server
okružje, za prikaz animacija algoritma (uz poruke i pitanja) preko weba. Razvili su ga Naps, Eagan i Norton
pokušavajući olakšati studentima učenje složenih algoritama.
- Vizualno programiranje – Visual Basic
- Programiranje demonstracijom
- Računska vizualizacija

Roboti - Istraživanja su pokazala da je aktivno učenje, učenje provedeno u interakciji sa okruženjem, nasuprot
predavanjima, mnogo djelotvornije pri razvijanju studentovih sposobnosti stjecanja znanja. LEGO/Logo povezuju
popularne LEGO konstrukcije sa Logo programskim jezikom, djeca su mogla napraviti strojeve od LEGO kockica te
spojiti svoj stroj na računalo, a zatim koristiti programski jezik Logo za kontrolu stroja. Lego Mindstorms je vrlo
popularan alat za podučavanje korišten na mnogim američkim sveučilištima i akademijama.

Učenje zasnovano na problemima – Boud i Feletti opisuju učenje zasnovano na problemima kao „način konstruiranja
i poučavanja kolegija koristeći probleme kao poticaj i fokus za studentovu aktivnost.” Problemi iz stvarnog života i
prakse se postavljaju studentima, a oni onda uče tehnike i principe potrebne da ih riješe. Studentima se daju na
raspolaganje resursi potrebni za rješenje problema, ali do informacije kako to napraviti moraju doći sami.

Vannes University – Studentima je predstavljen problem i rečeno im je da software zaista treba tajniku odjela, a cilj
toga je bio da im bude veći izazov. Kako je projekt napredovao studenti su ponudili rješenje, a njihova motivacija je
stalno rasla. University of Sidney – Nema značajne razlike u rezultatima, jedina razlika bila je što su studenti koji su
podučavani ovom metodom bili zadovoljniji kolegijem od ostalih.

Prednosti: učenje je uvjetovano problemima radije nego predmetnim sadržajima i odnosi se na probleme iz realnog
života, pripremaju studente za radno okruženje, promovira kreativnost, promovira vještine timskog rada, promovira
neovisno učenje i tjera studente da preuzmu odgovornost za svoj rad, promovira pozitivne osjećaje o kolegiju, studenti
uče i druge vještine koje nisu specifične za kolegij npr. usmeno izlaganje, pisanje izvješća i demonstracije.

16
Kognitivno tutorstvo - Ova metoda uključuje promatranje radnji koje tutor (profesor) obavlja, i vježbu, prvo uz pomoć
tutora, a kasnije samostalno. Tutor može biti profesor u učionici, bolje u što manjim grupama, ili virtualni tutor.
Razvojem web tehnologija inteligentno tutorstvo postaje sve raširenije i dostupnije.

Prednosti: Unaprjeđuje meta-kognitivne osobine, stručnjak ima odmah uvid u teškoće studenta i može ih na vrijeme
ispraviti, student ima povratnu informaciju o svom radu, potiče suradnju i razvoj socijalnih vještina, dostupnost alata
na Web-u olakšava razvoj kognitivnog učenja, potiče razvoj komunikacije i suradnje.

Do danas najviše istraženi pristup je vizualizacija programa. Wilson & Aiken bilježe porast uporabe sustava vizualne
animacije u razredu teško dolaze do detaljnih informacija o tome kako se sustav koristi. Naps iznosi dokaze da
aktivni angažman studenta dovodi do povećane motivacije i boljeg razumijevanja konteksta.

U eksperimentima koje Stasko iznosi 1996 zaključuje da „prednosti animacija nisu očigledne“ i da bi istraživači
trebali precizno odrediti „specifične dijelove znanja čiji razvoj animacija potpomaže“. Stasko zaključuje da animacije
algoritama čine izazovne algoritme pristupačnijima i manje strašnima što vodi povećanju studentove interakcije sa
materijalima i olakšava učenje.

Korištenje 3-D okruženja za interaktivne animacije kao primarni alat na početničkom kolegiju povećava broj
problema (Grafički koncepti, Program i jezične konstrukcije, Događaji i reakcije). Dok većina korisnika tvrdi da se
povećala motivacija kod studenata i da je studentima zabavno koristiti robote, to ne znači učinkovitost. Bez obzira
na pristup koji odaberemo, mora imati pedagošku podlogu i kao najvažnije mora biti usko povezan sa gradivom.

Međunarodno istraživanje o vještinama čitanja i pretraživanja koda kod programera početnika


McCracken Group, jedna od radnih grupa ITiCSE organizacije (Innovation and Technology in Computer Science
Education) 2001, je utvrdila da mnogi studenti ne znaju programirati na kraju uvodnih kolegija (na onom nivou koji se
od njih očekuje). Za to postoje dva objašnjenja:

- studentima nedostaje sposobnost rješavanja problema, (shvaćanje, raščlamba i rješavanje problema te


sastavljanje konačnog rješenja)
- studenti imaju slabo znanje o osnovnim principima programiranja i rutinskim programerskim zadacima poput
pretraživanja koda (tracing through code)

Studenti često imaju percepciju da je fokus njihovog tečaja s prve godine naučiti sintaksu određenog programskog
jezika. Ova percepcija može navesti studente da se koncentriraju na fazu implementacije više nego na planiranje,
dizajniranje ili testiranje programa. Studenti često preskaču ranije faze u procesu rješavanja problema, možda zbog
toga što smatraju ove korake ili teškima ili nebitnima. Analizirajući podatke sa sveučilišta u različitim zemljama došlo
se do zaključka da problemi u programerskim vještinama ne ovise ni o zemlji ni o sistemu naobrazbe. Najčešća greška
koja se pojavljivala kod studenata je ta što nisu znali izdvojiti problem koji treba riješiti u vježbi. Također, na svim
sveučilištima svi su se studenti žalili na nedostatak vremena.

Radna grupa ITiCSE 2004 (Lister) napravila je istraživanje u 7 zemalja testirajući studente na dva načina. Prvo su
studentima dani zadaci u kojima su trebali predvidjeti rezultat izvršavanja kratkog dijela koda, a zatim su dobili zadatke
u kojima su trebali između nekoliko mogućnosti odabrati dio programskog koda koji upotpunjuje zadani program (kroz
12 pitanja). Većina studenata je bila slaba upravo u drugom dijelu zbog nedostatka vještina koje su preduvjet za
rješavanje problema (problem solving). Postavlja se pitanje: „Zašto se studenti toliko muče s programiranjem?“

Popularno objašnjenje je bilo nedostatak sposobnosti rješavanja problema, koju McCracken grupa definira kao proces
od 5 koraka:

1) definirati problem iz opisa, 2) raščlaniti problem u više manjih pod-problema, 3) riješiti manje pod-probleme, 4)
sastaviti sve u cjelovito rješenje, 5) ocijeniti postupak i ponoviti

Analiza bilješki učenika


Iskusni programeri uvijek rade bilješke i crtaju dijagrame prilikom istraživanja nekog koda i utvrđivanja što on radi.
Pokazalo se da pisanje bilješki u obliku tablica u kojima se mijenjanju vrijednosti varijabli prilikom izvršavanja petlje i
slikovne reprezentacije polja znatno doprinose točnom odgovaranju na pitanje. Najmanje točnih odgovora imali su
studenti koji nisu pravili nikakve bilješke. Gotovo polovica testiranih studenata uopće nije radila nikakve bilješke
(vjerovatno su se oslanjali na kratkoročno pamćenje ili su pogađali odgovor ili rješavali zadatak u sebi).

17
Analiza prijepisa usmenih ispitivanja
Ova analiza je primarno kvalitativna analiza. Radi se o ispitivanju učenika na način da razmišljaju naglas dok rješavaju
zadatak i pritom objašnjavaju zašto su donijeli određene odluke. Studenti prate kod i ručno ga izvršavaju, a pogreške
koje se događaju posljedica su nepažnje i projiciranja vlastitih želja i namjera u kod, umjesto da se drže onoga što je
napisano. Praćenje koda je važna vještina, ali mentalno vrlo zahtjevna tako da je lako previdjeti neke bitne detalje.
Postoji dosta literature o mentalnim modelima za programere koja se prvenstveno temelji na proučavanju shema –
apstraktnih rješenja problema u programiranju. Teme koje se proučavaju su pisanje programa, modeli čitanja
programa ovisno o shemi koju je koristio programer pri pisanju koda itd. Soloway, Clancy i Linn smatraju vrlo korisnim
poučavanje studenata ovim shemama. Detaljnije praćenje koda umanjuje vjerojatnost pogreške.

Zaključak istraživanja (ukratko)


Programeri početnici nemaju dovoljno razvijene vještine analize i čitanja koda, a to je preduvjet za rješavanje
problema. Programeri stručnjaci su već automatizirali te početne vještine pa se mogu više posvetiti samome rješavanju
problema. Istraživanja su pokazala kako studenti nemaju toliko problema s pisanjem koda koliko s praćenjem koda te
da se prvo treba inzistirati na automatizaciji analize i čitanja, a tek onda krenuti na rješavanje problema. Sama
sposobnost pisanja kompliciranijih programa zahtjeva sposobnost predviđanja budućih stanja programa koja mogu
biti nepoželjna te uklanjanje tih istih problema.

Kriteriji za taksonomiju programskih jezika i okruženja za poučavanje programiranja


1. Jezik je pogodan za podučavanje. Trebao bi imati i jednostavnu sintaksu i prirodnu semantiku, izbjegavajući
nejasne simbole, kratice i druge izvora konfuzije. Odgovarajući alati bi trebali biti jednostavni za korištenje.
2. Jezik može biti korišten za primjenu fizičke analogije. Kako bi zadovoljio ovaj kriterij jezik bi trebao osigurati
multimedijalne mogućnosti bez dodatnih proširenja.
3. Jezik pruža opći okvir. Kako bi zadovoljio ovaj kriterij jezik bi trebao omogućiti učenje osnova i načela
programiranja, koji će kasnije poslužiti kao izvrstan temelj za učenje drugih programskih jezika.
4. Jezik promovira novi pristup poučavanja software-a. 'Jezik' ne samo da se treba ograničiti na implementaciju,
nego i na prekrivanje mnogih aspekta procesa razvoja software-a. "Jezik" bi trebao biti dizajniran kao cijela
metodologija za izgradnju software-a koja se temelji na: jeziku i skupu načela, alata i biblioteka.
5. Jezik je interaktivan i olakšava razvoj koda. Kako bi zadovoljio ovaj kriterij jezik i okruženje njegove upotrebe bi
trebao omogućiti početnicima implementaciju novostečenih ideja, bez da se prije toga utvrdi kontekst cijele
primjene. Okruženje jezika bi učenicima trebalo pružiti neposredne povratne informacije o njihovom napretku.
6. Jezik promiče pisanje ispravnih programa. Kako bi zadovoljio ovaj kriterij, studentima treba dati načine kako bi se
osiguralo da je kod koji pišu točan i da ne sadrži bug-ove. (izbjegavanje pristupa „pokušaja i pogreške“)
7. Jezik omogućava rješavanje problema u manjim dijelovima. Kako bi zadovoljio ovaj kriterij jezik treba podržavati
modularnost (u funkcijama, procedurama ili ekvivalentnim podjelama).
8. Jezik pruža besprijekorno razvojno okruženje. Kako bi zadovoljio ovaj kriterij razvojno okruženje bi trebalo imati
intuitivni GUI koji omogućava pristup značajkama i bibliotekama, za osnovno i napredno programiranje.
9. Jezik ima podršku zajednice korisnika. Kako bi se zadovoljio ovaj kriterij, mora postojati dovoljno podrške za
studente, profesore i ostale zainteresirane za učenje i korištenje samog jezika. Ta podrška može doći u različitim
oblicima, kao što su web stranice, udžbenici, tutoriali, vježbe, dokumentacija...
10. Jezik je open source, tako da svatko može doprinijeti njegovu razvoju. Kako bi zadovoljio ovaj kriterij jezik treba
biti rezultat rada grupe koja ne žele stvoriti komercijalni proizvod i na koji svatko, ako to želi, može doprinijeti.
11. Jezik je dosljedno podržan kroz različita okruženja. Kako bi zadovoljili ovaj kriterij jezik bi trebao biti dostupan na
različitim platformama.
12. Jezik je lako dostupan. Kako bi zadovoljio ovaj kriterij jezik mora biti bez nekih obvezivanja zbog korištenja istoga
i morao bi biti dostupan širom svijeta bez ograničenja.
13. Jezik je podržan dobrim nastavnim materijalima. Kako bi ovaj kriterij bio zadovoljen, trenutni udžbenici i drugi
prikladni materijali bi trebali biti dostupni za korištenje.
14. Jezik se ne koristi samo u obrazovanju. Kako bi zadovoljili ovaj kriterij jezik bi trebao biti relevantan u drugim
područjima osim obrazovanja (npr. u industriji) i biti pogodan za razvoj velikih aplikacija u stvarnom svijetu.
15. Jezik je proširiv. Da bi se zadovoljio ovaj kriterij jezik bi trebao olakšati pristup naprednim funkcionalnostima koje
nisu izravno dostupne.
16. Jezik je pouzdan i učinkovit. Kako bi zadovoljili ovaj kriterij jezik mora biti koristan u stvaranju aplikacija velike
brzine.
17. Jezik nije primjer QWERTY fenomena. Da bi se ostvario ovaj kriterij jezik mora pokazati svoju korisnost
sada i u budućnosti.

18
Usporedba programskih jezika
Obzirom na 17 danih kriterija moguće je usporediti programske jezike na objektivan način. Ne mogu se svi kriteriji
primijeniti jednako na svaki jezik. Na primjer, neki jezici su definirani kao standardni i oni se mogu, ali i ne moraju,
dostaviti u paketu s dodatnim alatima. U usporedbi su svi kriteriji jednake težine.

Nedostatak stroge određenosti u nekim jezicima (npr. Python i JavaScript) je od važnosti za pojedine profesore. Neki
od njih tvrde da je za studente veliki nedostatak poučavanje jezike koji su uklonjeni iz industrije relevantnih. Također,
uvođenje programiranja upotrebom jednostavnog jezika može uzrokovati da učenici naiđu na zid prilikom susreta s
nekim složenijim u budućnosti. Međutim, autori ovog članka sugeriraju da studenti nisu u nepovoljnom položaju ako
su naučili program jednostavnim jezikom i kasnije prijeđu na neki od kopleksnijih.

Po ovoj usporedbi 3 jezika su uvjerljivo najprikladnija u odnosu na ostale uspoređivane. Python i Eiffel su najviše
rangirani, što opravdava njihov dizajn kao jezika za poučavanje. Iza njih odmah slijedi Java, koja se obično povezuje s
industrijskim aplikacijama. Ostali jezici su ocijenjeni bitno niže. Važno je naglasiti da je dana usporedba ograničena
iskustvom autora sa svakim pojedinim jezikom.

13 razloga zašto Ruby, Python ne mogu ugroziti Javu.


Razlog 1: Sintaksa je veoma važna jer se gradi na prethodnom znanju. Također slična sintaksa znači i sličan koncept.
Programeri moraju uložiti manje napora za učenje nove sintakse, mogu upotrijebiti stare koncepte i tako se
usredotočiti na razmatranje novih koncepata.

Razlog 2: Previše buke oduzima koncentraciju. Programeri su zauzeti i učenje 10 jezika do razine kad ih mogu procijeniti
i napraviti poučnu odluku je previše naporno.

Razlog 3: Nedostatak pritiska na programere da se uključe. Tržište je prilično stabilno. Postojeći jezici rade prilično
dobro, a menagment ne gura programere da nauče nove jezike.

Razlog 4: Čini se da se jezici konkurenti ne snalaze najbolje u cilju stvaranja lavine novih projekata. To može biti zbog
činjenice da su tanko zastupljeni zbog procjene. Ima ih previše.

Razlog 5: Zajednica konkurentski jezika ne radi dobar posao u vezi prihvaćanja programera sa već ustanovljenim
jezicima.

Razlog 6: Ne postoji veliki poticaj za prebacivanje na konkurentne jezike.

Razlog 7: Novi jezici ne pokazuju značajan napredak u životu mnogih programera i projekata.

Razlog 8: Nema na vidiku ubojite aplikacije. To znači da se novi jezici natječu na starom tržištu sa uigranim igračima.

Razlog 9: Nijedan od ovih novih jezika nema jakog sponzora da ih s voljom i novcem progura na tržište. Svi novi jezici
su nastali na sveučilištima i institutima za istraživanje.

Razlog 10: Većina ovih jezika se ne usudi poduzeti veliki korak. Čisto radi znatiželje ovdje je lista rođendana jezika.
Ruby(1990), Phyon(1991), Lisp(1985), Scheme(1970s), Lua(1993), Smalltalk(1969-1980), Haskell(1990), Erlang(1987),
Caml(1985), OCaml(1996), Groovy(2003), Scala(2003).

Razlog 11: „značajke“ koje su opasne za velike projekte. Od kad nema velikih projekata napisanih u ovim jezicima teško
je napraviti nepristran izračun. Osnova je na kraju prepreka za njihovo usvajanje

Razlog 12: Funkcionalni jezici traže pisanje koda poput matematičkih jednadžbi. Ali koliko ljudi zapravo voli matematiku
toliko da sve pišu u njoj? Objektno orijentirani jezici osiguravaju prednost: dopuštaju programerima da razmišljaju o
području koje žele modelirati, a ne o jeziku ili stroju.

Razlog 13: Nedostatak prilagođenih alata za razvoj, onesposobljava programere i tim za razvoj kad su suočeni sa velikim
linijama koda.

Zašto većina novih jezika nikad neće biti popularna? Sintaksa. Neki jezici prave čudne pogreške. Npr. Python je dobar
jezik, ali ideja korištenja uvlačenja kao označavanja bloka usporava. Dok većina pytonista brane ovu ideju sa mnogo
energije, istina je da ova značajka opasan alat u velikim svjetskim važnijim projektima. Neki jezici imaju poteškoća sa
postavkama…

19
Učinkovitost robota u poučavanju programiranja (Barry Fagini, Laurence Merkle)
Problem istraživanja bile su učinkovitost robota u poučavanju računalne znanosti i učinkovitost robota u poticanju
studenata da odaberu računalnu znanost ili računalno inženjerstvo kao polje istraživanja.

Od 48 grupa, njih 9 je radilo s robotima. Kod ispitanika se pratila izvedba na svim ispitima, rang studenta nakon što su
ocjene dodijeljene te odabir područja istraživanja. Instrumenti koji su se koristili u istraživanju su Lego Mindstorms
roboti i Ada/Mindstorm programsko okruženje. Kolegij na kojem se provodilo istraživanje sastojao se od 6
laboratorijskih vježbi.

Rezultati istraživanja bili su negativni. Rezultati testa grupe studenata koji su radili s robotima bili su niži od rezultata
testa grupe studenata koji nisu radili s robotima. Također, korištenje robota u nastavi nije imalo značajnog utjecaja na
studentov odabir polja istraživanja. Smatra se da je najznačajniji faktor koji je utjecao na rezultat nedostatak simulatora
kod grupe koja je radila s robotima.

Nakon što su proveli kvantitativno istraživanje, autori su se odlučili provesti i jedno kvalitativno istraživanje.
Istraživanje se svelo na subjektivan osvrt studenata o tome koliko su naučili, koliko je kolegij bio dobro organiziran itd.
Studenti koji nisu radili s robotima bolje su ocijenili sadržaj kolegija od onih studenata koji su radili s robotima. Studenti
iz grupe koja je radila s robotima često su upotrijebili riječi poput „interesantno“, „zabavno“, „izazovno“ i „bitno“.

Studenti su općenito bili nezadovoljni nedostatkom simulatora što je izazvalo manjak reflektivnog vremena kod
rješavanja problema. Također su izjavili da su roboti „teški za rad“ i „oduzimaju previše vremena“. Razlog tome je i
činjenica da su se roboti mogli koristiti samo za vrijeme laboratorijskih vježbi te ih se nije moglo ponijeti sa sobom.

Karakteristike Alice 3
- Izravan prijelaz na Javu.
- Objektno-orijentirano okruženje.
- Izrada 3D animacija i igara u virtualnom svijetu.
- Uvod studenata u objektno-orijentirano programiranje.
- Ne treba znati sintaksu, naredbe se unose u obliku blokova (drag & drop).
- Alice program je besplatan.
- Bogat izbor gotovih 3D modela

3.6.1 Posredovani Transfer (Mediated Transfer: Alice 3 to Java)


Tehnološki – plugin za Java IDE koji prevodi Alice 3 AST (Abstract syntax tree) u Java kod.

Pedagoški – razvili su skup nastavnih materijala koji integriraju strategije rješavanja problema iz Alice s podrškom za
tehnikama posredovanog transfera poznate kao premošćavanje (bridging) i grljenje (hugging). Koncepti naučeni u
okruženju Alice animacija transferiraju se u programiranje u produkcijskom jeziku.

Alice – omogućava početnicima kreiranje animacija i igara u 3D svijetu. Stotine 3D modela (ljudi, životinja, stvari)
osigurano je u galeriji Java klasa. U virtualnom svijetu kreiraju se instance tih klasa. Programski kod animira objekte,
definira se pomoću drag-and-drop editora pa nema sintaksnih pogrešaka. Alice je dizajnirana tako da su studirali kako
početnici pokušavaju opisati kako se objekti pomiču u 3D. Vizualizacija omogućava da se odmah vidi kako program
radi, omogućeno je da se razumije jednostavna veza između svake programske naredbe i ponašanja objekta.

Posredovani transfer
Cilj: spojiti prednost Alice intuitivnog razumijevanja OO i fundamentalnih programskih koncepata i izravnog prijenosa
u Javu. Učenje se mora moći transferirati u drugi kontekst. Perkins i Salomon: Bridging – nastavnik pomaže studentima
izgraditi most iz konteksta u kojem su naučili koncept u drugi potencijalni kontekst. Hugging – nastavnik čini situaciju
što sličnijom onoj situaciji u koju se transfer očekuje.

Hugging znači da bi program u Alice trebao biti što sličniji Javi. To bi bila previsoka cijena da se izgubi prednost što u
početku nema frustracija zbog sintaksnih pogrešaka. Već je Alice 2 omogućila da se vidi kod nalik na Javu, ali je tek
Alice 3 razvila skup opcija koje omogućavaju da se vidi Java kod na raznim razinama detalja. Kod prelaska na Javu
kontekst se ne mijenja, i dalje je to isti program. Nastavnik direktno povezuje Alice i Java kod, istovremeno ih
prikazujući na projektoru. Nakon toga student sam modificira Java kod u Java IDE, a konačno ga sam i piše.

20
Tipične početničke greške u programiranju
Klasifikacije i uzroci
3 kategorije bugova
BUG-ovi mogu prepoznati kao razlike točnih planova i implementacijskih pogrešaka. Pokušalo se identificirati izvor
svakog BUG-a: što je student (ili nije) mislio dok je radio zadatak. Objašnjenja o podrijetlu BUG-ova nazvana su
mogućim računima.

- BUG-ovi koji nisu temeljeni konstruktivno su problem zbrajanja, optimizacije i problem prošlih iskustava. (BUG
nije nastao zbog pogrešnog shvačanja o semantici jezika)
- BUG-ovi koji su temeljeni konstruktivno su problem specijalizacije, prirodnog jezika i prošlih iskustava.

3 kategorije nekonstruktivno temeljenih bug-ova (najčešli NO i MAYBE)


- NO: Boundary Problem (Granični Problem) – U ovoj skupini su kvalificirani oni bug-ovi koji nisu rezultat
pogrešnog shvaćanja semantike ili jezične građe. Početnici imaju problema u odlučivanju koje su prikladne
granične točke. Uzmimo u obzir off-by-one bug.
- YES – Ovaj bug kvalificiran kao rezultat nerazumijevanja semantike npr. naredbe READLN, te njene jezične građe.
- MAYBE: Negation and Whole-Part Problem – Početnici griješe pri zaključivanju kako je negacija od „dobre stvari“
„loša stvar“. Uzmimo u obzir OR-for-AND bug.

Druga dva nekonstruktivno temeljena problema su:


- Interpretacijski problem – Kada početnik čita programsku dokumentaciju, i krivo zaključuje iz specifikacije.
- Kompozicijski problem – Početnici ne uočavaju negativne interakcije između odjeljaka koda, koji su lokalno
ispravni, ali globalno neispravni

Različiti oblici najkarakterističnijih bug-ova


- Naizgled dobra intuicija – Programer može zalutati na pogrešan put slijedeći svoju intuiciju.
- Naizgled prikladni elemanti dizajna – Elementi mogu biti važni za neke dijelove, no ne moraju i za konačan ishod.
- Naizgled prikladne ''zakrpe'' (eng. patch) – Svaki programer iz iskustva zna da program gotovo uvijek radi, ali uz
sitne dorade. Nekad je dovoljno samo jedno fiksiranje, a ponekad i više njih na može riješiti problem.
- Vlastito testiranje – Vrednovanje programa i testiranje bi trebalo provesti pažljivo i temeljito, opravdati
pozadinsku ideju i testirati program u više slučajeva

4.1.1 Konstruktivistička teorija i bugovi


Konstruktivistička teorija učenja kaže da se znanje izgrađuje iz osobnih iskustava. Učenje je rezultat socijalnih
interakcija. Staro znanje utječe na novo znanje. Prijašnje znanje može navoditi na zaključke koji postaju zablude. Nešto
što je naučeno u starom kontekstu može postati pogrešno u novom kontekstu (nastaju pokreške u kodu – BUG-ovi).
Pogreške u programskom kodu mogu se definirati kao neprikladna upotreba učenikovog znanja pri specifikaciji nekog
procesa korak po korak. Postoje tri tipa takvih pogrešaka: Paralelizam (više naredbi je aktivno u isto vrijeme),
Intencionalnost (pripisivanje usmjerenosti cilja), Egocentrizam (pretpostavka da postoji više programskih značenja
nego što je prezentirano u kodu).

Ove tri vrste pogrešaka pretpostavljaju da je programski jezik inteligentan i da posjeduje moć interpretacije. Zablude
koje se ovdje razmatraju uzrokovane su sintaksom i semantikom jezika tj. stavljanjem neke stare koncepcije u novi
kontekst. Riječ može imati različito značenje u različitom kontekstu ili pri različitoj upotrebi.

Primjer X = X + 1:
- Matematika (primjer je greška, = upućuje na rezultat neke matematičke operacije, + simbol zbrajanja)
- Programiranje(inkrement varijable, = pridjeljivanje vrijednosti ili uspredba, + zbrajanje ili spajanje stringova)

Problem brojenja
Od prvog dana uči se brojati od 1, ali u programiranju se broji od 0. Ovaj se problem najčešće javlja kod nizova varijabli.
Novi koncepti često proturječe ispravnosti ranije stečenih znanja, pa ih je učenicima teško prihvatiti. Rješenje:
Razvijanje mentalnih modela koji objašnjavaju što se događa u računalu, tako da se stavi naglasak na novi kontekst i
građu računala. Podučavanje učenika sintakse i semantike računalnog programiranja. Kvalitetan udžbenik bi bio onaj
koji ističe razlike vezane za sintaksu i semantiku. Podijeliti učenike u grupe da raspravljaju o različitostima u konceptima
te im objasniti da se radi o nadogradnji znanja a ne poništavanju starog znanja.

21
4.1.2 Ciljevi i planovi
Nova istraživanja pokazuju da struktura jezika ne predstavlja glavni kamen spoticanja za početnike u programiranju.
Pravi problem početnika leži u ''spajanju dijelova'' , odnosno sastavljanju i raspoređivanju komponenata programa.
Stručnjaci znaju mnogo više semantike i sintakse određenog jezika. Oni su razvili velike biblioteke stereotipnih rješenja
problema, kao i strategije raspoređivanja i sastavljanja samih rješenja. Učenike treba eksplicitno učiti ovim
bibliotekama i strategijama da bi ih mogli i koristiti.

Napravljeno je nekoliko empirijskih proučavanja koja su pokazala da programeri opažaju grupu kodova koje rade
zajedno (planovi) u stvaranju željenog rezultata (ciljevi). Mogućnost razmišljanja o cilju i planu umjesto samo o
individualnoj jezičnoj konstrukciji je prednost u razumijevanju programa i generalizaciji.

Dvije važne činjenice o cilju i planu: cilj se rastavlja u podciljeve, a planovi se ostvaruju u podciljevima cilja, postoji
mnogo različitih planova za ostvarivanje istog cilja.

Primjer:
Napiši program koji računa prosjek real i integer brojeva. Prekini unos brojeva kad je ulaz broj 9999. Prosjek zahtjeva
sumu svih unesenih brojeva, i ta suma mora biti podijeljena sa brojem unesenih brojeva. Ova dva zahtjeva su ciljevi
problema. Programeri imaju (planove) strukture slične obrascima za učitavanje integera, za njihovo zbrajanje i
prestanak zbrajanja kad je unesena granična vrijednost. Ovaj obrazac ne zavisi o jeziku u kojem se program piše.
Ovakva rješenja u limenkama su planovi. Ključno opažanje je da plan za ostvarenja cilja zbrajanja i plan za ostvarenje
cilja brojenja moraju biti sjedinjeni ako želimo da podaci prođu samo jednom. Kada se zbroj i broj izračunaju moramo
dijeliti da dobijemo prosjek. Stručni programer zna da dijeljenje mora biti zaštićeno, budući da će se pojaviti pogreška
za vrijeme izvođenja ako dođe do dijeljenja s 0.

MEHANIZMI I OBJAŠNJENJA: produkti procesa programiranja


Učenike se mora naučiti što programiranje ima zajedničko s dugim procesima rješavanja problema. Da bi olakšali
prijenos znanja iz jedne domene u drugu za rješavanje problema, učenike se treba eksplicitno naučiti da je
programiranje disciplina dizajna i da kao izlazni rezultat programiranja nije program sam za sebe, nego rukotvotrina
koja izvodi željenu funkciju. Rukotvorine prirodno vode konceptu MEHANIZAMA: mehanizam, bilo da će biti instaliran
kao tranzistor, uređaj ili verbalna instrukcija, određuje lanac akcija koje, kad se pokrenu, proizvode željeni učinak.

Programeri, tipično nemaju luksuz da proizvode rukotvorine za ''jednokratnu upotrebu''. Oni moraju objasniti zašto i
kako je rukotvorina dizajnirana baš na taj način, kako bi omogućili drugim programerima da naprave efektivne
promjena rukotvorina. Te informacije se nazivaju OBJAŠNJENJA.

Dakle, proizvodi procesa programiranja su mehanizmi i objašnjenja: ono što učenici uče u uvodnim tečajevima iz
programiranja su ustvari znanja i vještine za izgradnju ovakvih objekata.

DIZAJNERSKE STRATEGIJE: KONSTRUIRANJE MEHANIZAMA I OBJAŠNJENJA


Bistrenje korak po korak
Cilj strategije bistrenje korak po korak je prepoznati različite ciljeve naredbe danog problema za koju su već razvijeni
planovi. Razbijaj probleme u potprobleme, na temelju problema koje si već riješio i za koje imaš gotova (u limenkama)
rješenja. U podučavanju bistrenje korak po korak, slika koju se treba dočarati je:

- Pretpostavi da posjeduješ ''bačvu s rješenjima u limenkama''.


- Pogledaj sve probleme iz te ''bačve'' i ustanovi da li neku limenku možeš iskoristiti
- Razbij problem u dijelove tako da možeš iskoristiti odgovarajuće limenke iz bačve

Metode sastavljanja plana


Bistrenje korak po korak opisuje ''makrostrategiju'' za razvoj cilj/plan dekompozicije danog problema. Međutim,
ustanovljeno je i kako spojiti planove - ''mikrorazina''. Postoje četiri načina koja ostvaruju ''lijepljenje planova'':

- Graničenje: dva plana su zalijepljena u obrnutom smjeru


- Ugnježđivanje: jedan plan je potpunosti okružen drugim planom
- Stapanje: posljednja plana su umetnuta
- Praćenje: ponekad plan u limenci koji je već razvijen nije ono što trebamo za naš problem. Moramo ga
modificirati tako da odgovara posebnim potrebama problema

22
Pravila programskog govora: dobri načini programiranja
Kad su planovi prestavljeni putem pravog koda još je mnogo fleksibilnosti u ostvarivanju planova: različiti oblici jezika
mogu isti plan i/ili naredbe iz plana realizirati u različitom poretku. Često učitelj programiranja teško može reći zašto
dio koda nije napisan u ''dobrom stilu'' i učenici ne znaju zašto je program strogo ocijenjen. Osim što učenike treba
naučiti bistrenje korak po korak i metode sastavljanja plana, učenike treba naučiti pravila programskog govora, koja
su analogna pravilima uobičajnog govora.

Prikaz problema
Konstruktivni problemi - problemi koji stvaraju teškoće početnicima u učenju točne semantike jezičnih konstrukcija
- Problem prirodnog jezika – Mnoge konstrukcije programskog jezika su imenovane prirodnim jezikom, pa se
početnici zbune semantikom konstrukcije
- Problem ljudskog prevoditelja – Početnici znaju kako žele da konstrukcija bude provedena i oni pretpostavljaju da
će računalo doći do slične interpretacije
- Problem nekonzistentnosti – Ako shvate kako neka konstrukcija radi u jednoj situaciji, početnici će pretpostaviti
da će tako raditi i u sličnim situacijama

Problem kompozicije plana - problemi koji stvaraju poteškoće pri sastavljanju ispravnog plana
- Problem neočekivanih slučajeva – Početnici povremeno pišu probleme koji rade točno za neke obične slučajeve,
ali ne rade generalno
- Kognitivni problemi – Početnici mogu detektirati gubitak informacija iz radne memorije. Mali, ali važni dijelovi
planova mogu biti izostavljeni ili planovi interakcija mogu biti preskočeni.
- Problem optimizacije – Početnici mogu biti toliko željni optimizacije svojih planova da ne provjere da li se
optimizacije uopće može provesti
- Problem prijašnjih iskustava – Početnici konstantno razvijaju, recikliraju i slažu planove temeljene na prijašnjim
iskustvima. Često neodgovarajući aspekti već korištenih planova ometaju plan koji se koristi novoj situaciji
- Problem specijalizacije – Početnici razvijaju apstraktne planove koji moraju biti prilagođeni za novu situaciju.
Ponekad su ti planovi neodgovarajući ili nisu pravilno implementirani.
- Problem zbrajanja – Početnici mogu zbrojiti složene kombinacije planova u terminima nekih primarnih funkcija
predviđajući implikacije složenih sekundarnih funkcija na kasnijim kompozicijama plana
- Problem prirodnog jezika – Pridruživanje prirodnog jezika u programski stvara BUG-ove
- Problem interpretacije – Početnici dijelom ovise o njihovom postojećem znanju ciljeva i planova u zadacima
prevođenja
- Granični problemi – Početnici imaju poteškoća u odlučivanju o odgovarajućim graničnim točkama u
specificiranju planova

4.1.3 Usporedba s ekspertima


Prema Soloway-u i Ehrlichu, znanje programiranja je predstavljeno kao set struktura blokovskog oblika koje
nazivamo planovima. Oni su prezentirali dokaz da su iskusni programeri imali problema sa razumijevanjem programa
koji su bili napisani na neplanski način, čime je podržana ideja da se plansko prepoznavanje mora dogoditi u
razumijevanju. Hipotetski se došlo do zaključka da bi razlika između početnika i eksperata bila u njihovim
sposobnostima da povezuju programski kod sa planskim oznakama. Dobro povezana reprezentacija je ona u kojoj
programer razumije kako dijelovi programa komuniciraju jedni sa drugima. Interakcije su teške za razumjeti,
najvjerojatnije jer objedinjuju instance delokaliziranih planova, npr. planovi u kojima je kod koji ih implementira
raštrkan kroz program radije nego lokaliziran na jednome mjestu. Ovaj nedostatak neprekidnosti uvodi nam poteškoće
u razumijevanju, pošto ne možemo vidjeti implementaciju plana kao jednu koherentnu jedinicu.

Naime, objavljeno je testiranje ekspertnih programera i početnika u sposobnostima nalaženja informacija u


programskom tekstu sa pretpostavkom da bi eksperti nadmašili početnike u nalaženju većine, ali ne i svih vrsta
informacija. Dokazano je da su eksperti uvelike nadmašili početnike u rezultatima, i onako kako se i pretpostavljalo,
po svim pitanjima. Negativna strana ovakvoga testa je pretjerana „skriptiranost“ i premalo „prirodnog“. Primjerice,
neki eksperti nisu znali što točno trebaju činiti jer nisu dobili konkretne zadatke osim onih da prouče procedure i
funkcije u programu. Tako su neki razmišljali o nekakvoj modifikaciji programa i ispravljanju njegovih bugova.

Zaključak: glavni nedostatak programera početnika posjedovanje manje programskog znanja i možda čak
nepostojanje vještina potrebnih za razvijanje ekspertovih reprezentacija, posebno vještina u obavljanju simboličkog
izvršavanja.

23
4.1.4 Moj program je točan ali ne radi (Ginat)
Prezentirani podaci potječu iz 2003. a osvjetljavaju osnovne primjere dizajna te proceduralne aspekte programiranja.
Istraživanje je provedeno kroz laboratorijske vježbe Java programiranja.

Programeri početnici
Literatura o početnicima u programiranju je osebujna i raznolika, a tema je uvijek usporedba početnika i eksperata.
Eksperti ne pružaju puno potpore novim programerima. Od veće važnosti za učenje prvog programskog jezika može
biti distinkcija uspješnih i manje uspješnih početnika.

Što karakterizira uspješne i manje uspješne početnike? Robins, Rountree & Rountree (2003.) smatraju da odgovor na
ovo pitanje zahtjeva eksplicitno ustredotočavnje na predznanje, na njihove strategije i mentalne modele.

Perkins i ostali smatraju da postoje različite vrste stilova novih programera. Podijelili su ih na:
- MOVERS (pokretači) – koji eksperimentiraju, mijenjaju kodove, uspješno koriste povratne informacijeo greškama
i imaju potencijala za rješavanje problema i napredovanje
- STOPPERS (stoperi)– koji su nešto neuspješniji pri rješavanju problema. Iz različitih razloga idu u krivom smjeru
- TINKERS (ekstremni pokretači) – imaju male šanse za napredovanje

Metoda
Istraživanje je bazirano na COMP103, uvodni kolegij (s prosječnom prolaznošću od oko 70%) koji je namjenjen
poučavanju Java programiranja, a sastoji se od 26 petminutnih lekcija i 25 dvosatnih laboratorijskih vježbi. Svaki LAB
uvodi nekoliko posebnih sastanaka od 40 studenata koji izvršavaju zadaće za Lab, a sve se bilježi u radnu knjigu.
Demonstratori su dostupni kad god student zatraži pomoć.

Rezultati
Za oko 250 studenata u preko 25 lab-ova zabilježeno je 11240 problemskih brojeva. Svaki problem uključuje lab
session, bilješke demonstratora te studenata.

Koliko se često javlja svaki problem?


- P6: OSNOVNI MEHANIZMI. Problemi s tehničkim detaljima. Konzole, polukolone, tipfeleri, nepravilno pisanje
riječi. Konvecije Java imenovnja fileova. Formatiranje izlaza, urednost, razmaci, komentari.
Osim ovog, često se javljaju problemi:
- P3: ZASTOJ PRI DIZANJU PROGRAMA. Rješenje se ne može primjenit u algoritmu ili se algoritam ne može
primjeniti u programu.
- P4: PROBLEMI S OSNOVNOM STRUKTUROM. Problemi na strukturalnim razinama (klasa/objekt/major), oni
imaju općeniti dizajn i klase, ali osnovni strukturalni detalji su loši. Zbrka s lokalnim varjablama. Osnovni problemi
s kreiranjem i korištenjem instanci objekata.
- P2: RAZUMIJEVANJE TEME. Problemi nerazumijevanja lab vježbi / tema ili njihovih rješenja, tj. bitan je problem, a
ne ono što program treba raditi.
Sljedeći po učestalosti važni problemi su:
- P16: MATRICE(array)
- P13: TOK PODATAKA I METODE VODEĆEG MEHANIZMA
- P8: PETLJE
- P24: KONSTRUKTORI
- P7: KONTROLA TOKA

Poznato je da za ove specifične probleme proceduralni / algoritamski aspekti Jave uzrokuju više problema nego OO
aspekti. Nizovi i petlje se češće pronalaze u literaturi kao djelomična problematika, čak i u čisto proceduralnim jezicima.
Jedini pravi OO problem u ovoj grupi su konstruktori.

4.1.5 Ironcode
Bitna vještina koju programeri početnici moraju razviti i savladati jest pisanje točnog koda prvi put. Nažalost, ogroman
porast brzine procesora skratio je krug

uredi-sastavi-pokreni do te mjere da se studenti vrlo često previše oslanjaju na testiranje. Često studenti odabiru
iskušati djeliće koda, odnosno hack, radije nego pomno stvarati komadić koda. Ironcode je bitan da bi razvili vještinu
koju nazivamo „promisli dvaput, kodiraj jednom programiranje“ (think-twice, code-once programming).

24
Miskoncepcije o ispravnosti i efikasnosti programa
U mnogim slučajevima miskoncepcije su konzistentne, sustavne, temelje se na nekim modifikacijama ispravnog znanja,
te su stabilne u pokušajima da ih se promjeni, nastavnici bi trebali tražiti miskoncepcije i pomoći učenicima da ih
isprave, tako da riješe njihov izvor.

Nastavnici trebaju biti svjesni učenikovog načina razmišljanja i njihovih mentalnih procesa, steći vještine za otkrivanje
alternativnih koncepcija , te trebaju prepoznati i koristiti pedagoške alate za rješavanje ovih koncepcija (interakcija
učenik-učitelj, dijagnostičke vježbe i greške i pogreške).

Nastavnici računalne znanosti koji su početnici u predavanju se suočavaju s problemima pri stjecanju pojma
alternativnih koncepcija. Naime, suočavaju se s poteškoćama u:

- razumijevanju kako ljudi ne razumiju teme koje oni doživljavaju kao trivijalne
- spuštanju razine razumijevanja na onu učenikovu budući je njihovo znanje predmetnog područja naprednije
- „ulaženju u glavu“ nekom drugom, jer nisu stekli iskustvo potrebno za obavljanje takvih zadataka

Te poteškoće se mogu objasniti s Fullerovim (1973.) modelom, koji razlikuje tri razvojne faze iskustva nastavnika :
faza o samom sebi, faza o zadacima i faza utjecaja. Dok su iskusni učitelji obično u trećoj fazi te su zabrinuti pitanjima
povezanim sa učenicima, koncentrirajući se na ono što njihovi učenici misle, osjećaju i razumiju, novi nastavnici su
uglavnom u prvoj fazi, koja se bavi uglavnom s preživljavanjem, npr. kako držati razred tihim, kako dovršiti nastavni
plan i program na vrijeme i kako bi bili sigurni da će biti u mogućnosti dati točne odgovore na pitanja učenika. Fuller
je otkrio da je prijelaz iz faze usmjerene prema sebi u fazu usmjerenu prema učeniku funkcija iskustva; što je učitelj
iskusniji, bolje su šanse da se oslobodi pitanja opstanka i usredotoči se na učenikovo razmišljanje i ponašanje. Bents
i Bents (1990.) također prepoznaju prijelaz iz učitelja početnikau stručnjaka zamjenom pozornosti centriranom na
učitelja sa pozornošću prema učeniku.

Pedagoški alati za alternativne koncepte - klinicki intervju, dijagnosticki testovi, analiza pogrešaka
Interakcija učenik-učitelj: Česta pretpostavka koju ima novi nastavnik računalne znanosti je da bi učenici trebali odmah
odgovoriti na pitanja i njihov problem treba riješiti odmah. Stoga mnogi nastavnici imaju tendenciju popraviti grešku
u učenikovom načinu razmišljanja čim je prepoznaju. Nastavnici se međutim trebaju oduprijeti tome i slušati učenike
pažljivo prije nego što počnu potragu za korektivnim nastavnim akcijama. Ovaj pristup je sličan očekivanom ponašanju
liječnika, npr. liječnik neće predložiti lijek prije nego što pregleda pacijenta, razumije njegov problem i dovrši dijagnozu.

Dijagnostičke vježbe: Učitelj može učeniku postaviti niz pitanja čiji je cilj otkrivanje učenikovih alternativnih koncepcija.
Metaforički, učitelj može razviti niz testova da otkrije učenikove kognitivne greške (u cilju provođenja pedagoške
intervencije). Važno je prepoznati grešku s učenikove i nastavnikove perspektive, konkretno, učenik mora prepoznati
greške da bi ih mogao ispraviti te modificirati svoj kognitivni model.

Greške i zablude (Errors and mistakes) kao prilika za učenje i poboljšanje razumijevanja: Samo postojanje grešaka se
mora uvidjeti kako u razredu računalne znanosti tako i u MTCS tečaju. To se može učiniti pomoću predočenja
uobičajenih pogrešaka učeniku i raspravom istih, pričanjem o greškama koje su učenici počinili u pisanim testovima, i
najvažnije, poticanjem učenika da shvate pogreške kao neizbježne pozitivne pojave koje čine priliku učiti nove ideje i
poboljšati sadašnje razumijevanje.
Primjer 1 – miskoncepcija o varijablama: Primjer 2 – Napišite program koji upisuje bilo kojih 35 brojeva i ispisuje pozitivne brojeve.

Ukoliko primjetimo miskoncepcije najbolje se koristiti nekom vrstom diskusije, bilo to u obliku intervjua ili razredne
rasprave. Cilj diskusije je dati do znanja učeniku koje su to njegove miskoncepcije, ali isto tako na primjeru jednog
učenika prikazati moguće miskoncepcije cijelom razredu. Iako ne postoje testovi za pronalazak miskoncepcija, možemo
se koristiti pitanjima tj. nekakav oblik klopke ili trik pitanja kako bi provjerili postoji li neki nama već poznat oblik
miskoncepcije kod učenika.

25
4.2.1 Učinkovitost algoritama – miskoncepcije
Istraživači: Gal-Ezer i Zur
Istraživanja su motivirana određivanjem načina na koji studenti shvaćaju pojam učinkovitosti. Glavna pretpostavka
bila je da studentova percepcija pojma učinkovitost algoritma nije u skladu sa definicijom učinkovitosti u računalnoj
znanosti. Program je učinkovit s obzirom na utrošene resurse - vrijeme, procesor, disk, memoriju.

Studentove percepcije su sljedeće:


- Kraći program (broj linija koda) je učinkovitiji (manje linija = brži program)
- Dva programa koji sadrže iste izraze su jednako učinkoviti čak i ako im je redoslijed izjava drugačiji
- Što ima manje varijabli to je program učinkovitiji (brže se izvodi)
- Ako su dva programa ostvarila isti zadatak oni su jednako učinkoviti

Ispitivali su i u kojoj su mjeri učenici 10. i 1. razreda razumjeli učinkovitost i do koje su se mjere pojavile značajne
promjene u njihovoj percepciji nakon što su proučavali učinkovitost. Jedno moguće objašnjenje je da su učenici usvojili
pravilo „više A, više B“ iz drugih znanosti (npr. Matematike).

Jedan od načina da se spriječe ili isprave takve zablude može biti neizravna intervencija.

Kako bi se poboljšalo učenikovo znanje trebalo bi biti više primjera algoritama koji rješavaju isti problem, ali se razlikuju
u njihovoj učinkovitosti.

4.2.2 Stavovi koji ometaju učenje


Jedan primjer pogrešnog vjerovanja koji ometa učenje je potvrda pristranosti, tj. sklonosti ljudi da testiraju
pretpostavku radije sa podacima koji potvrđuju nego pobijaju hipotezu.

Jedan od načina da se smanji potvrda pristranosti jest da se rade potpunije specifikacije problema. Dva druga prijedloga
su bolja edukacija o vrijednostima negativnih testova, te standardi koji zahtjevaju da svaki pozitivan test bude
„uravnotežen“ sa negativnim testom.

Prethodno obrazovanje može također navesti studenta u neproduktivne smjerove. Hoadley, Linn, Mann i Clancy su
1996. su istraživali sklonost studenata da ponovno koriste prethodno stečeno znanje ili razvijeni kod. Uvjerenja oko
ponovnog korištenja koda objašnjavaju mnoge neuspjehe ponovnog korištenja promatranog u istraživanju: studenti
koji su manje skloni ka ponovnom korištenju navode poteškoću razumijevanja tuđeg koda, vlastita loša sjećanja i
vjerovanje da bi ponovno korištenje koda bio plagijat.

Fleury je u najopsežnijem istraživanju ovakvog tipa otkrila da početnici nastoje izbjeći složenost, dok je stručnjacima
cilj upravljati sa složenošću. Nekoliko primjera tih razlika:

- Čitanje koda – studenti (nizovi čine sadržaj programa teškim za čitanje), eksperti (takvi zaspisi pomažu u traženju
grešaka, zagovaraju korištenje takvih struktura podataka)
- Debugging – studenti (neophodno za pronalazak greške), eksperti (obavezan i iscrpan dio kod testiranja
programa, razumijevanje programa je nužan dio debagiranja i testiranja)
- Održavanje – studenti (dio akademskih vježvi), eksperti (i nadopuna je u skladu s potrebama stvarnog svijeta)

Fleury je istaknula važnost nastave i aktivnih kolegija u borbi protiv ove pristranosti. Konkretno, predložila je više vježbi
u čitanju koda, kako bi upoznala studente s prednostima tehnika složenosti upravljanja.

4.2.3 Teorija popravka i teorija usvajajućeg razmišljanja


Prve zablude – se odnose na rad koji uključuje napore Browna, Burtona i VanLehna da izgrade dijagnostički model
studentskog učenja oduzimanja. Model predstavlja operacije oduzimanja kao procedure, te predlaže da se male greške
u procedurama koje su nastale kao posljedica oduzimanja nazovu „bugovi“. Model pruža mehanizam koji objašnjava
zašto student čini greške, umjesto da jednostavno prepoznaje pogrešku.

To je dovelo do teorije o bug generaciji koju Brown i VanLehn nazivaju „teorija popravka“. Teorija je imala nekoliko
komponenti: formalni prikaz ispravnih postupaka; skup „načela za brisanje“ koji predstavljaju pogrešno razumijevanje
primjera i zaboravljanja što dovodi do nepotpunih procedura; praćenje koje otkriva zastoj kad se primjenjuje
nepotpuna procedura; set prijedloga za popravke koji predlažu koji popravak koristiti kada dođe do zastoja i set opaski
kako bi se filtrirali pojedini popravci.

26
Teorija je dosta kritizirana zbog propusta koji se odnose na objašnjavanje raznih empirijskih (iskustvenih) fenomena:
nestabilnost greške i krhko znanje; sklonost studenata da istovremeno zadržavaju proturječne modele; shvaćanje i
značenje fenomena u stvarnom svijetu.

Taylor je uzela nešto drukčiji prikaz koji se zasniva na „usvajajućem“ razmišljanju kao važnoj strategiji za učenje.
Usvajajući zaključak pronalazi hipotezu koja objašnjava situaciju, utvrdi da ne postoji druga hipoteza koja objašnjava
to bolje i usvoji hipotezu. Objašnjenja dobivena na ovaj način ponekad će prekriti studentsko nerazumijevanje ali kada
se generaliziraju stvaraju još veće zabune. Komplikaciju stvara to što početnici vrlo vjerojatno neće testirati svoje
hipoteze. Međutim, kako početnici nemaju određeno predznanje oni moraju koristiti usvajajuću strategiju.

4.2.4 Pre- ili pod-generaliziranja kao uzrok zabluda


Neki primjeri zabluda u programiranju koji proizlaze iz neprikladnog prijenosa pre-generaliziranja ili pod-
generaliziranja znanja iz drugih područja:

Engleski jezik
Jezični prijenos je jedan od izvora konfuzije: pojmovi ne znače uvijek isto u engleskom jeziku kao u programiranju.
Radeći sa studentima na učenju Pascala, Soloway i njegovi kolege primijetili su nepodudarnosti između engleskog i
programskog riječnika.

- Riječ „while“ na engleskom jeziku podrazumijeva kontinuirano aktivno ispitivanje, kao u „while the highway stays
along the coast, keep following it north.“ U Pascalu, while petlja čini jedno ispitivanje po iteraciji. Student koji
identificira while u Pascalu sa „while“ u stvarnom životu može očekivati da se petlja završi u trenutku kada je
ispitivanje izraza zadovoljeno bez izvršavanja koda unutar petlje.
- Riječ „then“ u engleskom sugerira vremenski slijed. Primjenjujući ovo značenje na Pascalu, jedan od ispitanika je
izumio repeat ... until ... then ... konstruirano tako da koristi ključnu riječ "then" za određivanje izjava koje će se
izvršiti nakon što petlja završi izvođenja.
- Pea je primjetio sličnu zbrku s rječju „if“. Programeri početnici u BASICU pretpostavljaju da „if“ (ako) izjava
ustvari znači „waiting for“ (čeka da) njihov test odnosno uvjet bude zadovoljen; kada se dogodi – again (opet),
uvjet će se konstantno provjeravati i zatim će se then dio izvršiti.

Matematička oznaka
Još jedan zajednički izvor pre-generaliziranja je algebarska oznaka. Nekoliko istraživača su promatrali zbunjenost
početnika sa izrazom a = a + 1 u Fortranu ili jeziku baziranom na C-u.

Prethodna iskustva u programiranju


Rano izlaganje različitim programskim jezicima može prouzročiti pregeneraliziranje (prekomjerno generaliziranje).
Npr. u nekim jezicima se mogu dvije liste usporediti sa „equal?“ dok u jezicima kao C trebamo liste uspoređivati
element po element „==“. Studenti znaju prenjeti logiku iz C jezika tako da elemente lista uspoređuju preko „equal?“.

Pregeneraliziranje iz primjera
Postoje brojni izvještaji o tome kako studenti stvaraju netočna pravila pregeneralizirajući primjere koje su vidjeli. Davis
je vodio razgovore sa studentima u uvodnom LISP tečaju te je predložio nekoliko takvih pravila: svi argumenti funkcije,
argumenti atomi i numerički argumenti moraju biti u zatvorenim zagradama;

Fleury-ev popis pregeneraliziranih pravila uključuje sljedeća pravila, za koja studenti vjerojatno nisu vidjeli nikakve
protuprimjere: dvije klase ne mogu imati imena metoda koja se podudaraju, argumenti metode moraju biti brojevi,
točka operator samo može biti primjenjena na metode a ne instance ili varijable klase.

Izmjena točnih pravila


Učenici točnim pravilima mijenjaju kontekst ili ključne značajke.

Analogija
Analogija se također pogrešno primjenjuje. Du Boulay 1989. navodi primjer: „Varijabla je kao kutija“. Kutija može
sadržavati više od jedne stvari; neki studenti to misle također i za varijablu.

27
4.2.5 Zbunjujući računalni model kao uzrok zabluda (Kolikant)
Viši programski jezik nudi procedure i apstraktne podatke koji ga čine boljim alatom za rješavanje problema ali koji
skriva svojstva računala od korisnika. Te se apstrakcije, pogotovo ako nemaju nikakvih poveznica sa stvarnim životom
mogu činiti prilično zagonetne početnicima.

Npr. Input (odakle dolaze ulazni podatci), konstruktori/destruktori (Studenti su vjerovali da pozivanje metode koja
postavlja vrijednosti varijabli u instanci objekta može zamijeniti poziv konstruktora, ignorirajući kasniju odgovornost
za dodjeljivanje prostora za pohranu objekta), rekurzija…

4.2.6 Tehnike za oslobadanje miskoncepcija


Kao što je već spomenuto, zablude proizlaze iz studentskih nastojanja da povežu znanja. Samo suprostavljanje
studentskih zabluda sa proturječnim dokazima vjerojatno neće uspjeti. Eylon i Linn napominju da studenti mogu
ignorirati kontradikcije njihovim idejama ili modificirati primjedbe kako bi branili svoje stavove.

Sučeljavanje je također problematično kao nastavni model. Za razliku od nepristranijeg pristupa raspravama gdje se
studenti potiču da ocjenjuju svoje koncepcije u odnosu na složenost fenomena ili problema, sučeljavanje u suštini
negira vrijednost studentske ideje.

Bolje strategije potiču integraciju znanja, dinamičan proces povezivanja, spajanja, razlikovanja, organiziranja i
strukturiranja ideja o određenom konceptu. Tehnike za to uključuju premošćivanje analogija, samoobjašnjavanje i
grupno učenje putem rasprave i eksperimentiranja. Linn predlaže okvir za nastavni plan koji odabire modele koji se
temelje na studentskim intuicijama, potiče integraciju znanja i pomaže studentima da sebe vide kao kontinuirano
usavršavanje znanstvenih ideja. Primjeri kako bi se to moglo napraviti uključuju izradu mišljenja vidljivog kroz niz
mehanizama, potičući autonomno učenje te pružanje socijalne potpore za učenje. Linn i suradnici također opisuju
korištenje osnovnih slučajeva kao pomoći pri integraciji znanja; ti slučajevi predstavljaju važne usporedbe znanstvenog
zaključivanja koje omogućuju studentima da koriste svoje istraživačke vještine u reorganizaciji svojih ideja.

EROSI ("Explicit Representer Of Subprogram Invocations")


George je 2000. stvorio okruženje pod nazivom EROSI koji pruža dijagramski trag Pascal programa. Kad se podprogram
poziva prikazuje se novi okvir koji sadrži kod podprograma. EROSI poboljšava učenje „kopija“ rekurzivnog modela koje
su stručnjaci napravili. Međutim, kada su ispitanici koji su koristili EROSI bili prisiljeni da rade bez njega kako bi
razumjeli rekurzivni kod, mnogi od njih su se vratili na pogrešan model petlje.

4.2.7 Dijagnoza miskoncepcija pocetnika kod instrukcija u BASIC-u


U procesu učenja programskog jezika, programeri početnici razvijaju mentalni model za taj jezik koji se odnosi na
njegovo shvaćanje nevidljivih operacija nad informacijama koje se događaju unutar računala između unosa i prikaza.

Ovaj rad istražuje ideju da učenje BASIC-a uključuje više od stjecanja određenih činjenica, pravila i vještina. Programeri
početnici također razvijaju mentalne modele u procesu učenja osnova BASIC-a. Sugerira se da programeri razvijaju
„konceptualni model“ sustava ovisno o tome kako su ga naučili koristiti. Definiran je stečeni konceptualni model kao
znanje o tome kako sustav funkcionira. Korisnički model možda neće biti točan tj. neće vjerno prikazati ono što se
događa unutar računala. Primjer zabluda:

- INPUT: Korisnici imaju poteškoća u koncipiranju gdje se podaci unose i kako se pohranjuju u memoriju. Mnogi
korisnici ne razumiju kako računalo čeka na unos s tipkovnice. Glavna zabluda je da INPUT A znači da se znak A
unosi i pohranjuje u memoriju.
- READ DATA: Korisnici imaju poteškoća u zamišljanju gdje će se podaci pročitati i kako se pohranjuju u memorijski
prostor. Npr. glavna zabluda je da „20 DATA 80, 90, 99“ znači da su brojevi spremljeni u memoriju ili ispisani na
ekranu. Drugi primjer je da „30 READ A“ znači pronađi vrijednost A i ispiši njenu vrijednost na ekranu.
- GOTO: Glavni problem sa GOTO izjavom je da korisnici ne razumiju što će se dogoditi nakon što izvršavanje
programa prijeđe na željenu liniju. Kod uvjetne GOTO naredbe korisnici imaju poteškoća u razumijevanju što
napraviti ako je uvjet neispunjen (false). Zabluda uključuje mišljenje da „60 GOTO 30“ znači pronađi broj 30
umjesto prijeđi na liniju 30. Za slučaj ako imamo „IF A < B GOTO 99“, korisnici to shvaćaju kao prijeđi na liniju 99
bez ispitivanja uvjeta.
- LET: Korisnike zbunjuje da li izjava LET rješava ili sprema jednadžbu, tj. miješaju znak = sa jednakošću. Glavna
zabluda za „LET A = B + 1“ ili „LET D = 0“ je mišljenje da je jednadžba pohranjena u memoriji.
- PRINT: Korisnike zbunjuje PRINT C i PRINT „C“.

28
4.2.8 Studentski problemi s objektno orijentiranim programiranjem i izbjegavanje objektnih zabluda
Otkriveno je da studenti imaju tendenciju kreiranja programa koji imaju:

- Centraliziranu kontrolu: jedan glavni objekt čini sve ili većinu odluka.
- Globalni ili centraliziranu komunikaciju: svi objekti komuniciraju sa svim drugim objektima, ili sve poruke u
studentskim klasama imaju glavni objekt kao primatelja ili pošiljatelja.

Projekti koji su osmišljeni na ovaj način daju malu mogućnost ponovne iskoristivosti jer se sve kreirane klase mogu
koristiti za točno određenu svrhu zbog toga što su sve kontrole i komunikacija centralizirani za određenu svrhu.

Izbjegavanje miješanja objekt/varijabla


Postoji opasnost da neki studenti, s prethodnim iskustvom proceduralnog programiranja, poistovjećuju objekte i
varijable i na taj način stvaraju zablude. Ova zabluda se relativno lako može izbjeći jednostavnim primjerom korištenja
objekata u kojima se koristi više od jedne instance varijable.

Mnogi početni nastavni primjeri imaju klasu u kojoj su sadržane sve instance varijable. Neki studenti mogu pod
utjecajem takvih primjera razviti zablude da se sve istance varijabli objekta određene klase moraju odnositi na objekte
jedne klase. Zbog toga početni primjeri trebaju sadržavati najmanje dvije instance varijabli koje se odnose na objekte
različitih klasa.

Objekti nisu jednostavni zapisi


Mnogi studenti i neki profesori, stvarajući nastavne primjere, se fokusiraju na primjere gdje se objekt u osnovi ponaša
kao baza podataka ili skladište neaktivnih podataka. Slučaj može biti klasa glazbenog CD-a, u kojem svaki objekt
predstavlja glazbeni CD i pohranjuje informacije o naslovu, izvođaču, pjesmama itd. Ovo prenaglašava podatkovni
aspekt objekta na štetu bihevioralnog aspekta. Praktična opasnost ovoga je da studenti mogu doći do zaključka da su
svi objekti jednostavni neaktivni zapisi. Također, mogu ne razumijeti da ponašanje nekih objekata značajno ovisi o
njihovom stanju. Ova zabluda se može izbjeći korištenjem uvodnih objektnih primjera sa izrazitim svojstvom klase gdje
se odgovor na poruku bitno mijenja ovisno o stanju objekta.

Rad s metodama
Vrsta koda kojeg studenti vide u prvim metodama može bitno utjecati na njihovo razmišljanje. To osobito dolazi do
izražaja kada se izvodi nastava o uvodu u programiranje. Studenti mogu steći dojam da se u metodama isključivo
obavlja zadatak, a ne i da metoda može prenositi poruke.

Primjećeno je da čak i iskusni studenti od takvih primjera steknu dojam da ta zabluda može dovesti do prevelikog
oslanjanja na proceduralni stil programiranja. Da bi se izbjegao ovaj problem treba koristiti primjere gdje vrijednosti
instanci varijabli nisu nepromjenjivi objekti. Jednostavan nastavni primjer koji izbjegava ovaj problem može biti
poduzeće koje kupuje i prodaje različite proizvode koji sami po sebi imaju stanje.

Objekt ili klasa


Kad se predstavlja niz primjera u ranim fazama lako je pronaći jedan primjer u kojim se upotrebljava samo jedna
instanca klase. Studenati su zbunjeni s objektima i njihovim instancama. U nekim programskim jezicima razlika i ne
postoji. Kako ne bi poticali ovu zabludu, dobra praksa je koristiti primjere u kojima ima nekoliko instanci od svake klase.

Identitet/atribut zabluda
Studente, koji imaju prethodnog iskustva s bazama podataka, ime instance varijable može dovesti do zablude. Do
zabune dolazi zbog poistovjećivanja imena istance varijable s identitetom objekta ili s varijablom koja se odnosi na
objekt. Ove zabune mogu dovesti do sljedećih zabluda:

- samo jedna varijabla može referencirati na određeni objekt u određenom trenutku;


- jednom kada se varijabla referencira na određeni objekt uvijek će pokazivati na taj objekt;
- varijabla koja se odnosi na objekt jedinstveno je određena za cijelo vrijeme;
- ako postoje dvije različite varijable, one se moraju odnositi na dva različita objekta;
- objekt se može pitati koje sve varijable referenciraju na njega;
- dva objekta iste klase s istim stanjem su isti objekti;
- dva objekta koji imaju isto ime atributa su isti objekti.

29
Umjesto da raspravljaju ili govore o zabludama, najbolji pristup je odmah pustiti studente da ekperimentiraju na
primjerima kao što su:

Višestruko dodjeljivanje: zadati studentima da dodijele jedan objekt trima varijablama u isto vrijeme. Pokazati da se
svaka od navedenih varijabli referencira na isti objekt pokazujući da ako se stanje promijenilo, to se može provjeriti
preko navedenih varijebli.

Ponovno dodjeljivanje: zadati studentima da dodijele različite objekte jednoj varijabli i pokazati slanjem poruka i
provjerom rezultata da varijable referenciraju različitom objektu, dok druge varijable pokazuju na svoj izvorni objekt.

Zamjena: zamijeniti varijable koje pokazuju na dva objekta koristeći pomoćnu varijablu.

Instance varijable s istom vrijednošću: pokazati da dvije različite instance mogu imati istu vrijednost za iste instance
varijable.

Istraživanja vještine programiranja i tracinga


Obično se prvo studentima pokažu primjeri gotovih programa kako bi shvatili opće principe programiranja. Pritom se
podrazumijeva da studenti mogu čitati i razumjeti kod.

Perkins tvrdi da je upravo čitanje koda važna vještina za pronalaženje grešaka i zato je sposobnost čitanja i procjene
koda važna za pisanje koda.

Soloway kaže da vješti programeri često na apstraktnom nivou poboljšavaju svoje programe kako bi predvidjeli
nepoželjne interakcije sa sustavom do kojih bi moglo doći. On naglašava važnost poučavanja studenata takvim
simulacijskim strategijama, a ne korištenje zastarjelih metoda iz vremena bušenih kartica.

Widenbeck je otkrio da su programeri-stručnjaci brži od programera-početnika u aktivnostima poput identifikacije


pogreške u sintaksi i procjenjivanja ispravnosti petlji i to zbog toga jer su kod njih ove radnje automatizirane i ne
zahtijevaju preveliku mentalnu koncentraciju. Kao posljedicu ovog otkrića on predlaže da studenti kontinuirano
vježbaju osnove poput razumijevanja i praćenja koda kako bi s vremenom ove radnje bile automatizirane i tada bi se
mozak mogao koncentrirati samo na rješavanje problema, bez zamaranja osnovama.

Perkins naglašava važnost sposobnosti čitanja što kod uistinu radi, a ne što mi mislimo da bi trebao raditi čim ga prvi
put žurno pregledamo. Ovo je važna vještina za pronalaženje ili eliminaciju grešaka prilikom pisanja koda. Ono što se
želi postići je da studenti prakticiraju rasuđivanje na višem nivou tj. korištenje shema umjesto ručnog izvršavanja koda.
Postoje određena pravila koja programeri koriste prilikom pisanja programa i koja primjenjuju prilikom čitanja
programa. Tako npr. varijablama treba davati imena koja imaju određeno značenje. To nam može puno pomoći kod
razumijevanja koda koji je napisao neki drugi programer. Programeri često koriste svoje znanje o stvarnom problemu
prilikom čitanja koda.

Zaključak je da studente treba naučiti osnovama pa tek onda prijeći na viši nivo tj. rješavanje problema. Mnogim
studentima nedostaju znanja i vještine koje su preduvjet za rješavanje problema. Ovo se odnosi prvenstveno na
sposobnosti čitanja koda, a ne pisanja. Mnogi ne znaju sustavno analizirati kod.

30
Tehnike rješavanja problema i uloga varijabli
Rješavanje problema je jedna od centralni aktivnosti koju obavljaju računalni znanstvenici kao i oni koji tek uče
računalnu znanost. Međutim, oni koji uče računalnu znanost često se suočavaju s poteškoćama prilikom analize
problema i konstruiranja rješenja. Stoga je važno da nastavnici računalne znanosti budu svjesni tih poteškoća i usvoje
prikladne pedagoške metode kojima mogu pomoći učenicima da steknu iskustvo u korištenju ovih vještina. Stoga je
ovo poglavlje posvećeno upravo tome. Predstavljeno je nekoliko strategija rješavanja problema zajedno s prikladnim
aktivnostima.

Osnovni proces rješavanja problema započinje skiciranjem zahtijeva problema, a završava skicom rješenja koje je, u
nekim slučajevima, izraženo slijedom koraka koji rješavaju problem. U računalnoj znanosti, u mnogim slučajevima,
algoritam je napisan u programskom jeziku te se testira prilikom izvršavanja koda.
Teške faze nalaze se između: prijelaza razumijevanja problema i njegovog rješenja. Te srednje faze mogu se promatrati
kao proces otkrivanja, pa se procesi rješavanja problema ponekad tretiraju kao kreativni procesi (umjetnost).
TEHNIKE RJEŠAVANJE PROBLEMA SU: apstrakcija, analogija, ”brainstorming”, podijeli pa vladaj, provjeravanje
hipoteze, redukcija, istraživanje, analiza uzroka i tehnika pokušaj – pogreška.
Faze rješavanja problema:
1. Analiza problema - razumijevanja problema. Ako netko ne razumije problem ne može ga riješiti.
2. Razmatranje alternative - alternativni načini rješavanja problema.
3. Odabir pristupa - odabir prikladnog načina rješavanja problema.
4. Dekompozicija problema - podijeliti problem na manje dijelove, tj. podzadatke.
5. Pisanje algoritma - pisanje algoritma prema navedenim podzadacima.
6. Ispravnost - provjeravanje ispravnosti algoritma.
7. Efikasnost - odrediti efikasnost algoritma.
8. Razmišljanje - analiza prethodnih procesa, što se može popraviti u budućim procesima rješavanja problema.

Razumijevanje problema
Razumijevanje problema je prva faza rješavanja problema koja dovodi do određivanja karakteristika problema. Može
se temeljiti na analogijama sa sličnim problemima i ponekad dovodi do generalizacije. U slučaju algoritamskih
problema, ova faza može početi prepoznavanjem ulaza i odabirom izlaza. Identifikacija ulaza zapravo ukazuje na to da
se problem razumio. Svaki ulaz obično se tretira u različitim podzadacima ili barem onda kada se provjerava ispravnost
algoritma. Potrebno je analizirati i ekstremne slučajeve: ponekad su uključeni u određenu kategoriju, a u drugim
slučajevima drugačije se tretiraju.

Oblikovanje rješenja
Neke od glavnih poteškoća s kojima se susreću novi nastavnici, kada se bave rješavanjem problema, su rane faze
oblikovanja rješenja.

- Definiranje varijabli – Ispitivanje zadanih ulaza i korespondentnih izlaza pojašnjava problem onome tko ga rješava.
Cilj odabira varijabli je da studenti shvate da je razmatranje varijabli potrebnih za rješavanje zadanog problema
ključna faza u procesu rješavanja problema budući da daje smjer implementacije rješenja. Uloga varijable određuje
se prema dinamičnom karakteru varijable, određuje se prema vrijednostima koje varijabla poprima i kako se nove
vrijednosti dodijeljene varijabli odnose prema drugim varijablama. Na primjer, u ulozi brojača, varijabli je
dodijeljen niz vrijednosti unaprijed poznat. Koncept uloge nije u vezi s time kako se varijabla koristi u programu,
brojač je brojač, bez obzira da li se koristi kao indeks elementa polja ili računa broj ulaznih vrijednosti.
- Bistrenje korak po korak – Glavna svrha ove metodologije je da prvo dobijemo pregled strukture problema i odnose
između njegovih dijelova, a nakon toga da odredimo specifična pitanja vezana za implementaciju raznih dijelova.
Ovo je top-down metodologija jer se odvija od općeg prema specifičnom. Alternativni pristup je bottom-up
metodologija koja se odvija od specifičnog prema općem. U oba slučaja, problem podijelimo na manje probleme;
glavna razlika leži u smjeru mentalnih procesa koji vode proces izrade rješenja.

- Algoritamski uzorci – algoritamski uzorak apstraktni model algoritamskog procesa koji rješava određeni problem i
može se uskladiti ili mijenjati, a zatim integrirati u rješenje različitih problema. Muller i dr. tvrde da, kada su suočeni
s nepoznatim problemom, učenici često ne znaju kako početi rješavati problem i doživljavaju poteškoće u:
prepoznavanju sličnosti između problema i prenošenje ideja s prije riješenih probleme na nove i uočavanju biti

31
problema i određivanju njegovih komponenti i odnosa među njima. Stoga, u takvim slučajevima učenici često
iznova razviju rješenje, počevši od nule. Te poteškoće obično nisu rezultat nekih miskoncepcija, već mogu biti
posljedica loše organizacije algoritamskog znanja. Ovaj proces počinje s prepoznavanjem komponenti rješenja i
prepoznavanjem sličnih problema čije je rješenje već poznato. Zatim bi uzorak(ci) trebao/li biti modificiran/i za
rješenje trenutnog problem i integriran/i u rješenje. U većini slučajeva, potrebno je kombinirati različite uzorke za
razvoj potrebnog rješenja.
Provjeravanje rješenja
Nakon što je rješenje konstruirano, treba provjeriti njegovu ispravnost. Slično mnogim konceptima računalne znanosti,
provjeravanje ispravnosti rješenja ima i teorijske i tehničke aspekte. U srednjoj školi dovoljno je, u većini slučajeva,
ispitati ispravnost rješenja s tehničkog aspekta (s reprezentativnim ulazima), u nastavi naprednijih tema računalne
znanosti, ova rasprava treba se proširiti i uključiti i teorijske aspekte.
Jedna od povezanih aktivnosti s provjeravanjem rješenja je ispravljanje pogreški (eng. debugging). Prihvaćeno je da
proces ispravljanja pogrešaka može poboljšati učenikovo razumijevanje računalne znanosti. Ova tvrdnja temelji se na
činjenici da dok studenti razmišljaju o tome kako bi njihov program trebao biti testiran i ispravljen ako je potrebno, oni
zapravo razmišljaju o tome kako su implementirali koncepte računalne znanosti i razmišljaju o procesu programiranja
i odlukama koje su donijeli tijekom razvoja programa

Razmišljanje
Razmišljanje se odnosi na preispitivanje i analizu metoda prethodnih mentalnih procesa. Razmišljanje je važan alat u
procesu učenja općenito i kognitivnim procesima višeg reda, kao što je na primjer proces rješavanja problema.
Razmišljanje pruža učenicima priliku da učine korak natrag i razmišljaju o vlastitom razmišljanju i na taj način
poboljšavaju vještine rješavanja problema. Tijekom procesa rješavanja problema, razmišljanje se može odvijati u
različitim trenucima:

- Prije početka rješavanja problema: Nakon čitanja problema, prilikom planiranja pristupa rješavanja, dobro je
razmisliti o sličnim, prethodno riješenim problemima kako bi odredili relevantni algoritamski pristup, uzorak, itd.
- Tijekom rješavanja problema: Tijekom razvoja rješenja, razmišljanje se odnosi na inspekciju, kontrolu i nadzor. Na
primjer, kada se pojavi poteškoća ili kada se otkrije pogreška, dobro je razmisliti o izvoru. Schön (1983) naziva taj
proces razmišljanje u akciji.
- Nakon rješavanja problema: Kad je rješenje završeno, razmišljanjem procjenjujemo i ispitujemo učinkovitost
rješenja. Takvo razmišljanje omogućuje da izvučemo zaključke iz procesa rješavanja problema i da naučimo nešto
o odlukama donesenim tijekom njegove implementacije. Schön (1983) naziva taj proces razmišljanje o akciji.

- Primjer: problem 5 šešira, Napoleonovi kuhari, traženje sortiranih podataka u prstenu.


- http://web.studenti.math.pmf.unizg.hr/~kjurjak/3%20zatvorenika%20k.htm

32
Temeljna literatura CSE – Klasifikacija istraživanja
Što su dokazali u sigcse-u?
- rizični studenti su značajno bolji u CS1 ako su prvo prošli posebno osmišljeni pripremni kurs
- studenti su bolji na prvoj godini CS-a ako su pohađali blagi kurs radije iz matematike nego iz algebre i računa
- Moore i dr. su razvili instrument za mjerenje studentskog stava prema disciplini kompjuterske znanosti
- iskustvo zajedničkog učenja povećava učenje studenata i poboljšava stav studenata prema kursu
- žene dolaze na koledž s manjim kompjuterskim iskustvom i to ih statistički stavlja u zaostatak u CS-u
- dugogodišnji eksperiment upotrebe robota u CS1 zapravo značajno smanjuje studentske uspjehe na ispitu.

Vicki L. Almstrum – istraživači se nalaze u okolini gdje njihove kolege imaju stav da istraživanje obrazovanja nije pravo
istraživanja pa se stoga istraživači osjećaju nesigurno i izolirano što je osnovna prepreka koja sprječava istraživanje.

Mark Guzdial – poučavanje i učenje o računalima ne zahtijeva potpuno novi način obrazovanja stoga je teško izbjeći
„izmišljanje tople vode“

Orit Hazzan – smatra da kvalitativno umjesto kvantitativnog istraživanja može biti primjenjeno i u istraživanju
obrazovanja CS-a što bi značilo da bi imali raznovrsnije istraživačke metode

Marian Petre – U nedostatku vodeće teorije i metodologije mi posuđujemo istraživače metode iz drugih disciplina.

Područja CSE i najvažniji radovi


Postoje 4 jasna područja CSE (Fincher):
- Small-scale istraživanje jednog aspekta discipline ili prakse (nemaju teorijski zasnovano metodologijsko
stajalište, služe više za prenošenje iskustava, koriste se za bavljenje problemima iz stvarnih situacija)
- Istraživanje specifičnih mentalnih i konceptualnih vještina
- Istraživanja bazirana na tradiciji obrazovanja (Ovdje je cilj istražiti prirodu struktura znanja, usvajanje znanja i
načini na koji se mogu pospješiti. Više psihologijski aspekt.)
- Istraživanja motivirana korištenjem alata u CS poučavanju i učenju (zbog poboljšanja poučavanja)

Tipovi istraživanja
- SIGCSE (Special interest group on computer science education) sponzorira konferencije koje često prate
određena istraživanja
- ESP (Empirical study of programming) i PPIG (Psychology of Programming Interest Group ) se preklapaju sa
psihologijom i često primjenjuju kvantitativne i statističke metodološke pristupe
- BERA (British Educational Research Association), AERA (American Educational Research Association) su često
motivirane teorijom
- JERIC (Journal on Educational Resources in Computing) i ostale slične aktivnosti su vođene tehnologijom

Kategorije radova po njihovoj važnosti:


- Utjecajni – značajan doprinos polju, imaju utjecaj na buduće radove, otvaraju nove granice, nalaze se u važnoj
literaturi kao dobri primjeri tehnologije, teorije i sl.
- Poticajni – pomažu definirati problem ili pripremaju „pozornicu“ za novu temu u istraživanjima, služe kao
katalizatori, bude interes za područje, predstavljaju nove metode, prakse...
- Sinteze – analiziraju rad CER-a u jednom ili više aspekata, sažimaju bitne odrednice polja, ukazuju na uzorak
istraživanja.

Evaluating algorithm animations as learning aids - John Stasko


Ovo istraživanje usmjereno je na animacija algoritama čija je svrha pomoć studentima u učenju algoritama i struktura
podataka. Zbog apstraktne prirode ovih pojmova, istraživači su smatrali da će dinamičke vizualizacije uvelike pomoći
studentima. Voditelji studije su se odlučili na drukčiji način učenja (uz pomoć domaćih zadaća). Stoga su studentima
podijelili instrukcijski materijal (tekstualne opise sa slikama i dijagramima 1.grupa, tekstualne opise sa serijom
animacija 2. grupa) i pitanja na koja su studenti trebali odgovoriti u neograničenom vremenu.

Nađen je statistički značajan efekt za studente u grupi koji su vidjeli animacije, 20,5/26 naprema 16/26 točnih odgovora
u prvoj grupi. No primijetili su očitu razliku u atmosferi kod obiju grupa. Studenti koji nisu gledali animacije su bili
nervozniji i naglas komentirali koliko su teški algoritmi, dok je kod druge grupe stanje bilo puno opuštenije. Studije
poput ove pomažu edukatorima u boljem razumijevanju potencijala animacija.

33
Developing understanding from the ground up: case based learning - Mark Guzdial
Mjerili su čimbenike izomorfnih problema (slične strukture, slični sadržaj, ali u promijenjenom kontekstu). Koristili su
ankete, razgovore i usmjeravali grupe na učenje shvaćanja i motivacije u procesu učenja.

Jedna od studija je kako bolje podučiti paradigmu MVC. Koristili su izomorfne probleme za MVC na ispitima, ali su dani
problemi bili promijenjeni, strukture predavanja i oblici aktivnosti koji su bili traženi. Rezultati su bili nedosežni, jer
polovica razreda nije razumjela samu ideju. Tada su razvili novi pristup gdje su prvo napravili korisničko sučelje bez
MVC-a, a zatim uz pomoć komponenata iz MVC – strukture poboljšati svoje sučelje. Koristili su isti pristup nastavnik –
istraživač kod proučavanja tehnologija koje razvijaju. S tim pristupom su bolje razumjeli kako te tehnologije rade i kako
uskladiti razrede da što bolje iskoriste te tehnologije.

Jedan od projekata koji su radili po ovom pristupu je i STABLE (SmallTalk Apprenticeship Based Learning Enviroment)
projekt. Općenito, tu je bilo nekih 1200 web stranica za nekih 12 projekata. Projekti su predstavljeni u iznimno detaljnoj
formi gdje je svaki korak projekta predstavljen na 3-4 nivoa detalja, sve klase projekta imaju svoju stranicu, stranice
opisuju moguće probleme, strategije popravka, strukture programa i procese projekta. Sam STABLE je korišten
nekoliko semestara na predavanjima o objektno – orijentiranom programiranju, no studentima se to nije sviđalo. U
anketama ili razgovorima su rekli da STABLE ima lošu strukturu i da je vrlo težak za korištenje.

Research into low-level misconceptions about programming - Michael Lancy


U svom radu dao pregled nekih starijih radova kako bi istražio nekakve zabune i pogrešne stavove u studenata. Ovaj
rad otkriva da postoji dovoljno tema za istraživanje poput:

- organizacije sintakse – vrste grešaka u sintaksi koje studenti nauče kao takve
- pokazivač grešaka – jesu li rezultat gubitka detalja ili zabluda koje je student naučio u nekom ranijem kontekstu
- trenutno programiranje – koje modele studenti koriste i koje greške proizlaze iz toga
- funkcija čitanja – koje stvari studenti ne razumiju kod struktura podataka

Spominje se program BUGGY koji simulira zablude studenata. Testirali su ga na nastavnicima i učenicima 7. i 8. razreda
kako bi ustanovili koje to zablude imaju učenici. Ova vježba se dotakla nekoliko zanimljivih pedagoških briga :

- Dijagnoza – nastavnici griješe pri formiranju hipoteza koje imaju o učeničkim zabludama
- Rječnik – čak i kad netko zna u čemu je greška, kako će je moći objasniti učeniku koji ima problema?
- Obuka nastavnika – izvršenje pogrešaka koje se slučajno pojavljuju su često samo vrh greške koji je glavni
konceptualni problem za mnoge nastavnike

Elizabet Davis je radeći na Berkleyu obavljala razgovore sa 36 programera početnika kako bi istražila njihove moguće
zablude kod LISP evaluacijskog procesa. Posebno se fokusirala na uloge zagrada i navodnika u izražavanju evaluacije.
Studenti su radili kroz vježbe koje su uključivale stvaranje procedure koje su davale određene odgovore na zadane
probleme, te vrednovanje tih procedura. Davis je uočila niz grešaka koje su studenti radili.

Fleury se fokusirala na drugačiji skup studentskih grešaka, onih koji su napravljeni sa pogrešnim vjerovanjima ili
stavovima. U razgovoru s studentima došao je do nekih razlika između početnika i ekspertnih programera:

- Čitanje koda – studenti (nizovi čine sadržaj programa teškim), eksperti (takvi zaspisi pomažu u traženju grešaka)
- Debugging – studenti (neophodno za pronalazak greške), eksperti (obavezan i iscrpan dio kod testiranja prog.)
- Održavanje – studenti (dio akademskih vježvi), eksperti (i nadopuna je u skladu s potrebama stvarnog svijeta)

Collaboration with education departmens - Nell Dale


Fokusirali su svoju pažnju na ono što predstavlja dobro istraživanje u računarstvu, kako vrednovati uspjeh i neuspjeh i
kako dani rezultati mogu nastavnike učiniti boljima. Cilj ove grupe je biti podrška diplomiranim studentima. Neke od
aktivnosti koje radi ova grupa: pregledavaju radove za konferencije i novine, čitaju i razgovaraju o člancima vezanim
za CS ed. Istraživanje, daju novim diplomiranim studentima ulaz i podršku u njihovim istraživanja.

Cs education research: finding a community - Sally Fincher


Predavači imaju profesionalni interes u kvaliteti znanja koju studenti prime i imaju. Kada interes ide van same učionice,
radi istraživanja efikasnosti određenih tehnika i pristupa ili rada na razumijevanju postoji li jedna skupina uvjeta i
mogućnosti kao preduvjet za uspjeh u CS, tada se ide na CSER «Computer Science Education Research». Najbitnije za
uspjeh u ovom području je lociranje ne samo dobre, mjerodavne literature, već i aktivni praktični rad.

34
Klasifikacija istraživanja iz područja CSE
VALENTINE (Šestoslojna klasifikacija tipova članaka):
1. Eksperimenti – istraživanje obrazovanja napravljeno za prvu godinu
2. Marco Polo – Marco Polo prezentacije, tj. »bio sam, vidio sam«.
3. Filozofija – U njoj je autor pokušava generirati raspravu o filozofskim osnovama u široj zajednici.
4. Alati – svi alati ili software za animaciju algoritma i poučavanje rekurzija.
5. Nifty – Inovativni i zanimljivi načini (Nifty zadaci, projekti, slagalice, igre i paradigme) pomoću kojih studenti uče
apstraktne pojmove. Ponekad je razlika između Nifty-ja i alata bila nejasna, ali bi alat općenito bio korišten
tijekom cijelog semestra, a zadatak Nifty-ja je bio ograničenog trajanja.
6. John Henry – radovi u kojima kolega opisuje smjer koji se čini strašno težak. John Henry radovi su vrijedni za
zajednicu jer bi trebali neprekidno dostizati gornju granicu pedagogije.

Valentine ograničio je istraživanje na zadnjih 20 godina SIGCSE-ovog simpozija tehničkih postupaka. Zaključio je kako
se ovo polje razvija jako brzo te je ograničio svoju potragu na prezentacije koje se bave samo prvom godinom CS
tečajeva jer je ta godina najteža za predavanje. Sve prezentacije sa sadržajem tradicionalnih CS tema (rekurzija, tipovi
podataka, sortovi, stabla…) su bila uključena u istraživanje. U zadnjem desetljeću vidi se napredak u broju korištenih
prezentacija, posebno na prvoj godini. Ovo ukazuje na sve veće ulaganje energije u poboljšanje poučavanja CS-a.

FINCHER – PETRE
Izdali su knjigu „CS Education Research“ koja uključuje njihov rad sa smjernicama kako napraviti istraživanje u
računalnoj znanosti. Oni dijele područje istraživanja obrazovanja računalne znanosti na sljedećih 10 pod polja:

1) Kako studenti razumiju gradivo, 2) animacije/vizualizacije/simulacije, 3) metode poučavanja, 4) procjenjivanje, 5)


obrazovna tehnologija, 6) udruživanje novih izuma/tehnologija, 7) prijenos profesionalne prakse u učionicu, 8) prijenos
fakultetskog poučavanja na obrazovanje na daljinu, 9) jačanje i zadržavanje, 10) stvaranje discipline.

Smatraju da bilo koji rad koji se bavi istraživanjem obrazovanja računalne znanosti može biti dodijeljen jednom od
četiri sljedeća područja (rad – čime se bavi – podpolje):

- radovi o poučavanju, učenju i procjenjivanju (učionica, obrazovna praksa, prenošenje iskustava...) 1-2-3-4
- institucijski i radovi sa obrazovnim postavkama (obrazovne institucije, međunarodna suradnja, razmjena
studenata, inovacije u obrazovanju, struktura obrazovnih programa i kurikulima) 7-8-9-10
- Problemi i rješenja (problematika obrazovanja u CS i rješenja tih problema tehnologijskim i metodologijskim
inovacijama, fokus je više tehnologija i priroda inovacija radije nego primjena istih) 2-5-6
- Istraživanje obrazovanja računalne znanosti kao discipline (doprinos razvoju istraživačke metodologije za CER i
organizacija CER-a)

Kvalitativne metode
Dok kvalitativna istraživanja teže otkrivanju tema i odnosa, kvantitativna služe za potvrđivanje tih ideja. Kvalitativni
znanstvenici proučavaju stvari u njihovom prirodnom okruženju, pokušavajući naći smisao ili interpretirati fenomen u
smislu značenja koja im ljudi daju. Kvantitativna istraživanja za pretpostavku imaju da je istina objektivna i neutralna
te da odgovara istraživanjima u znanosti i tehnologiji. Kvalitativna istraživanja izazivaju takva stajališta tako da pitanje
objektivnosti vide kao nevažno, ili smatrajući da je nemoguće odrediti postoje li objektivna istina ili jednostavno
odbijajući da objektivna istina postoji. Kvalitativni istraživački pristup otkriva kako pojedinac stvara, oblikuje i
interpretira svijet u kojem se nalazi.

Rad u tradiciji Vygotskyja


Temelji su višestranoj istraživačkoj tradiciji u kojem je učenje shvaćeno kao povezano i ovisno o okruženju učenika te
kao njegov dio. Ti su radovi uglavnom usredotočeni na kolektiv, kojeg je pojedinac dio, te na upotrebu sredstava kao
posrednika učenja. Dakle, u centru su aktivnosti učenika (pričanje i upotrebe sredstava) dok su iskustvo učenja i
općenite situacije manje važne. Važnost rezultata ovakvih pristupa je u tome što mogu nadići pitanja o pojedinačnim
učenicima te stvaraju mogućnost sagledavanja kompleksne slike pri interakciji učenika u nekom okruženju.

Fenomenologija
Fenomenološki istraživački pristupi teže istraživanju nekog fenomena iz perspektive učenika te otkrivaju kvalitativno
različite načine na koji se neki fenomen može iskusiti, razumjeti ili percipirati. Fenomenologija je dokazano uspješna
kao istraživački pristup u proučavanjima učenja računalnih koncepata. Ovaj je pristup koristan u istraživanju ciljeva

35
učenika u većem stupnju obrazovanja. Fenomenologija i sociokulturalna proučavanja važna su jer nam mogu pružiti
uvid u razmišljanja učenika o ciljevima njihovog učenja te o učenju u nekom okruženju.

Radovi temeljeni na konstruktivističkim teorijama učenja


Ovakvi istraživački projekti uzimaju kao svoju polaznu točku način na koji učenici konstruiraju modele onoga što uče.
Zauzima se stajalište da bi podučavanje i okruženje u kojem se uči trebali omogućiti kvalitetno učenje i smanjiti rizik
da će učenici krivo shvatiti neki od važnih računalnih koncepata.

Kritički pristup u istraživanju računalnog obrazovanja


Kritička istraživačka tradicija ima eksplicitno određene vrijednosti te otkriva i bavi se problemima (ne)ravnoteže moći
koja se odnosi na primjerice spol, kulturu, okruženje ili političke aktivnosti. U područjima kao što je računalstvo, u
kojem su muškarci dominantni i koje ja zasnovano na zapadnim vrijednostima, takva su pitanja jako važna za buduća
istraživanja.

Višestrani pristupi
Greening ističe primjenjivanje nekoliko pristupa u istraživanju računalnog obrazovanja, jer se tako može dobiti
cjelovitija slika podučavanja i učenja u ovoj disciplini.

Poučavanje u računalnom laboratoriju


Učenje računalne znanosti bi se trebalo odvijati, barem djelomično, u računalnom laboratoriju. Poučavanje računalne
znanosti u laboratoriju povećava učenikovo razumijevanje biti računalne znanosti. Slika laboratorija u kontekstu
nastave računalne znanosti je računalni laboratorij – soba s računalima u kojoj učenici rade, uglavnom programe.

Laboratorij u kontekstu učenja i poučavanja računalne znanosti ima nekoliko dodatnih prednosti:

- Učenike ne treba učiti kako koristiti opremu (računala) jer već posjeduju ta znanja
- Rač. Lab ne zahtjeva pripremu dodatnih materijala.
- Eksperiment se može izvesti puno puta za redom, aračunalo će učenicima dati brzu povratnu informaciju.

Dry lab
Učenici rješavaju zadatke iz programiranja bez računala. Npr. učenje novog programskog jezika: dana je tablica sa
sintaksom nekog jezika, te obajšnjenja što pojedina linija koda radi. Učenici trebaju proučiti tu tablicu te objasniti što
rade linije koda dane u zadacima.

„Lab-first“ pristup
Za razliku od tradicionalnog redoslijeda predavanja i vježbu „lab-first“ pristup znači da će učenici prije stjecati iskustvo
„Lab-first“ pristup ima i prednosti i mane. S jedne strane, u duhu konstruktivitizma, glavna prednost je aktivno iskustvo
učenika koje stječe u računalnom laboratoriju i koje uspostavlja osnove na temelju kojih učenici stvaraju mentalne
slike o zadanoj temi. S druge strane, „lab-first“ pristup poučavanju uključuje nesigurnost i kod učenika i kod učitelja
računalne znanosti.

Vizualizacija i animacija
Ciljevi vizualizacije programske podrške su razumijevanje sustava programske podrške (njegove strukture) i algoritama
kao i analiza sustava programske podrške i analiza njihovih anomalija. Ben-Bassat Levy and Ben-Ari govore o glavnim
razlozima zbog kojih učitelji imaju negativna iskustva sa sustavima animacije. Pedagogijski programski alat ne može
stajati samostalno (treba integrirati u kurikulum kroz nastavne materijale ko udžbenici). Učenici bi trebali samostalno
koristiti programski alat što je suprotno demonstracijama učitelja u frontalnoj nastavi. Nije bitno je li alat samo lijep i
koristan nego treba biti i lak za instalaciju, učenje, vodiči za korištenje trebaju biti jasni. Tečajevi obuke ne trebaju
zanemariti radne ili pedagoške poteškoće koje mogu nastati korištenjem programskog alata.

Korištenje interneta u nastavi računalne znanosti


Nastava bilo kojeg predmeta je nezamisliva bez Interneta. Uz uobičajene razloge uključivanja Interneta u proces učenja
i poučavanja, u nastavi računalne znanosti mu se posvećuje posebna pažnja zbog toga što se sam Web temelji na
idejama računalne znanosti kao što su: kompresija podataka, šifriranje i algoritmi pretrage. Internet omogućava
okruženje za učenje temeljeno na konstruktivizmu u kojem su učenici aktivni. Načini korištenja Interneta u nastavi
računalne znanosti: prikupljanje informacija, istraživanje Interneta kroz leću računalne znanosti, udaljeno učenje.

36
Planiranje nastave
Aktivnosti za studente:
Podjela informatičke teme na komponente (odabrati jednu temu i obraditi je na način da se podijeli na podteme,
odrediti redoslijed podučavanja podtema, navesti očekivane poteškoće učenika)

Raspodjela vremena, timski rad (popis pod tema treba vremenski opisati, objasniti zašto je koja tema dobila više ili
manje vremena…)

Planiranje prve lekcije po temi/podtemi (Od učenika se traži da planiraju prvu lekciju na temu koja je nova određenom
razredu učenika)

Sveobuhvatno planiranje poučavanja nastavne jedinice (planiranje nastave kroz sljedeće perspektive)

Široka prespektiva: planiranje cjelokupnog plana i programa


Nastavnik treba proučiti svaki pojedini godišnji nastavni plan i program za specifične razrede kako bi mogao planirati
vlastitu nastavu. Prvi korak je rastavljanje cijelog nastavnog plana i programa na popis sadržaja i određivanje broja
nastavnih sati za svaki sadržaj.

Nastavnik ima na raspolaganju 15ak tema i 35 školskih sati. Svakoj temi pridodaje manji ili veći značaj ovisno o vanjskim
i unutarnjim razrednim/pedagoškim čimbenicima.

- Vanjski (školski organizacijski okvir, raspored nastave, dostupnost učionice s računalima…)


- Unutarnji (karakteristike razreda, broj učenika, razina znanja, sposobnosti, homogenost tih sposobnosti…)

Godišnje planiranje nastave treba biti fleksibilno i podložno promjenama ako je potrebno. U praksi, nakon poučavanja
svake od navedenih tema u razredu, nastavnik treba razmišljati o svom izvornom nastavnom planu i ispraviti i ažurirati
proces poučavanja u skladu s tim.

Perspektiva srednje razine: Planiranje poučavanja nastavne jedinice


Nastavna jedinica je niz lekcija kojima se obuhvaća neka tema. Pri planiranju treba uzeti u obzir dva pitanja koja
međusobno utječu jedno na drugo: (1.) sadržaj znanja i vještina koje bi studenti trebali steći, (2.) vremensko razdoblje,
to jest broj sati dodjeljenih za nastavni proces. Glavni cilj ovog planiranja je podijeliti nastavu na nastavne jedinice u
niz lekcija, uključujući razredne aktivnosti i pristup procjene.

1. Napravite popis pojmova sadržanih u navedenoj temi.


2. Pregledajte iskustva informatičke obrazovne zajednice i njezinu istraživačku literaturu o poteškoćama učenika i
zabludama koje se mogu pojaviti prilikom učenja navedene teme
3. Pronađite pojmove iz 1. faze vremenski kako se pojavljuju, uzimajući u obzir poteškoće prepoznate u 2. fazi.
4. Podijelite popis pojmova u niz lekcija, s obzirom na ukupno vrijeme dodijeljeno za nastavu navedene teme.

Perspektiva lokalne razine: Planiranje lekcija


Planiranje lekcija treba obuhvatiti sljedeće aspekte:

1. Glavni cilj lekcije: O čemu se radi u lekciji? Koja je glavna poruka i glavni sadržaj?
2. Eksplicitan sadržaj koji će biti obuhvaćen u lekciji: Koje podteme su uključene u sadržaj lekcije?
3. Operativni ciljevi lekcije: Što učenici trebaju naučiti u lekciji? Koje vještine bi učenik trebao razviti? Koji pojmove
učenici trebaju razumjeti? Koje sposobnosti izvođenja operacija se očekuje da će studenti dobiti?
4. Aktivnosti lekcije: Kakve aktivnosti će biti uključene u razredu? (Npr. poticaj, objašnjenja, set vježbi, igra, grupa
aktivnosti, procjene rezultata, rad u računalnom laboratoriju, itd.) (nastavne metode, nastavna pomagala i ostala
pedagoška načela)
5. Znanje o procjeni: Kako će se provjeravati razumijevanje učenika tijekom lekcije?
6. Učenička domaća zadaća: Koje domaće zadaće trebaju dobiti učenici da bi ostvarili ciljeve lekcije?

Učitelj treba biti svjestan specifičnih poteškoća s kojima se njegovi ili njezini vlastiti učenici suočavaju, kao i onoga što
im može pomoći u prevladavanju tih teškoća i poboljšavanju razumijevanja.

37
Vrednovanje
Vrednovanje je jedan od najčešćih zadataka učitelja kojeg obavljaju od ranih faza njihovog profesionalnog razvoja.
Vrednovanje samo po sebi nije cilj nego je to pedagoško sredstvo s kojim:

- učitelji poboljšavaju svoje razumijevanje trenutačnog znanja svojih učenika


- učenici dobivaju povratnu informaciju vezanu za vlastito razumijevanje naučenih predmeta

Načela vrednovanja
- Jedan i jedinstveni način za vrednovanje učenika u računalnoj znanosti ne postoji, ali različiti pristupi
vrednovanju su prikladni za primjenu u različitim pedagoškim situacijama.
- Različiti pristupi vrednovanju trebaju imati smisla, a kada je to prikladno, treba objasniti učenicima tko polaže
test, tko razvija projekt…
- Različite aspekte učenikovog znanja i kognitivne vještine treba vrednovati.
- učiteljeva povratna informacija učenikovih vježbi/ispita/projekata može prenijeti različite poruke (ponekad
sakrivene) , dakle, posebna pozornost se treba dati pisanim povratnim informacijama
- zadaci vrednovanja trebaju biti raznoliki kako bi se odnosili na različite aspekte naučenih tema i različite
kognitivne vještine te motivirali učenike i zadržali njihovu znatiželju
- vrednovanje treba biti zamišljeno kao kontinuirani reflektivni proces

Vrednovanje projekta
Pojedinačni projekti
Učitelj vrednovanje može se provoditi na dva načina:
- formativna procjena: ova procjena se vrši od strane učitelja tijekom cijelog procesa razvoja projekta s obzirom na
gotovo svaku aktivnost koju učenik obavlja. Svrha formativne procjene je voditi učenike u razvoju procesa kako
bi se podržao njihov razvojni proces i poboljšanja njihovog razumijevanja sadržaja računalnih znanosti.
- sumativna procjena znanja: učitelj obavlja procjenu znanja u nekoliko navrata tijekom razvojnog procesa, obično
na kraju određene faze; praćenje studenata i razrednog napredka.

Procjena vršnjaka može se provesti, naprimjer, na sljedeći način: Učenici su podijeljeni u dvije skupine. Svaki učenik
predstavlja njegov ili njezin projekt s ostalim članovima grupe i prima njihove povratne informacije

Individualna povratna informacija: vrednovanje može se poticati tako da se pita svakog učenika da razmisle o
njegovom ili njezinom radu na koji način on ili ona se planira odraditi raspored koji je učitelj postavio za cijeli razred.

Timski projekti
- Timski rad je bitan za razvoj software-a. Kao rezultat toga, sukobi između doprinosa timskom radu i načinu na
koji se dijele nagrade može se pojačati.
- Software-ski programeri su obično vrlo motivirani. To može izazvati sukobe između osobnih ciljeva i ciljeva tima.
- Timske nagrade mogu uzrokovati socijalne probleme, kao što je fenomen slobodnog natjecatelja.

Prema tome, relevantno pitanje upućeno iz literature je li za distribuciju poticaja među članovima tima jednako ili ne.
Dubinsky i Hazzan sugeriraju politiku ocjenjivanja software-skih projekata razvijenih od timova studenta računalnih
znanosti čiji je cilj motiviranje kako timski rad i suradnju, tako i osobni doprinos svakog člana tima za uspjeh projekta

Portfolio
Portfolio je zbirka učeničkih radova koja pokazuje učenikovo napredovanje i postignuća u određenom području uz
proces učenja. Budući da portfolio pripremaju učenici u određenom vremenskom razdoblju, može se promatrati kao
formativno ocjenjivanje alata. Govori priču o učenikovim naporima, napretku, postignuću, te vlastitom odrazu na
njegove ili njezine procese učenja i napretka, u jednom ili više područja znanja.

Karakteristike portfolia
- Integrira učenje s procjenom
- Stvara kontinuirani komunikaciji kanal – suradnju između učitelja i učenika
- Daje sveobuhvatan pogled učenikih postignuća s obzirom na različite koncepte.
- Omogućuje učenicima da identificiraju njihove nedostatke i svoje prednosti.
- Ohrabruje učenike da preuzmu odgovornost na njihovom procesu učenja
- Poboljšava učeničke reflektirajuće vještine..

38
Stjecanje iskustva u poučavanju CS
Praksa
Cilj je da potencijalni profesori osjete kako je to biti profesor prije nego to postanu. Da bi se ovo postiglo, praksa se
obično izvodi uz vodstvo dva nastavnika računalne znanosti: školski mentor je profesor računalne znanosti koji uči
studenta i vodi ga tokom prakse; i mentor sa sveučilišta koji je zadužen za akademske aspekte prakse. Tokom perioda
u kojem su u školi, studenti prate svog školskog mentora, slušaju njegova predavanja, sudjeluju u raznim školskim
aktivnostima te u određenoj fazi počnu i sami predavati. Sveučilišni mentor, samo s vremena na vrijeme, dolazi u školu
kako bi promatrao predavanje koje student drži te mu dao kritike i upute.

Zašto ne možemo odmah dozvoliti studentima da poučavaju nakon što završe MTCS kolegij? Zašto su različite
aktivnosti koje se provode u MTCS kolegiju nedovoljne?
Prvo, poučavanje je struka koja zahtjeva šegrtovanje. Drugim riječima, prikladna priprema za poučavanje računalne
znanosti u školi bi trebala uključivati praksu u srednjoj školi uz blisko vodstvo stručnjaka.

Drugo, praksa, potencijalnim profesorima, osigurava iskustvo u pravim razredima srednjih škola, koje se ne može dobiti
ni kroz mikro nastavu ni kroz MTCS kolegij. Na primjer, tijekom prakse student bi mogao osjetiti potrebu za korištenjem
različitih metoda poučavanja pri tumačenju različitih tema.

Treće, praksa je još jedna prilika za studente da i sami poboljšaju svoje shvaćanje koncepata računalne znanosti. Ovaj
napredak se događa dok pripremaju lekciju koju će tumačiti u školi, tijekom poučavanja te u konzultacijama s
mentorima nakon održanog sata.

Konačno, s organizacijskog aspekta, ulazak u školsko okruženje nije jednostavno. Potrebno je upoznati se sa školskom
kulturom, procedurama, ulogama, itd. Praksa pruža priliku potencijalnim profesorima da budu izloženi organizacijskim
aspektima škole prije nego postanu član zajednice.

Da bi praksa bila uspješna, važno je da unutar-školski mentor i sveučilišni mentor mogu direktno komunicirati i da su
u dobrim odnosima.

Tutorski model za vođenje procesa rješavanja problema


Tutorski model je fokusiran oko tutora koji je zapravo potencijalni profesor računalne znanosti. Temelji se na
praktičnom iskustvu u poučavanju. Sastoji se od individualnog tutorstva pri čemu studenti, čije je znanje računalne
znanosti bolje utvrđeno, poučavaju početnike računalne znanosti koji su upisani tek u neki od uvodnih kolegija
računalne znanosti. Tijekom sesije, učenik pita za problem, a tutor, student, ga vodi kroz proces rješavanja problema.
Tutorstvo je bazirano na identificiranju poteškoća koje učenik ima tokom učenja i primjeni različitih strategija
poučavanja kako bi se svladale te poteškoće. Budući da se sesije odvijaju serijski, tutor dobiva povratnu informaciju o
znanju koje je njegov učenik stekao u prijašnjoj sesiji, a time dobiva i povratnu informaciju o vlastitom procesu
poučavanja.

Mentorski model ima potencijal da potiče vještine potencijalnih profesora na tri razine:
1. Promicanje profesionalnih pedagoško-disciplinskih vještina identificiranjem poteškoča koje učenik ima tijekom
učenja, pomaganje učenicima da svladaju svoje poteškoče u učenju, usvajanje uloge učitelj-istraživač i stvaranje
partnerskog odnosa s drugim studentima tutorima.

2. Promicanje profesionalnih pedagoških vještina na način da potiču pristup poučavanju koji učenike tjera na
razmišljanje i razvijanje alata za usmjeravanje koji uključuju formiranje interpersonalnih veza s učenicima
zajedno s implementacijom metoda poučavanja koje odgovaraju učenicima.

3. Promoviranje disciplinskog znanja kao nusproizvod procesa vođenja. Suočavanjem s poteškočama koje drugi
imaju poboljšava razumijevanje discliplinskih koncepata s kojima se student možda nije susreo tokom svog
studija. Moto „Poučavanje je najbolji način za učenje“.

Kod praktikuma odgovornost je veća te se trebaju iskazati sposobnosti upravljanja razredom i održavanja discipline. U
tutorstvu nastavnik može pratiti cijeli proces učenja učenika i utjecaj metoda na tog učenika dok je to teško postići
poučavanjem razreda. Tutorstvo je lakše organizirati.

39
Kognitivni procesi kod učenika dok programiraju
Istraživanja kognitivnih procesa odavno su postala važna u obrazovanju, posebno u znanstvenim područjima.
Kognitivni procesi okosnica su konstruktivizma, dominantnog pristupa u teorijama učenja.

Istraživanje „Percepcija programiranja kod studenata“ (eng. Undergraduate Students' Perception of Data Structured)
– fokusiralo se na misaone procese koji su se javljali kad su se studenti bavili programiranjem.

U istraživanju je sudjelovalo 9 smjerova studija računalne znanosti izraelskog sveučilišta sudjelujući u uvodnim
kolegijima programiranja. Ovi studenti su već proučili osnovne računalne pojmove u prethodnom kolegiju „Uvod u
računalnu znanost“.

Polu-struktuirani opservacijski intervjui korišteni su kao glavni alat za prikupljanje podataka. Pitanja su pokrivala teme
kao što su: općenito o programiranju, nizovi, stogovi, redovi, vezane liste i izgradnja programa kako bi odgovarao
zahtjevima određenog problema.

Suprotno od "apstraktnog" u računalnoj znanosti znači "baviti se s detaljima implementacije u određenom stroju ili u
određenom programskom jeziku".

Dva kognitivna procesa vezana uz programiranje


Vrste razmišljanja vezane uz programiranje
Što je niz?

Niz je skup parova naredbi (određenih indeksom), gdje su svi indeksi različiti, zajedno s operacijama INSERT (umetanje
novog člana u niz) i GET (vraćanje vrijednosti određenog indeksa).

- S aspekta programiranja, općeniti odgovor bi bio onaj koji se odnosi na apstraktne nizove, nešto poput
prethodnog

Ako govorimo o nizu kao da se implementira u nekoj računalnoj memoriji, točnije, u nekom računalnom programu.
Koristimo programski orijentirano razmišljanje (eng. programming oriented thinking).

Ove značajke ne moraju nužno vrijediti za nizove u svakom programskom jeziku; međutim, vrijede za određeni
programski jezik, C jezik. Dakle, koristimo programskim jezikom orijentirano razmišljanje (eng. programming-
language oriented thinking), tj. razmišljanje vezano za posebni programski jezik.

- Niz je kontinuirano područje u (računalnoj) memoriji koje sadrži elemente istog tipa. Možemo dohvatiti svaki
element pomoću njegovog indeksa koji je cijeli broj.

Još postoji programski neovisno razmišljanje (eng. Programming free thinking).

Prema ove tri vrste razmišljanja definiramo razinu apstrakcije. POR -> PJOR -> PNR (visok stupanj apstrakcije)

U razredu i kod kuće, učenici su navikli koristiti programski jezik C. Izvlačenje učenika iz poznatog okruženja i stavljanje
u apstraktnu raspravu je nešto na što oni nisu navikli jer se to nije tražilo od njih dovoljno. Nisu bili izazvani tijekom
kolegija da koriste apstrakciju pa nisu osjetili potrebu za tim (fenomen niske razine apstrakcije).

Tri tipa mišljenja izražavaju razine apstrakcije prikazane u „Actions-Process-Object“ modelu, koji se danas smatra kao
jedan od centralnih modela konceptnog oblikovanja.

Prema ovom modelu, formiranje novog koncepta matematičkog entiteta


počinje s radnjama (eng. actions) izvedenima na nekom fizičkom ili mentalnom
modelu. Kada učenik dobije sposobnost da se poziva na ove radnje koristeći
simbole i input/output način, bez provođenja specifičnih radnja, kažemo da su
radnje transformirane u proces (eng. process). Zadnja razina je transformacija
procesa u objekt (eng. object): Učenik se sad može odnositi prema entitetima
kao što se odnosi prema fizičkim. Sada novo-formirani objekti mogu biti
korišteni kao ulaz za nove radnje koje će biti transformirane u proces, a onda u
nove, više apstraktne objekte, i tako dalje.

40
Da li stilovi crtanja karata kod programera početnika predviđaju uspjeh u programiranju?
Istraživanje
Da bi se procijenila sposobnosti studenata da učinkovito artikuliraju jednostavnu strategiju traženja i odlučivanja
dizajnirana je vježba skiciranja karte.

Od sudionika se tražilo da izvrše kartografsku zadaću u dvije faze; prvo da nacrtaju kartu zadanog područja tako da
istraživači mogu doći od jedne lokacije do druge. Zatim su trebali obilježiti ključne točke odluke, objašnjavajući što bi
osoba koja tu kartu koristi trebala napraviti kod svake točke odluke. Dobili su kemijske olovke druge boje za dodavanje
bilješki u drugoj fazi.

Primjer karte vizualnih objekata (eng. landmark map)


- fokus karte su ključni vizualni objekti (fontane, skulpture, važnije zgrade) kojima je dana važnost
- vizualni objekti su jedinstveni objekti
- vizualni objekti su obično pretjerani po veličini, izobličeni ili su na neki drugi način istaknuti (na primjer
dodavanjem oznaka, debljim slovima)
- putanja se kreće od jednog objekta do drugog

Primjer karte putanje (eng. route map)


- fokus karte je putanja (ruta)
- putanja je istaknuta, obično stazom koja je označena crtom ili pisanim uputama na karti
- identificirane su značajke na putanji

Primjer karte pregleda područja (eng. survey map)


- karta se fokusira na pregled područja koje okružuje putanju i uključuje detalje područja dalje od putanje
- usredotočenost na sveopću strukturu područja
- može uključivati kompasna usmjerenja
- može se dogoditi da putanja nije ucrtana, ili se ne ističe
- pokazuje se integrirano znanje o području

Rezultati
Ujedinjeno kraljevstvo: studenti koji crtaju karte usredotočene na vizualna obilježja dobivaju sveukupno više ocjene,
studenti koji crtaju karte putanja dobivaju srednje ocjene u skupini i studenti koji crtaju karte pregleda područja
dobivaju sveukupno najniže ocjene.

Novi Zeland: studenti koji crtaju karte usredotočene na pregled područja dobivaju najviše ocjene, dok oni koji koriste
način usmjeren na vizualne objekte dobivaju najniže ocjene.

Australija: slično kao Novi Zeland ali ne toliko izražajno

Ukupno: Najbolji su se pokazali oni koji crtaju karte s pregledom područja, a najgori oni s kartama vizalnih objekata

Postoji generalni trend da studenti koji su nacrtali kartu pregleda područja dobiju više ocjene od onih koji su nacrtali
kartu putanje, a oni opet budu bolji od onih koji su nacrtali kartu vizualnih objekata. To se označava kao „L-R-S“ trend
(L-landmark: vizualni objekti, R-route: putanje, S-survey: pregled područja). Ove paralele sugeriraju da sudionici ove
studije uistinu imaju strategije navigacije koje preferiraju i da su te strategije značajne za uspjeh u uvodnom kolegiju
iz programiranja.

41
Objektno programiranje
Zašto prije metodologiju, a ne jezik (Haibin Zhu i MengChu Zhou)
Objektna orijentacija nije samo stil programiranja, već i metodologija koja deducira od općeg prema pojedinačno, te
inducira od pojedinačnog prema općem. Time je ova metodologija slična prirodnom ljudskom načinu razmišljanja.

U rješavanju problema postoje dvije osnovne metodologije: funkcionalna dekompozicija (Top-down) - rastavljanje
problema na više manjih, rješivih dijelova i funkcionalna kompozicija (Bootom-up) - od funkcija se kreiraju veći moduli,
koji se dalje mogu slagati u još veće,...na koncu se od modula može kreirati sustav.

Dilema koji pristup prije koristiti (proceduralni ili objektni)


Tradicionalni pristup je učiti prve dvije trećine tečaja na isti način na koji se uči proceduralni jezik, a zadnju trećinu
tečaja posvetiti objektno orijentiranom sadržaju. Taj način ćemo nazvati kasni objektni pristup.

Alternativa tome je uvesti korištenje klasa i objekata vrlo rano u predavanju, s naglaskom, od početka, na objektno-
orijentirane koncepte, s posebnim naglaskom na stanje i način rada s objektima, slanje poruka na obračun i dinamična
metoda dozivanja kao način izbora između alternativa. Taj način ćemo nazvati rani objektni pristup.

Zagovarači kasnog objektnog pristupa dokazuju da petlje i uvjetovane tvrdnje moraju logički biti usvojene vrlo rano, i
da najbitniji koncepti dobivaju manje pažnje nego u ranom objektnom pristupu.

Suprotno tome, nekoliko komponenti ranog objektnog pristupa tvrde da tradicionalne teme kao uvjetovane izjave i
vrijeme ponavljanja bi trebali biti naglašeni. Dok je koncept izbora i ponavljanja vrlo važan, moglo bi mu se prići na
drugi način sa objektno-orijentiranim jezikom. Na primjer, alternativni izbor bi mogao biti postignut dinamičnim
slanjem kad objekt različitih klasa implementiraju isto sučelje i odgovaraju istoj poruci.

Veliki broj sudionika skrenuo je pažnju na to da je objektno-orijentirano programiranje znatno drugačije od


proceduralnog pristupa poštujući dizajn i programiranje. Dokazano je da je potrebno mnogo vremena da bi
proceduralni programer dobio ključne ideje za objektno-orijentirano programiranje.

Fenomenografija – OOP (Anne Eckerdal, 2002 Švedska – veleučilište Uppsala)


Na glavno pitanje „kako studenti shvaćaju učenje programiranja“svi studenti su odgovorili da učenje programiranja
doživljavaju kao shvaćanje programskih jezika, i njihovo korištenje za pisanje programa. Velika većina studenata je
odgovorila da je programiranje novi način razmišljanja, dok je mali broj studenata odgovorio da programiranje
poboljšava shvaćanje računalnih programa općenito, koje se očituje u svakodnevnom životu.

Na pitanje „kako bi ti prijatelju koji ništa ne zna o programiranju objasnio/la pojam objekta? Velika većina studenata
je odgovorila je da je objekt komad koda. Mali broj studenata je objekt doživio kao nešto što je aktivno u programu ili
kao model od nekog stvarnog fenomena. Prva kategorija pokazuje vrlo loše shvaćanje pojma objekta, dok zadnja
kategorija ne pokazuje samo vrlo bogato shvaćanje pojma, već shvaćanje samog pojma nevezano uz samo
programiranje.

Na pitanje “kako bi ti prijatelju koji ništa ne zna o programiranju objasnio/la pojam klase? Dio studenata je odgovorila
da klasu doživljava kao entitet u programu, koji doprinosi strukturi koda tj. kao manji program kojeg koriste
programeri, kako bi sebi olakšali strukturiranje koda. Većina studenata je odgovorila da klasu doživljava kao opis
svojstava i ponašanja objekta. Svi studenti su klasu opisali kao opis ponašanja objekta, nekoliko studenata nije navelo
da se u klasi definiraju svojstva objekta. Malo studenata je odgovorilo da klasu doživljava kao opis svojstava i ponašanja
objekta, ali kao model nekog stvarnog fenomena.

Jedno od pitanja postavljenih studentima glasi: „što ti misliš, koja je svrha korištenja objekata i klasa?“.Različita
shvaćanja studenata oko svrhe korištenja objekata i klasa podijeljena su u 3 kategorije:
- Svrha razumijevanja s kodne perspektive: sintaksa zahtjeva to i daje dobru strukturu programu
- Svrha razumijevanja s korisničke i rezultatske perspektive: jednostavnije je za programera da napravi program, i
lakše rješava zadaće koje su mu postavljene
- Svrha razumijevanja sa stvarnosne perspektive: potpora za spajanje stvarnosti i programiranja

Velika većina studenata se opredijelila za prve dvije kategorije, dok je samo nekolicina studenata odabralo treću
kategoriju.

42
Kako integrirati rezultate znanstvenih istraživanja CSE u kurikulum
Nastava računarstva u američkim srednjim školama
Predviđanja za 2012. godinu (trebat će 1.5 miliuna radnih mjesta vezanih za računala i informacijsku tehnologiju, ali će
takvog kadra biti upola manje). Unatoč tome računarstvo i dalje nije prepoznato kao znanstvena disciplina te je
smanjen program nastave računarstva (rezultat: manjak učenika, posebno žena).

Neki od razloga za ovakvu situaciju: nedostatak nacionalnog srednjoškolskog kurikuluma za računarstvo, nedostatak
financijske potpore, nedostatakmogućnosti za profesionalno usavršavanje u tehničkom i pedagoškom smislu za
nastavnike računarstva, visoko kvalificirani nastavnici zbog bolje zarade odlaze u industriju, mnogi ne razlikuju
računarstvo općenito, a isto tako i razlike između drugih kompjuterskih studija.

Računarstvo
Dinamična znanost koja se brzo razvija. Zbog toga nije jednostavno odrediti sadržaje obrazovanja i povući granice u
učenju računarstva. Definicija računarstva prema ACM-ovom Model Curriculum for K-12 Computer Science:
Računarstvo (računalna znanost, computer science (CS)) je proučavanje računala i algoritamskih procesa, uključujući
njihove principe rada, dizajn hardware-a i software-a, njihovu primjenu i njihov utjecaj na društvo.

Prema ovoj definiciji K-12 standard za računarstvo mora uključiti sljedeće elemente:
Programiranje, dizajn hardware-a, mreže, računalnu grafiku, baze podataka i pretraživanje informacija, računalna
sigurnost, dizajn software-a, programske jezike, logiku, programske paradigme, Umjetnu inteligenciju, Granice
računanja (što računala ne mogu), Primjenu u Informacijskoj tehnologiji i Informacijskim sustavima, Društvene utjecaje
(sigurnost na Internetu, privatnost, intelektualno vlasništvo itd..

Istraživanja u srednjim školama pokazuju da postoje problemi u razlikovanju računarstva, nastavne tehnologije i
Informacijske tehnologije.

Nastavna tehnologija – može se definirati kao korištenje kompjutorske tehnologije u učenju drugih predmeta
(disciplina).

Vezano za edukaciju iz računarstva često se spominju dva termina:


- Informatička pismenost - sposobnost korištenja informacijske tehnologije u vlastitom profesionalnom okruženju
- Informatička okretnost - uz Informacijsku pismenost još podrazumijeva i sposobnost samostalnog učenja i
korištenja novih tehnologija onim tempom kojim se razvijaju tijekom profesionalnog radnog vijeka
Internacionalna istraživanja na temu nastave računarstva u srednjim školama
SAD – U nastavi je najviše zastupljeno programiranje, računalna etika, računalna grafika i razvoj web-a. Škole ne nude
dovoljno programa naprednog računarstva kojeg ionako pohađa mali broj učenika (posebno žena). Nastavnici vjeruju
da su osnovni razlozi nepohađanja nastave računarstva prenatrpani rasporedi. Brze promjene u tehnologiji su ozbiljan
problem za što je potrebno neprestano profesionalno usavršavanje. Nastavnici su iznenađujuće slabo informirani o
kurikulumu, cerifikatima i administrativnim strukturama unutar svojih država.

Izrael – Računarstvo postoji kao zaseban predmet od sredine 1970-tih. U početku se kurikulum fokusirao na
programiranje, a tek 1991. godine se mijenja i značajno ističe principe i teoretske aspekte računarstva (algoritamsko
razmišljanje). Program nastave računarstva ima dva modula: osnove računarstva i napredno računarstvo. Kurikulum
ima veliku podršku vlade što se odražava u kvalitetnim materijalima za učenje i omogućenom profesionalnom
usavršavanju nastavnika.

Europa – U europskim srednjim školama za nastavu iz područja računarstva uobičajeni je naziv informatika. Fokus je
na informacijskoj tehnologiji umjesto na računarskoj znanosti kao cjelini. U većini država informatika je uključena u
nacionalni kurikulum kao zasebni predmet, za razliku od Finske i Italije gdje se uči kao podrška drugim predmetima.

Što su pokazali rezultati istraživanja?


Rezultati istraživanja pokazuju da učenje računarstva u srednjoj školi ima pozitivan učinak na kasniji uspjeh studenata
na studiju računarstva. Računarstvo ima problema s definicijom i nazivom discipline (računarstvo, informatika). Stalne
promjene su problem. Shvaćanje područja kao cjeline i njegovih područja je porblem. Zablude da je računarstvo isto
što i programiranje. Zablude da je računarstvo je muško područje.

43
Koje korake treba poduzeti kako bi se razbile ove zablude?
Kreirati unificirani obavezni kurikulum za računarstvo. Uvesti certifikate za nastavnike računarstva kako bi se osiguralo
da računarstvo predaju kompetentni nastavnici. Koristiti programe koji će podjednako privući učenike i učenice. Učiniti
računarstvo uzbudljivim i izazovnim za učenike. Istražiti razne interese vezano za karijere u računarstvu.

Istraživanja pokazuju da je potreban konceptualni pristup


Algoritmi, Rekurzija, Pojam apstrakcije i apstraktnih tipova podataka, Nedeterminizam (umjesto konstantnog
korištenja determinističkog modela), Ispravnost (neki učenici čak imaju zablude o tome da je kratki algoritam
neispravan), Učinkovitost algoritama, Testiranje programa.

Što su pokazala istraživanja na temu nastavnika?


Nastavnici se ne mogu nositi s rapidnim promjenama i trebaju stalno usavršavanje, nemaju pedagoško obrazovanje,
moraju imati formalnu naobrazbu iz računarstva na akademskom nivou.

Usavršavanje srednjoškolskih nastavnika računarstva


Preporučuju se programi za usavršavanje srednjoškolskih nastavnika računarstva koji bi uključivali sljedeće teme:
povijest računarstva, priroda CS-a, interdisciplinarnost, različiti programi nastave računarstva, pedagoška znanja,
korištenje alata i pomagala u poučavanju. Preporučuje se da se budući nastavnici računarstva educiraju na način da
ih se motivira da se postanu dio suradničke zajednice nastavnika računarstva jer bi tako mogli učiti od stručnih i
iskusnih nastavnika te dobiti pomoć i podršku

Kritičko analiziranje razvoja i implementacije srednjoškolskog kurikuluma računarstva u pet država


Kako bi se otkrili elementi koji doprinose uspješnom razvoju i implementaciji nacionalnog srednjoškolskog kurikuluma
za računarstvo, provedena su istraživanja u Kanadi, Izraelu, Škotskoj, Južnoafričkoj Republici i SAD.

Rezultati istraživanja u pet država su sljedeći:


Postoji veza između potrebnih rezultata i strategije koja se koristi. Promjenom trebaju upravljati stvarne potrebe
obrazovanja, a ne političke potrebe. Edukacijske potrebe treba sagledavati u širem društvenom i ekonomskom
kontekstu. Sve interesne grupe moraju se suglasiti da je promjena potrebna i sa strategijom koja će se koristiti za
ostvarenje cilja. Promjena zahtijeva angažiranje adekvatnih resursa tijekom svih faza dizajniranja, implementacije i
testiranja novog kurikuluma. Promjena je dugotrajan proces, a ne kratkoročna intervencija.

Strategije za dizajn i uspješnu implementaciju srednjoškolskog kurikuluma računarstva


Kako bi se unaprijedila nastava računarstva u srednjim školama provedeno je mnogo istraživanja koja su pokazala da
je moguće definirati takav kurikulum koji će omogućiti razumijevanje računarstva

Principi dizajna kurikuluma – Srednjoškolski kurikulum za računarstvo mora:


- fokusirati se na temeljne znanstvene principe računarstva
- približiti učenicima ključne principe ove znanstvene discipline uključujući apstrakciju, kompleksnost, modularnost
i ponovnu iskoristivost
- fokusirati se na podučavanje metodologije rješavanja problema i razvijanja sposobnosti kritičkog razmišljanja
- mora pomoći učenicima da razviju kognitivne sposobnosti i praktične vještine, neovisno o tehnologiji
- biti sveobuhvatan da omogući učenicima široki pogled na računarstvo, uključujući i povijest računarstva kako bi
se omogućilo da učenici shvate ulogu računala u rješavanju stvarnih problema
- eksplicitno se baviti dizajnom i analizom procesa da učenici mogu razumjeti strukturu računalnih sustava i
procese vezane uz njihov dizajn, razvoj i odražavanje
- omogućiti učenicima da razvijaju nove ideje, koncepte i vještine putem programa prilagođenog njihovom uzrastu
- biti realiziran na način da njegov sadržaj bude privlačan svima, bez obzira na spol i etničku pripadnost
- sadržavati isprepletene teorijske i eksperimentalne dijelove radi shvaćanja teoretske osnove i djelovanja u praksi
- ne smije pobrkati računarstvo s kompjuterskom pismenošću (poučavanje kako koristiti razne software-ske
aplikacije nije poučavanje računarstva)

44
10 ključnih koncepata koji daju sveoubuhvatan uvid u računarstvo
- Računala – ključni aspekti računanja, program kao niz koraka, proces interpretacije programa, memorija i I/O
- Informacijski sustavi – struktura, hardware, software, procesi, sučelja
- Mreže – ključni aspekti informacijskih mreža, uključujući fizičku i logičku strukturu
- Digitalno predstavljanje informacije – korištenje binarnog koda
- Organizacija informacija – općeniti koncepti organiziranja i pretraživanja informacija
- Modeliranje i apstrakcija – općenite tehnike za predstavljanje realnih fenomena računalnim modelom
- Algoritamsko razmišljanje i programiranje
- Univerzalnost – razumijevanje mnogostrane primjene računala
- Ograničenja informacijske tehnologije – kada se informacijska tehnologija može primijeniti, a kada ne
- Društveni utjecaj – društvena pitanja povezana s informacijskom tehnologijom, intelektualno vlasništvo,
privatnost, sigurnost i dr

Strategije za implementaciju kurikuluma (Frank-ov okvir za kritičko analiziranje edukacijske politike i reforme)
Politička učinkovitost
- Podrška – inicijativa za novi kurikulum mora imati podršku s vrha (savezna vlada, državna vlada) i s dna (
nastavnici i roditelji)
- Povezanost s interesnim skupinama – udruge nastavnika, roditelja, visokoškolske ustanove, industrija i biznis
- Sredstva – školama, nastavnicima i učenicima moraju biti na raspolaganju odgovarajući hardware, software kao i
sredstva za učenje (knjige, priručnici idr.)
- Profesionalno usavršavanje – nastavnicima mora biti omogućeno stručno usavršavanje u cilju poboljšanja
stručnosti i strategija poučavanja
- Vremenski okvir – implementiranje novog kurikuluma je dugoročan proces te se na taj način treba planirati

Teoretska učinkovitost
- Eksplicitnost – potrebno je jasno naglasiti koji se rezultati namjeravaju postići implementacijom novog kurikuluma
- Istraživanje svih pretpostavki – Može se dogoditi da dva postignuta cilja budu u sukobu jedan s drugim.
- Provjeravanje – prije početka implementacije, potrebno je dati na uvid model kurikuluma osobama koje će ga
implementirati te uvažiti njihove sugestije

Empirijska ispravnost
- Istraživanje – najprije je potrebno provjeriti da li je model kurikuluma u skladu s internacionalnim spoznajama na
području edukacije
- Dugoročno planiranje – osigurati da na svim razinama obrazovnog sustava postoji razumijevanje da sustavne
promjene zahtijevaju dugoročno angažiranje
- Mjerenje uspjeha i korigiranje – potrebno je ustanoviti kratkoročne i dugoročne mjere uspjeha te provoditi
odgovarajuće kvantitativne i kvalitativne studije uspjeha

Pet osobina primjereno osposobljenih nastavnika


- Pristup rješavanjem problema – omogućuje učenicima sagledavanje problema na više načina
- Fokusiranje na stvarni svijet – nastavnici motiviraju i ohrabruju učenike da shvate primjenu računarstva na
primjerima iz stvarnog života
- Eksplicitno naglašavanje dizajna software-a – omogućuje da učenici savladaju sve korake dizajniranja, kreiranja,
testiranja i debugging-a
- Ugodno okruženje – učionice moraju biti ugodno okruženje za sve učenike, posebno za djevojke i pripadnike
manjinskih skupina, a nastavnik mora privući pažnju učenika primjerima/vježbama koji su im interesantni i bliski
- Model cjeloživotnog obrazovanja – nastavnici služe kao uzor svojim učenicima zato jer stalno uče i rade na svom
usavršavanju

45
Statistika
Populacija i uzorak
Populaciju čine svi članovi neke skupine sa određenom karakteristikom koju želimo mjeriti. Npr. za saznati prosječan
IQ stanovnika hrvatske, populaciju čine svi stanovnici, a karakteristiku IQ. Ukoliko je populacija velika ili promjenjiva s
obzirom na proces mjerenja koji koristimo onda mjerenja vršimo na ograničenom broju članova skupine koji nazivamo
uzorak. Statistički podatci koje dobijemo mjerenjem karakteristika uzorka predstavljaju nam procjenu rezultata koji bi
dobili na cijeloj populaciji, uzorak je praktičniji (jednostavniji i jeftiniji za istraživanje) ali i manje precizan (dopuštamo
si pogrešku od najviše 5%). Glavni faktori kod biranja uzorka su reprezentativnost i veličina uzorka. Manja
reprezentativnost i manji uzorak znači veću vjerojatnost pogreške (često povećanje pogreške).

Veličina uzorka ovisi primarno o tome koliko precizno mjerenje želimo, dok je ovisnost o veličini populacije neznatna.
Također ovisno o slučaju veličinu uzorka može biti prilično komplicirano računati, ovdje je naveden samo
najjednostavniji račun. Dakle uzorak od 100 ljudi podjednako će dobro funkcionirati za populaciju od 1000 ljudi i za
milijun ljudi, no veličina uzorka je obrnuto proporcionalna sa kvadratom greške i može se računati pomoću formule:
𝜎2
Veličina uzorka: 𝑛 = (1)
𝑑2

gdje je n veličina uzorka, d je pogreška, σ je standardna devijacija. Obično se uzima σ=1,96 (područje u kojem je 95%
vjerojatnost da će se pojava desiti) pa nam u osnovi varira samo greška. Standardna devijacija je statistički pojam koji
označava mjeru raspršenosti podataka u skupu. Interpretira se kao prosječno odstupanje od prosjeka i to u
apsolutnom iznosu.

Postoji više načina biranja uzorka, s tim da od načina ovisi reprezentativnost:


1. Slučajni uzorak – svaka jedinka populacije ima jednaku vjerojatnost da bude izabrana u uzorak. Daje veliku
vjerojatnost reprezentativnosti uzorka (npr. biranje uzorka prema telefonskom imeniku izostavlja one koji nemaju
telefon pa to ne može biti slučajni uzorak, najbolje je uzeti popis stanovništva i generirati slučajne brojeve).
2. Sistematski uzorak – reprezentativan je kao i slučajni uzorak. Moramo imati popis svih članova koji je posložen na
način da ne unosi pristranost (npr. popis ljudi po abecedi je dobar). Nakon toga odaberemo sistem po kojem
odabiremo članove (npr. prvog člana uzmemo slučajno, a nakon toga uzimamo svakog desetog).
3. Stratificirani uzorak – populaciju je podijeljena u grupe (stratume, slojeve) prema nekim karakteristikama (npr. po
starosnoj skupini) iz kojih se odabire slučajan uzorak. Veličina slučajnog uzorka u stratumu mora odgovarati veličini
stratuma u populaciji (npr. ako ima 60% žena u populaciji, a 40% muškaraca, onda se i uzorak mora sastojati od
60% žena i 40% muškaraca. Ovaj uzorak je reprezentativniji od slučajnog.
4. Klaster uzorak – jeftinija i lošija varijanta slučajnog uzorka, sličan je stratificiranom uzorku, ali je manje
reprezentativan. Populaciju dijelimo u klastere od kojih se slučajnim odabirom uzimaju samo neki koji se u
potpunosti obrade (tj. iz tog klastera uzimamo sve članove u uzorak, npr. podijelimo grad u četvrti i nakon toga
slučajno odaberemo nekoliko četvrti u kojima sve stanovnike ispitamo o njihovom mišljenju o gradskoj upravi).
5. Kvotni uzorak – također sličan stratificiranom, ali je još manje precizan. Ovdje se biraju neslučajni stratumi, zato
jer se prema nekim prethodnim informacijama (npr. pretpostavnka da je jednako muškaraca i žena u nekoj
populaciji) unaprijed određuje koliko će biti velik uzorak ljudi koji se uzima iz pojedinog stratuma.
6. Prigodni uzorak – uzorak koji nam se nađe pri ruci. može biti izuzetno pristran, no može biti i nepristran ukoliko
nam zavisna varijabla ne ovisi o faktorima koji se pojavljuju u uzorku. Npr. izrazito pristrano bi bilo zaključivati o
postotku "normalnih" ljudi među štićenicima psihijatrijske ustanove, no isti uzorak bi mogao dati nepristrane
rezultate ako bismo npr. testirali njihove motoričke sposobnosti.

Da li su uzorci zavisni (parni) ili nezavisni (neparni)?


Općenito, kad god je ispitanik u jednoj skupini povezan s ispitanikom u drugoj skupini, govorimo o parnim uzorcima.
Parni se podaci mogu definirati kao vrijednosti koje se obično mjere u parovima i stoga se može očekivati da one više
variraju između parova, nego između ispitanika unutar para. Ukoliko nisu postignuti ti uvjeti, u tom slučaju govorimo
o neuparenim ili nezavisnim uzorcima. Zašto je to važno? Postoje mnogi statistički testovi koji imaju različite verzije
ukoliko se radi o parnim, odnosno neparnim uzorcima te imaju različit matematički pristup koji može dovesti do
različitih rezultata i zaključaka.

46
Skale mjerenja, tipovi podataka i varijable
Različite tipove podataka opisuju skale mjerenja:
1. Nominalna skala – pridruživanje brojeva određenim stvarima koje im služe kao oznaka (npr. muško = 1, žensko =
2, tako da određenu pojavu možemo samo brojati. Ovakvim podatcima možemo odrediti dominantnu vrijednost,
možemo raditi χ^2-test, te dobiti koeficijent kontigencije C.
2. Ordinalna skala – možemo poredati podatke, tj. možemo odrediti da li je određena pojava veća ili manja na toj
skali. Tipični primjer su školske ocjene (znate da je 3 veće od 2, ali razlike od 1 do 2 i od 2 do 3. nisu iste).
3. Intervalna skala – za ovakve podatke znamo slijed, ali i razliku između brojeva na skali koja je jednaka na svakom
dijelu skale. Nema neke nulte vrijednosti od koje skala kreće (tj. ono što nemamo je apsolutna nula). Npr. takva
skala je Celzijeva skala za temperaturu. Nula stupnjeva ne znači da nema temperature i ne možemo reći da je 10°
duplo veće od 5° jer se radi o intervalnoj skali (da se radi o Kelvinima onda 10K je duplo veće od 5K jer postoji
apsolutna nula).
4. Omjerna skala – slična kao i intervalna skala. Ima apsolutnu nulu, što znači da jednaki brojčani odnosi znače i
jednake odnose u mjernoj pojavi. Primjeri podataka: težina, visina, temperatura u Kelvinima...

Tipovi podataka
a) Kvantitativni (numerički) - podaci mogu biti:
- Diskretni (diskontinuirani) numerički podaci, samo u slučaju ako postoji konačan broj mogućih vrijednosti ili ako
postoji prostor na brojevnom pravcu između svake dvije moguće vrijednosti (npr. iščitavanje vrijednosti sa
zastarjelog živinog termometra).
- Kontinuirani podaci čine ostatak numeričkih podataka koji se ne mogu smatrati diskretnima. To su tipovi
podataka koji se obično povezuju s nekom vrstom naprednog mjerenja na instrumentima prema razvojnom
stupnju struke.

Ono što je važnije jest da se podaci mogu mjeriti intervalnom ljestvicom ili onom omjernom. Za samu statističku analizu
razlika između te dvije ljestvice mjerenja nije važna. Oba tipa podataka (i intervalni i omjerni) mogu se koristiti u
parametrijskim testovima.

b) Kvalitativni (kategorički) podaci mogu biti:


- Binarni (logički) podaci – osnovni tip kategoričkih podataka (npr. pozitivno/negativno; prisutno/odsutno itd.).
- Nominalni podaci - kod kompleksnijih kategoričkih podataka, prvu (i najslabiju) razinu podataka predstavljaju
nominalni podaci. Podaci nominalne razine dobiju se iz vrijednosti koje se razlikuju samo po nazivu. Ne postoji
neka standardna shema poretka (npr. rumunjska, mađarska, hrvatska skupina ljudi itd.).
- Ordinalni (uredbeni) podaci - slični su nominalnim podacima u tome da se podaci razlikuju prema nazivu, a od
nominalnih podataka ih razlikuje shema stupnjevanja (npr. povremeni pušači, umjereni i teški pušači).

Vrsta obilježja Mjerenje obilježja (mjerna ljestvica)


Nominalna (opisna, brojevi, slova, pokazatelji razvrstani u skupine, rase, spol)
Kvalitativno (kategoričko) Ordinalna (uredbena, brojevi, pokazatelji imaju obavijesnu vrijednost, ocjene u
školi, klasifikacije bolesti (CIN I, CIN II, CIN III))
Kontinuirana
Omjerna
Kvantitativno (numeričko) Diskretna
Intervalna

Varijabla – skup podataka iste vrste vrste.


- stalne – ne će se promjeniti tijekom ispitivanja (spol, rasa, genotip...)
- promjenive – mogu se promijeniti tijekom ispitavanja (broj leukocita, koncentracija glukoze...)

Tipovi varijabli: (ispod je još jedna podjela – ostavljena je zbog podataka koji se spominju u testovima!!!)
- Nominalne (kategorijske ili kvalitativne) – mogu imati nekoliko vrijednosti među kojima ne postoji prirodan
redoslijed (chi-kvadrat test). (npr. spol, krvna grupa)
- Ordinalne (ljestvične) – imaju vrijednosti među kojima postoji prirodan poredak, ali nije precizno određeno koliko
je vrijednosti (neparametrijski test)
- Metričke (kvantitativne) – možemo im pridružiti realne brojeve te ih podvrgnuti matematičkim operacijama (t-
test, parametrijski testovi)

47
Tipovi varijabli (PODJELA IZ CHAPTER – SKRIPTE!!!!!!!!!!!!!!!!!!!!!!!!!):
- Kategorička varijabla je varijabla koja ima kategorije vrijednosti, npr. varijabla 'spol' ima dvije vrijednosti: muško
i žensko.
- Diskretna varijabla ima konačan broj vrijednosti u istoj stavci, bez intervala ili djelića vrijednosti, npr. Osoba ne
može imati pola bolesti ili pola ručka.
- Kontinuirana varijabla može varirati u količini, npr. Novac u banci, mjesečna zarada. Postoje jednaki intervali i
obično prava nula, npr. moguće je da nema novca u banci.

Kategoričke varijable odgovaraju kategoričkim podacima. Kontinuirane varijable odgovaraju intervalnim i omjernim
podacima.

Zavisne i nezavisne varijable:


- Nezavisna varijabla je prethodna varijabla koja uzrokuje, djelomično ili u cjelini, određeni ishod; to je poticaj koji
utječe na odgovor, faktor koji može biti modificiran (npr. u eksperimentalnim ili drugim uvjetima) da utječu na
ishod.
- Zavisna varijabla je ishodna varijabla koja je uzrokovana, u cijelosti ili djelomično, ulaznim prethodnim
varijablama. To je učinak, posljedica ili odgovor na nezavisne varijable.

Statistička hipoteza
Hipoteza može biti točna (istinita) ili netočna (neistinita). Testiranje hipoteze je proces traženja istine, odnosno
stvarnog stanja izraženo vjerojatnošću. Pri interpretaciji rezultata statističkih testova valja imati na umu da se hipoteza
ne dokazuje, ona se samo prihvaća ili odbacuje ovisno o rezultatima testiranja! Što je veća apsolutna vrijednost
statističkog testa (tj. bez obzira na njezin predznak + ili -), veći je i dokaz protiv nul-hipoteze, tj. manja je vjerojatnost
da je nul-hipoteza istinita.

- Nul-hipoteza, H0 pretpostavka je o izostanku efekta, tj. da ne postoji razlika među uzorcima u populaciji od interesa
(npr. nema razlike u aritmetičkim sredinama). To je hipoteza koja se testira, hipoteza da nema razlike (eng.
hypothesis of no difference). Postavlja se (najvećma) u svrhu odbacivanja. Odbacuje se ili prihvaća. Primjer H0: u
muškaraca i žena u populaciji jednak je postotak pušača.
- Alternativna hipoteza, H1 vrijedi ako nul-hipoteza nije istinita. Najčešće se direktno odnosi na teorijsku
pretpostavku koja se želi istražiti, tj. često je alternativna hipoteza upravo hipoteza istraživača. Primjer H1: u
muškaraca i žena u populaciji različit je postotak pušača

Odluka o tome koje vrijednosti spadaju u područje odbacivanja, a koje u područje prihvaćanja donosi se na temelju
razine značajnosti (α - alpha, sig. – eng. significance). Razina značajnosti (α) predstavlja graničnu vjerojatnost uz koju
još uvijek valja prihvatiti eventualno istinitu nul-hipotezu. Primjer: razina značajnosti α = 0,05:

- ako je P(vjerojatnost) < 0,05 odbacuje se nul-hipoteza, tj. rezultati su statistički značajni (signifikantni) na 5%
razini značajnosti;
- ako je P ≥ 0,05 prihvaća se nul-hipoteza; tj. rezultati nisu statistički značajni (signifikantni) na 5% razini
značajnosti, odnosno nema dovoljno dokaza za odbacivanje nul-hipoteze.

Izbor veličine razine značajnosti statističkog testa (0,05; 0,01; 0,01; 0,001) je proizvoljan. Veličina razine značajnosti
govori o tome u kojem postotku si istraživač dopušta načiniti grešku odbacivanja istinite nul-hipoteze.

- Greška tipa I nastaje kada se odbaci istinita nul-hipoteza. Razina značajnosti statističkog testa α predstavlja
maksimalnu šansu, odnosno vjerojatnost da se načini greška tipa I. Veličinu razine značajnosti valja odrediti prije
prikupljanja podataka. (što manje to bolje, uobičajeno 0.05 tj. 5%)
- Greška tipa II nastaje kada se ne odbaci neistinita nul-hipotezu te zaključi da nema efekta kada on stvarno postoji.
Šansa da se načini greška tipa II naziva se β (beta). (što manje to bolje β = 0,2 ili manje, općenito β >= α).

H0 se odbacuje H0 se prihvaća
(zaključujemo da razlika postoji) (zaključujemo razlika ne postoji)
H0 je istinita
Pogreška tipa I (α) Nema pogreške
(zapravo razlika ne postoji)
H0 nije istinita
Nema pogreške Pogrešak tipa II (β)
(zapravo razlika postoji)

48
Snaga testa računa se kao (1- β) te predstavlja vjerojatnost odbacivanja neistinite nul-hipoteze. Na snagu statističkog
testa utječu:

- veličina uzorka - snaga raste kako raste veličina uzorka;


- varijabilitet opažanja - snaga pada kako raste varijablitet opažanja;
- efekt od interesa (efekt razlike) - snaga je veća što je veći efekt;
- razina značajnosti (α) - snaga je veća što je veća razina značajnosti.

Uočljivo je da je parametar na koji je najlakše utjecati zapravo veličina uzorka. Stoga se tzv. analiza snage (engl. power
analysis) koristi za izračunavanje potrebne veličine uzorka za istraživanje s visokom vjerojatnošću okrivanja stvarnog
efekta zadane veličine. Snaga “dobrog” statističkog testa trebala bi biti barem 70-80%.

Testiranje statističke hipoteze


1. Postavljanje hipoteze (nul-hipoteza – razlike nema, alternativna hipoteza – razlika postoji)
2. Odabir statističkog testa (vrsta podataka, veličina uzorka, povezanost skupina) npr. χ2‐test
3. Određivanje razine značajnosti (α) – iskazuje se vjerojatnošću P < α
4. Izračun statistike testa (specifična vrijednost testa χ2, t, h, z...) (P vrijednost)
5. Zaključak (P < α ili P > α) – prihvaćanje ili odbacivanje nul-hipoteze

Deskriptivna statistika
Služi nam da rezimiramo obilježja uzorka ili jednostavne odgovore uzorka (npr. frekvencija ili korelacije). Ne nastoji
zaključiti ili predvidjeti parametre populacije. U njoj se zaključuje od svih pojedinačnih slučajeva na cjelinu pojave. U
toj grani statistike se opisuju proučavanje pojave s obzirom na njihovu:

- Središnju tendenciju – određivanje srednjih vrijednosti


- Raspršenje podataka – određivanje smjera disperzije
- Postojeću povezanost – između 2 ili više varijabli – određivanjem koeficijenta korelacije
- Odnos dijela prema cjelini – određivanjem postotaka i odnosa raznih logički povezanih pojava što se ostvaruje
određivanjem relativnih brojeva
14.4.1 Osnovne značajke skupine i raspodjela
Mjere centralne tendencije
- Aritmetička sredina (suma svih rezultata / broj rezultata)
- Medijan (centralna vrijednost - Vrijednost koja se u nizu rezultata nalazi točno u sredini; položajna mjera – ne
računamo ju) – položaj medijana (N+1)/2 za neparan N, za paran N medijan je aritmetička sredina dva srednja
rezultata
- MOD (dominantna vrijednost, ona koja se najviše puta ponavlja) - ako su rezultati grupirani u razrede MOD je
aritmetička sredina razreda s najvećom frekvencijom

Mjere varijabilnosti
- Raspon (razlika između maksimuma i minimuma) – najnetočnija mjera varijabilnosti npr. slika dolje

- Standardna devijacija () - označava prosječno odstupanje od aritmetičke sredine


- Koeficijent varijacije (KV) - označava koliki postotak od aritmetičke sredine iznosi standardna devijacija, služi za
međusobnu usporedbu varijabilnosti različitih svojstava
- Standardna pogreška aritmetičke sredine (SE, SEM) – koliko je precizna procjena prave aritmetičke sredine iz
aritmetičke sredine uzorka ? Standardna greška je to manja što je manja standardna devijacija uzorka i veći broj
mjerenja (N). Označava odstupanje aritmetičkih sredina uzoraka od prave aritmetičke sredine populacije.

PAZITI!!!

49
Normalna (Gaussova) raspodjela
Testiranjem raspodjele na normalnost dobijemo bolji uvid u
podatke, a to nam uvjetuje izbor statističkog testa (ne možemo
sve testove koristiti na bilo kakvu raspodjelu).

Normalna raspodjela -> parametrijski testovi

Ne-normalna raspodjela -> neparametrijski testovi

Kako testirati raspodjelu na normalnost? Kolmogorov-Smirnov,


Shapiro-Wilk i dr. testovi testiraju značajnost razlike teoretske i
empirijske raspodjele. P < 0.05 empirijska raspodjela nije
normalna, P > 0.05 empirijska raspodjela je normalna.

Samo uspoređujemo dijelove površine ispod gaussove i naše krivulje te pratimo odstupanja

- H0: uzorak je normalno distribuiran


- H1: uzorak nije normalno distribuiran

VRSTA RASPODJELE I VARIJANCA UVJETUJU IZBOR STATISTIČKOG TESTA !!!

14.4.2 Koeficijenti korelacije (SPSS – bivariate)


Korelacija – povezanost između dvaju pojave (varijable) *kod nominalnih varijabli nema korelacije (npr. spol)

Dvije varijable mogu biti u 4 odnosa (!!!):


- Kada mala vrijednost jedne varijable odgovara maloj vrijednosti druge varijable
- Kada mala vrijednost jedne varijable odgovara velikoj vrijednosti druge varijable
- Kada vrijednost jedne var u nekim intervalima odgovara maloj vrijednost druge var, a u drugim intervalima
velikoj vrijednosti (nemotona korelacija)
- Kada se na osnovu vrijednosti jedne varijable ne može zaključiti ništa o vrijednosti druge vaijable.

Koeficijenti korelacije izražavaju mjeru povezanosti između dvije varijable u jedinicama neovisnima o konkretnim
jedinicama mjere u kojima su iskazane vrijednosti varijabli. Postoji više koeficijenata korelacije koji se koriste u
različitim slučajevima. U praksi se prilikom rada s linearnim modelima najčešće koristi Pearsonov koeficijent korelacije
(produkt moment koeficijent korelacije). Prilikom rada s modelima koji nisu linearni najčešće se koristi Spearmanov
koeficijent korelacije (produkt rang koeficijent korelacije).

Koeficijent korelacije:
- pokazuje stupanj ( i smjer) korelacije
- Negativna korelacija (-1) = potpuno neslaganje, funkcionalna korelacija (0) = nema zavisnosti, funkcionalna
korelacija (1) = potpuno slaganje
- zaključke o vrijednosti koeficijenta
korelacije donosimo uz određenu
razinu vjerojatnosti (p<0,05; p<0,01)
- (+) pozitivan smjer korelacije
pokazuje da porast vrijednosti
varijable X prati porast vrijednosti
varijable Y
- (-) negativan smjer korelacije
pokazuje da porast vrijednosti
varijable X prati opadanje vrijednosti
varijable Y

50
PEARSONOV KOEFICIJENT KORELACIJE r
Temeljni koeficijent korelacije iz kojeg se izvodi većina drugih koeficijenta. Mjera stupnja linearne povezanosti dviju
kvantitativnih varijabli. Vrijednost Pearsonovog koeficijenta korelacije kreće se od +1 (savršena pozitivna korelacija)
do –1 (savršena negativna korelacija). Predznak koeficijenta nas upućuje na smjer korelacije – da li je pozitivna ili
negativna, ali nas ne upućuje na snagu korelacije. Pearsonov koeficijent korelacije bazira se na usporedbi stvarnog
utjecaja promatranih varijabli jedne na drugu u odnosu na maksimalni mogući utjecaj dviju varijabli.

Pearsonov koeficijent korelacije je parametrijski. Potreban uzorak: n>30, poželjno je n>100. Barem jedna varijabla
mora biti normalno distribuirana. Linearna povezanost varijabli. Intervalna ili omjerna mjerna ljestvica.

r=0 (nema povezanosti), 0<r<1 ili -1<r<0 (stohastička povezanost), r=1 ili r=-1 (funkcionalna povezanost).

Spearmanov koeficijent korelacije P


Spearmanov koeficijent korelacije (produkt rang korelacije) koristi se za mjerenje povezanosti između varijabli u
slučajevima kada nije moguće primjeniti Pearsonov koeficijent korelacije. Ako se radi o manjem br slučajeva (n>30),
opravdano je izračunavanje ovog koeficijenta korelacije koji pretpostavlja redanje po rangu rezultata u jednoj i drugoj
varijabli. Ako ima više jednakih rezultata, dodjeljuje se prosječni rang. Spearmanom koeficijent služi za
neparametrijske uzorke.

Računa se kada je barem jedna od varijabli X ili Y mjerena ordinalnom skalom, kada niti X niti Y ne slijede normalnu
distribuciju te kada je uzorak mali i kada je povezanost varijabli nelinearna. Statistički značajna korelacija je kada je
p<0.05. Ne koristi se kada se jedna varijabla izračunava iz druge.

KROSTAB KOEFICIJENT KORELACIJE


Ovaj test koristimo za prebrojavanje.

Inferencijalna statistika
Nastoji zaključiti ili predvidjeti parametre populacije ili ishode iz jednostavnih mjera, npr. uzimanjem uzorka i
statističkim tehnikama. Temelji se na vjerojatnosti.
U njoj se zaključuje od dijela slučajeva na cjelinu svih slučajeva.

Statističke metode:
- Metode koje uspoređuju metričke varijable – paramterijski testovi (t-test, analiza varijance)
- Metode koje uspoređuju nominalne varijable – chi kvadrat test
- Metode koje uspoređuju odrdinalne varijable – neparametrijski testovi (Mann-Whitney U test, medijan test,
Kruskal-Wallis test, Kendal – S test, Komogorov-Smirnov test)

Statistički testovi:
- Parametrijski – pokazatelji ne odstupaju od normalne razdiobe i kada se obrađuju izvorna mjerenja
- Neparametrijski – koriste se kod malih uzoraka, kada je nemoguće odrediti distribuciju podataka ili kada je
primjenjena kategorijska skala mjerenja.

Odabir statističkog testa ovisi o:


- Vrsti podataka
- Raspodjeli
o Parametrijski – pokazatelji koji ne odstupaju od normalne razdiobe (distribucije)
o Neparamtrijski – nisu ograničeni normalnošću raspodjele
- Uzorku
o Parametrijski – veliki uzorci, zavisni uzorci
o Neparamtrijski – mali uzorci, nezavisni uzorci
- Broju pokazatelja
o Jednosmjerna (univarijantna) analiza: traži razlike među slučajevima unutar jedne varijable
o Dvosmjerna (bivarijantna )analiza: traži vezu između dvije varijable.
o Multivarijatna analiza: traži vezu između dviju ili više varijabli.
- Istraživačka pitanja

51
14.5.1 Odabir testova

U SPSS kad odaberemo neparametrijske testove pita nas jel se radi o zavisnim ili nezavisnim uzorcima tek nakon toga
imamo testove koji nam se nude. Paziti ako imamo varijablu npr. GRUPE i OCJENE. Grupa1 i Grupa2 su u istom stupcu
ali su nezavisni uzroci dok su sve ocjene iste grupe zavisne jer ovise o grupi.

PARAMETRIJSKI TESTOVI NEPRAMETRIJSKI TESTOVI SVRHA TESTA


Studentov ili Mann-Whitney U-test Usporedba dva nezavisna uzorka
t-test za nezavisne uzorke Wald-Wolfowitz test koji su uzeti iz iste populacije
t-test diferencija ili Usporedba dva seta opažanja na
Wilcoxon test sume rangova
t-test za zavisne uzorke istom uzorku
Kruskall-Wallis analiza varijance
Jednosmjerna analiza varijance Usporedba više od dva nezavisna
rangova (H-test)
(F-test, ANOVA) uzorka koji su uzeti iz iste populacije
Medijan test
Freedmanova analiza varijance
Analiza varijance s ponavljanim Usporedba više od dva seta
Kendall's W-test
mjerenjima opažanja na istom uzorku
Cochran's Q-test

Podaci Nominalni Ordinalni Intervalni i omjerni


- Binomial
Jedan uzorak - Kolmogorov-Smirnov test - t-test
- Chi-kvadrat
- Mann-Withney U test
- Fischer-ov test - t-test
- Kolmogorov-Smirnov test
Nezavisni točnosti - Pearsonova korelacija
- Wald-Wolfowitz Spearman
Dva uzorka - Chi-kvadrat test proizvodnog momenta
- Ordinalna regresijska analiza
- Wilcoxon matched pairs test
Zavisni - McNemer - t-test za parove uzoraka
- Sign test
- Chi-kvadrat test - Kruskal-Wallis test
Nezavisni - Friedmanov test
(test za k uzoraka) - Ordinalna regresijska analiza
- Jednosmjerna ANOVA
Više uzoraka
- Dvosmjerna ANOVA - Ponovljeno mjerenje
Zavisni - Cochran Q
- Tukey hsd test ANOVA
- Scheffe test

Nomilani Ordinalni Intervalni i omjerni


- Tetrachoric
korelacija
- Spermanov rho
- Point biserial - Pearson product
Mjera povezanosti - Rank order correlation
korelacija moment correlation
- Partial rank correlation
- Phi koeficijent
- Chramer's V
- Mann-Withney U test
- T-test za dva nezavisna
- Kruskal-Wallis
uzorka
- Wilcoxon parovi podudaranja
- Chi-kvadrat - t-test za dva zavisna
- Friedman dvosmjerna analiza
- McNemar uzorka
Mjere razlike varijance
- Cochran Q - Jednosmjerna ANOVA
- Wald-Wolfowitz test
- Binomni test - Dvosmjerna ANOVA
- Kromogorov-Smirnov test
- Tukey hsd test
- Scheffe test
Mjere linearne veze
- Linearna regresija
između zavisnih i
- Mnogostruka regresija
nezavisnih varijabli.
- Ordinalna regresijska analiza - Faktorska analiza
Identifikacija
- Osnovna analiza
temeljnih čimbenika,
povezivanja
redukcija podataka

52
14.5.2 Parametrijski testovi (testovi za provjeru hipoteza)
Parametrijska statistika: gdje su karakteristike ili čimbenici populacije poznati

Poželjno je koristiti parametrijske metode ako se smije. Da bi mogli koristiti parametrijske tesove moraju biti ispunjeni
sljedeći uvjeti: n>=30 (preporuka 100), podaci moraju biti intervalni ili omjerni, Normalna (Gaussova) distribucija
(provjeravamo je pomoću Komogorov-Smirnovog testa – test računa površnu ispod i iznad krivulje, manje od 0.05 -
značajno odstupa, nije normalna distribucija).

T-test (2 aritmetičke sredine – jesu li značajne) – studentov t-test


- Koristi se kada imamo 2 uvjeta. T-test procjenjuje da li postoji statistički značajna razlika između ta 2 uvjeta.
- Za t-test podaci: intervalni i omjerni
- Uspoređuje dva uzorka i razlike između istih i govori nam jesu li te razlike značajne
- Računa se: (aritmetička sredina prvog uzorka - aritmetička sredina drugog uzorka) / pogreška u razlici
aritmetičkih sredina. Veća t-vrijednost -> veće odstupanje od skupina
- Ispituje da li se razlike između dviju aritmetičkih sredina mogu smatrati statistički značajnima ili su nastale
slučajno. Odabir postupka ispitivanja T-testom ovisi o veličini uzorka (n>30) i o (ne)postojanju korelacije između
varijabli.
- Spada u metode koje opisuju metričke varijable.
- Tipičan način je polazak od nulte hipoteze koja kaže da su aritmetičke sredine u dva seta podataka mjerenja
jednake.

F-test
- Koristi se kada želimo usporediti varijancu dva uzorka ili više aritmetičkih sredina.
- temelji se na usporedbi varijanci (Analiza varijance - ANOVA)
- primjenjuje se za kvantitativna svojstva kada želimo usporediti varijancu dva uzorka ili kada želimo analizirati
razlike između aritmetičkih sredina više uzoraka (3 i više uzoraka)
- Test-statistika F je slučajna varijabla koja ima F-distribuciju s DF1 i DF2 stupnjeva slobode.
- Uz razinu značajnosti α koju istraživač sam izabire s obzirom na moguće posljedice (najčešće 0,05 ili 0,01)
interpretacija rezultata je ista kao i u slučaju interpretacije t-testa. Drugim riječima nul-hipoteza – aritmetičke
sredine svih grupa (uzoraka) su jednake – bit će prihvaćena ako je granični F veći od izračunatog. Ako je pak
granični F manji od izračunatog, onda nul-hipotezu treba odbaciti. Drugim riječima, prihvatit će se hipoteza da se
bar jedna aritmetička razlikuje od preostalih.

Analiza varijance (ANOVA)


- više uzoraka
- treba biti normalna raspodjela (približno)
- što se pitamo? je li sve srednje vrijednosti uzoraka dolaze od iste populacije ili je su li neke od srednjih vrijednost
toliko udaljene da ne dolaze od iste populacije (dolaze od različitih populacija)
- ne pitamo jesu li odabrani uzorci isti nego samo jeli slučajno pripadaju li istoj populaciji
- možemo slično dobiti s više t-testova
- kada bi išli s t-testovima onda imamo (0.95)^brojTestovaKojeSmoNapravili za alfa=0.05 (5%) pa je ukupni alfa za
npr. 3 mjerenja (0.95)^3=0.875 tj alfa=1-0,875=0.143 (prema ukupnom testu bi trebali prihvatiti nul hipotezu jer
sada govorimo o alfa = 0.143 > 0.05
- H0: nema razlika između uzoraka (pripadaju istoj populaciji), ako ju odbacimo znači razlike među uzorcima su
značajne
- npr. 3 razine zaposlenika s različitim plaćama, želimo saznati ima li razlika u plaćama koje su statistički značajne
- trebamo imati više od dva zavisna uzorka te jedan nezavisni uzorak s više grupa (npr. nezavisni uzorak
zaposlenika s 3 grupe, i zavisni uzorak plaća koje ovise o razini zaposlenika)
- provjeriti je li raspodjela normalna (homogenity of variances) nesmije biti manje od 0.05
- govori da negdje među uzorcima postoji razlika ali ne govori gdje
- post Hoc nam govori gdje su točno značajne razlike tj. između kojih uzoraka (Sig. < 0.05)

https://www.youtube.com/watch?v=0Vj2V2qRU10

https://www.youtube.com/watch?v=jYn5Jv7Gh4s

53
Statistički postupak koji se uspoređuju različite komponente varijance. To je specijalni slučaj T-testa sa više od 2 uzorka
(tj. više grupa). Jednosmjerna analiza varijance ANOVA – primjenjuje se kada uspoređujemo rezultate zavisne varijable
dobivene istraživanjem sa jednom nazavisnom varijablom koja ima više razina ili kategorija. Što je razlika među
grupama veća, a unutar grupe manja, to je ukupna razlika veća. Višesmjerna analiza varijance MANOVA – primjenjuje
se kada uspoređujemo rezultate više zavisnih varijabli s više nezavisnih varijabli. Kod MANOVE osim utjecaja većeg
broja nezavisnih varijabli na zavisnu gledamo i interakciju između većeg broja zavisnih varijabli.

Levenov test – za ustanoviti jesu li varijance ujednačene da znamo odabrati t. Za analizu varijance izračunava se i F-
vrijednost testa. F omjer je značajan, to znači da se promatrane skupine stratistički značajno razlikuju u istraživanoj
varijabli. (F je veći, sig. je veća -> za usporedbu 3 ili više grupa po jednom kriteriju). Da bi provjerili između kojih parova
postoji razlika, moramo primjeniti jedan od naknadnih testova. Najčešći su: Sheffeov test (izvor ovisi o statističkoj
grešci) i LSD Tukey test (koji želimo izbjeći) - utvrđuje se između kojih grupa su razlike značajne, a između kojih ne. Za
usporedbu više grupa -> biti oprezan!

Postupak analize varijance


- Postaviti nul - hipotezu
- Prikupiti podatke i provjeriti njihovu distribuciju
- Utvrditi razliku između aritmetičkih sredina i analizirati ih F - TESTOM
- Procijeniti vjerojatnost da su ustanovljene razlike slučajne (ne odbacujemo nul-hipotezu i zaključujemo da su
uzorci iz iste populacije) ili statistički značajne (odbacujemo nul - hipotezu i zaključujemo da su uzorci iz različitih
populacija; P<0,05 ili P<0,01)
- Utvrditi između kojih parova uzoraka su razlike statistički značajne i na kojoj razini vjerojatnosti

14.5.3 Neparametrijski testovi


Neparametrijska statistika: gdje su karakteristike ili čimbenici populacije nepoznati.

Koristi se kod malih uzoraka, kada je nemoguće odrediti distribuciju podataka ili kada je primijenjena kategorijska skala
(nominalna ili ordinalna) mjerenja. Može se koristiti i kada su primijenjene druge skale (intervalna i omjerna), ali bi
takav postupak bio neracionalan jer na taj način namjerno gubimo niz informacija i precizniji postupak. Imaju manju
snagu otkrivanja stvarnog efekta u odnosu na ekvivalentni parametrijski test. Ako između 2 populacije postoji razlika
to ćemo obično preciznije i uspješnije ustanoviti pomoću parametrijskih nego neparametrijskih testova.

Chi kvadrat test


- jedan od najčešćih neparametrijskih testova
- primjenjujemo ga za kvalitativna svojstva
- temelji se na učestalosti (frekvencijama) pojedinih kategorija rezultata koje uspoređujemo s nekom drugom
učestalošću koja bi se očekivala pod određenom nul-hipotezom
- na osnovi dobivenog rezultata ne odbacujemo ili odbacujemo nul-hipotezu koja obično glasi da nema statistički
značajne razlike između opažene i očekivane učestalosti
- u račun treba unijeti učestalost – frekvenciju (nikada ne smijemo unositi mjerene vrijednosti ni postotke) ne
samo za nešto što se dogodilo, već i za ono što se nije dogodilo

54
- Najlakše Chi - kvadrat izračunavamo ukoliko rezultate unosimo u tablice.
- Nastojimo izračunati postoji li statistički značajna povezanost u frekvencijama dviju nominalnih varijabli ili
između dobivenih i očekivanih frekvencija.
- Koristi se: kada su podaci svih varijabli nominalni (kategorični), kada su rezultati izraženi u frekvencijama
pojedinih odgovora, za testiranje povezanosti između dvije nominalne varijable i za testiranje odstupanja
dobivenih frekvencija.
- Može imati 3 različita modaliteta, Chi kvadrat za: nezavisne uzorke, zavisne uzorke i hipoteze
- Osnova za izračunavanje Chi kvadrat testa je kontigencijska tablica koja prikazuje sve moguće kombinacije
zajedničkog pojavljivanja promatranih obilježja.
- Stupnjevi slobode d(F)=(redak-1)*(stupac-1).
- Intrepretacija značajnosti Chi kvadrat testa ovisi o izabranoj razini (razina 95% je -0.05 – ako je značajnost manje
od 0.05 tada ne smijemo koristiti te podatke kod parametrijskih testova)

Najčešće upotrebljavamo hi-kvadrat test u ovim slučajevima:

1. Kad imamo frekvencije jednog uzorka pa želimo ustanoviti odstupaju li te frekvencije od frekvencija koje
očekujemo uz neku hipotezu.
2. Kad imamo frekvencije dvaju ili više nezavisnih uzoraka te želimo ustanoviti razlikuju li se uzorci u opaženim
svojstvima.
3. Kad imamo frekvenciju dvaju zavisnih uzoraka, koji imaju dihotomna svojstva, te želimo ustanoviti razlikuju li se
uzorci u mjernim svojstvima, tj. je li došlo do promjene.

Npr. ako imamo dva uzorka, žene i muškarce koji su obavljali neku anketu (DA/NE) i želimo vidjeti razlikuju li se
odgovori u odnosu na spol. Ukupno imamo 70% DA odgovora, a mi pregledavamo koliko odgovi muškaraca odstupaju
od tih 70%, a isto radimo i za žene. Ukoliko su ta odstupanja značajna, onda su i razlike u testu statistički značajne što
znači da odbacujemo nul hipotezu.

Medijan test
Provjerava da li su dva ili više nezavisna uzorka izvučena iz populacije s istim medijanom koristeći Chi kvadrat statistiku
(u biti provjerava da li je iznad ili ispod prosjeka).

Mann-Whitney U-test
Najčešći korišteni neparametrijski test sa dva nezavisna uzorka: provjerava da li sa dva uzorka iz polulacije s jednakim
medijanom. Moćniji je od medijan testa jer koristi rangiranost, nije osjetljiv na oblik distribucije i jednakost varijance
promatranih varijabli. U je broj koji nam kaže koliko je puta vrijednost u prvoj grupi prešla vrijednost u drugoj grupi,
kada su vrijednosti sortirane od manje prema većoj.

Wilcoxonov test
Neparametrijski test za usporedbu rezultata dvaju mjerenja iste pojave (prije i poslije tretmana). Pokazuje da li su
rezultate ostvareni u jednom mjerenju jednaki ili različiti od onih ostvarenih u drugom mjerenju. Pogodan za
neparametrijske procjene u kojima nemamo asimetričku sredinu.

Kruskal-Waliss test
U osnovi je zamjena za analizu varijance i za razliku od nje koristi rangove.

Freedmannov test
Neparametrijski ekvivalent analizi varijance za zavisne uzorke. Za njega nije bitan oblik distribucije niti jednakost
varijance promatranih zavisnih mjerenja. Njegov koncept se svodi na pretvaranje rezultata u rangove, a oni koji imaju
isti rang dobivaju tzv. vezani ili zajednički rang. Ovaj test koristimo kada imamo veći br eksperimentalnih situacija ili
ponovljenih mjerila.

Kendal S test
Provjerava da li neka distribucija odstupa u odnosu na željenu distribuciju. Uspoređuje površinu ispod i iznad krivulje.

McNemanov test
To je test za ispitivanje 2 nezavisne varijable. Varijable su dihotomne, to znači da su samo dvije vrijedonosti koje mogu
biti – da ili ne, + ili -.

55
14.5.4 Analize
Klasterska analiza
Klasterska analiza omogućuje istraživaču da grupira zajedno slične i homogene subpopulacije ljudi. Nikad ne daje
konačan rezultat. Za klasifikaciju podataka. Grupiranje srodnih podataka kada imate velik broj atributa (unaprijed
zadano ovoj grupi).

Najupotrebljavanija metoda je hijerarhijsko klasterska (pomoću


dendograma očitava nivoe i grupe):

- Rezultat na većem broju nivoa (nije jednoznačan)


- Broj nivoa sami određujemo
- Nivoi su tamo gdje dolazi do nagle promjene između grupa

Dendogram – prikaz strukture u obliku stabla, može vertikalno ili


horizontalno

Princip klasterske metode

- Udaljenost svake jedinke od svake ostale


- Najmanja udaljenost označava koje dvije jedinke su najbliže

REGRESIJSKA ANALIZA
- znači odnos između odabranih vrijednosti jedne varijable (varijable X) i s njima povezanih vrijednosti druge
varijable (varijable Y)
- koristimo je kada želimo istražiti mogućnost procjene vrijednosti jedne varijable (varijabla Y) na temelju poznate
vrijednosti druge varijable (varijable X)
- vrijednosti mjerenja predstavljene su kao parovi rezultata koji se sastoje od podatka za nezavisnu varijablu
(obično varijablu X) i od podatka za zavisnu varijablu (obično varijablu Y)
- parovi rezultata prikazani su kao točke u koordinatnom sustavu koji na osi X ima vrijednosti za varijablu X, a na
osi Y vrijednosti za varijablu Y
- tj. Chapter 36b ukratko: znajući vrijednosti jedne varijable možemo predvidjeti vrijednosti druge varijable
- koeficjenti: R2 (koliko % rezultata možemo objasniti pomoću odabranih parametara) i β(što je veći, ta varijabla
ima veći utjecaj. npr. β = 0.6 : promijeni li se rezultat u grupi za 1 stdev, ukupni rezultat se mijenja za 0.6 stdev)

Linearna regresija
- ako parovi varijabli pokazuju prisustvo korelacije, funkcionalnu vezu prikazuje JEDNADŽBA REGRESIJE

REGRESIJA - prognoza iz jedne varijable u drugu

JEDNADŽBA PRAVCA REGRESIJE

- u koordinatnom sustavu crta (ili krivulja) spaja točke koje su funkcija mjerenja varijable X i varijable Y
- crta regresije pokazuje tip odnosa između varijabli X i Y:
- ako je pravac, onda je povezanost linearna i određena jednadžbom pravca regresije
- ako nije pravac, tada se radi o zakrivljenoj korelaciji
- kad se crta regresije, prikazana u koordinatnom sustavu, može opravdano opisati pravcem tada se i matematički
može opisati jednadžbom pravca: Y = a + bX
o Y i X= najvjerojatniji rezultat varijable y za
određeni rezultat varijable X
o a = odsječak na osi Y
o b = koeficijent nagiba
Primjer: pravac regresije za rezultate ostvarene na testu X i
testu Y ( 8 studenata)

56
Dvosmjerna analiza
- Može usporediti 3 ili više grupa formirane na temelju 2 kriterija. Možemo ispitati da li se grupe značajno
razlikuju.
- Složenije: možemo ispitati koliko se grupe razlikuju na temelju 2 kriterija i koliko tim razlikama doprinosi jedan
faktor a koliko drugi.
- Primjer. Možemo ispitati da li se grupe u startu razlikuju i da li se razlikuju u odnosu na niže razine znanja i na
više razine znanja.

ETA^2 KORELACIJA
SSeffect = zbrojeve kvadrata za sve gdje je efekt učinkovit;

SSerror = zbroj kvadrata za sve što ima veze sa pogreškom

Pokazuje korelaciju između kontinuirane i kategoričke


varijable. To jest kako pojedine točke kategoričke varijable djeluju na kontinuiranu varijablu. ŠTO JE VEĆI ETA, VEĆI JE
UTJECAJ.

Faktorska analiza
Faktorskom se analizom ispituju međuzavisnosti unutar velikog broja varijabli, te ih sa nastoji objasniti pomoću malog
broja zajedničkih faktora.

koef. za poznate podatke: KMO (Kaiser Meyer Olkin). KMO>0.6 da se može raditi faktorska analiza.

Može poprimiti 2 forme:


- eksploratorna – pokazuje odnose između različitih varijabli (Uporaba faktorske analize za istraživanje do sada
nepoznate skupine varijabli, traženje temeljnih obrazaca, klastera i grupa)
- konfimatorna – služi za provjeru unaprijed formuliranog modela (Mnogo stroža, testira pronađeni set faktora
protiv hipotetskog modela grupiranja i odnosa)

Faktorska analiza služi za redukciju podataka. Svrha redukcije podataka je uklanjanje redudantih varijabli iz
podatkovnih dokumenata sa manjim brojem nekoreliranih varijalbli.

Kriterij procjene: Bolje manje faktora ali uz uvjet da možemo objasniti što faktor znači tako da ih dovedemo u vezu sa
atributima. To radimo komponetnom matricom. Koristi se za utvrđivanje valjanosti u testu.

KOJE VARIJABLE UKLJUČITI U FAKTOR? Za svaku varijablu:

- Uključiti varijable s najviše bodova


- Izvostaviti varijable s malo bodova
- Potražiti gdje postoji bodovni razmak između onih koji su uključeni i onih koji su isključeni
- Pregledajte odabir kako bi provjerili da nema niže boovnih varijabli koji su isključeni a da su konceptualno blizu
onima što su uključeni
- Pregledajte odabit kako bi se uvjerili da ne postoji nema visoko bodovana varijabla koja bi trebala biti isključena
ako nije dovoljno konceptualno bliska ovim sto su uključeni.
- Pregledajte svoj konačan odabit da vidite da su konceptualno slični

Podaci su pogodni za faktorsku analizu:

- Veličina uzorka – od namanje 30 do najmanje 300


- Omjer veličine uzorka s obzirom na br. varijabli: od 5:1 do 30:1
- Korelacija ne smije biti manje od 0.3
- Bartlettov test sfernosti bi trebao biti statistički značajan
- Kaiser-Mayer-Olkin mjera uzorkovanja mora biti 0.6 ili više (max 1)

Link za SPSS lekcije: https://www.youtube.com/user/how2stats/videos

57
58

You might also like