Professional Documents
Culture Documents
Metodika Nastave Informatike II
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.
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.
Da bi student dobio potpun uvid u ulogu osnovnih slučajeva u stvaranju rekurzije, treba usvojiti i deklarativne i
proceduralne pristupe.
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.
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?
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.
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.
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.
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
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.
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.
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.
6
Simulacija stoga, pracenje izvršavanja 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.
Primjene rekurzije: rekurzivne procedure, gramatika, programerski koncept, strukure podataka, dokazi. McCarthy
91 funkcija.
…
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.
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“.
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
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.
Š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.
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.
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…
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.
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.
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)
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
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
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.
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.
http://www.ansatt.hig.no/frodeh/algmet/animate.html
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.
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
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.
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.
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 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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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…
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.
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.
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.
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.
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:
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.
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.
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.
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.
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
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.
- 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)
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:
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.
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.
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.
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.
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)
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.
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.
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:
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.
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".
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.
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.
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.
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.
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.
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.
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).
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.
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.
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
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.
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.
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.
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:
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%.
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:
Mjere varijabilnosti
- Raspon (razlika između maksimuma i minimuma) – najnetočnija mjera varijabilnosti npr. slika dolje
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).
Samo uspoređujemo dijelove površine ispod gaussove i naše krivulje te pratimo odstupanja
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).
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.
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.
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.
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).
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.
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!
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.
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)
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).
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
- 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;
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.
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.
57
58