User Tools

Site Tools


codeq:vivid2015

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
codeq:vivid2015 [2015/07/13 19:20]
timotej
codeq:vivid2015 [2015/07/14 17:15] (current)
timotej
Line 15: Line 15:
  
 {{:codeq:slika1.png}} {{:codeq:slika1.png}}
-Slika 1: (a) izbira naloge, (b) urejevalnik.+Slika 1: (levo) izbira naloge, (desno) urejevalnik.
  
-Kot večina računalniških sistemov za poučevanje tudi naš pristop temelji na+Kot večina računalniških sistemov za poučevanje tudi naša aplikacija temelji na
 reševanju problemov. Glavni meni (slika 1a) tako vsebuje seznam nalog, ki so na voljo za reševanju problemov. Glavni meni (slika 1a) tako vsebuje seznam nalog, ki so na voljo za
 reševanje. Za vsakega uporabnika sistem vodi evidenco nalog, ki jih je rešil reševanje. Za vsakega uporabnika sistem vodi evidenco nalog, ki jih je rešil
Line 23: Line 23:
 Prav tako je prikazan delež nalog, ki jih je uporabnik rešil v posamezni kategoriji. Prav tako je prikazan delež nalog, ki jih je uporabnik rešil v posamezni kategoriji.
  
-Slika 1b prikazuje vmesnik za reševanje nalog. Naloga na sliki+Slika 1 (desno) prikazuje vmesnik za reševanje nalog. Naloga na sliki
 zahteva definicijo relacije "X je sestra od Y" z uporabo podatkov o starševstvu zahteva definicijo relacije "X je sestra od Y" z uporabo podatkov o starševstvu
 in spolu. Družinsko drevo, ki predstavlja te podatke, je na in spolu. Družinsko drevo, ki predstavlja te podatke, je na
-sliki 2. Na isti sliki je tudi grafični prikaz zahtevane relacije.+sliki 2 (levo). Na isti sliki (desno) je tudi grafični prikaz zahtevane relacije ''sister(X,Y)''.
  
-% slika 2 (a = družinsko drevo ; b = grafični hint za sister/2)+{{:codeq:famrel.png?400|}} {{:codeq:sister.svg|}}
  
-Uporabnikova rešitev na sliki 1b je skoraj pravilna, manjka le še+Slika 2: (levo) primer družinskega drevesa, (desno) grafični prikaz relacije ''sister(X,Y)''
 + 
 +Uporabnikova rešitev na sliki je skoraj pravilna, manjka le še
 pogoj, da ''X'' in ''Y'' nista ista oseba (brez tega pogoja bo prolog namreč sklepal, da pogoj, da ''X'' in ''Y'' nista ista oseba (brez tega pogoja bo prolog namreč sklepal, da
 je vsaka ženska sestra sama sebi). Ista slika vsebuje tudi primere različnih tipov je vsaka ženska sestra sama sebi). Ista slika vsebuje tudi primere različnih tipov
Line 133: Line 135:
  
 > Glavni problem je bil to, da pri veliko nalogah ne izpiše protiprimerov, kar bi zelo olajšalo lovljenje hroščev. > Glavni problem je bil to, da pri veliko nalogah ne izpiše protiprimerov, kar bi zelo olajšalo lovljenje hroščev.
- 
- 
-===== Vnaprej definirani namigi ===== 
- 
-% slika 3 (grafični namig za sins/3) 
  
  
Line 177: Line 174:
 Ko dobi nepravilni program, ga naša metoda poskusi popraviti z različnimi zaporedji Ko dobi nepravilni program, ga naša metoda poskusi popraviti z različnimi zaporedji
 popravkov. Pri tem najprej preizkusi krajša zaporedja bolj pogostih popravkov. S tem popravkov. Pri tem najprej preizkusi krajša zaporedja bolj pogostih popravkov. S tem
-želimo doseči, da bo končni program čimbolj podoben začetnemu oziroma da bodo posamezni+želimo doseči, da bo končni program čim bolj podoben začetnemu oziroma da bodo posamezni
 popravki uporabniku lažje razumljivi. Če najdemo ustrezno zaporedje popravkov, ga popravki uporabniku lažje razumljivi. Če najdemo ustrezno zaporedje popravkov, ga
 uporabniku seveda ne smemo razkriti, saj bi mu s tem povedali rešitev naloge. Namesto tega uporabniku seveda ne smemo razkriti, saj bi mu s tem povedali rešitev naloge. Namesto tega
 v nepravilnem programu le označimo mesta, kjer so potrebne spremembe. v nepravilnem programu le označimo mesta, kjer so potrebne spremembe.
  
-Ker je metoda še v razvoju, prav tako pa še nismo zbrali dovolj velike množice rešitev, so+Ker je metoda še v razvoju in še nismo zbrali dovolj velike množice rešitev, so
 rezultati mešani. V nekaterih primerih, sploh pri lažjih nalogah, hitro odkrije ustrezno rešitev. rezultati mešani. V nekaterih primerih, sploh pri lažjih nalogah, hitro odkrije ustrezno rešitev.
-Pri kompleksnejših nalogah začne pristop na nivoju kazati svoje pomanjkljivosti, zato bomo v+Pri kompleksnejših nalogah začne pristop na nivoju besedila kazati pomanjkljivosti, zato bomo v
 prihodnosti metodi dodali tudi elemente sintaktične analize programa. Prav tako bomo izboljšali prihodnosti metodi dodali tudi elemente sintaktične analize programa. Prav tako bomo izboljšali
-predstavitev namigov uporabniku.+predstavitev namigov uporabniku z bolj specifičnimi sporočili. 
 + 
 + 
 +===== Vnaprej pripravljeni namigi ===== 
 + 
 +Samodejna analiza programske kode nam lahko pomaga pri podajanju povratnih informacij, vendar 
 +ima svoje omejitve. Lahko sicer odkrije, kaj je potrebno popraviti v programu, a je take popravke 
 +težko preslikati v višjenivojske koncepte. Več študentov je izrazilo željo po bolj specifičnih 
 +namigih: 
 + 
 +> Izboljšal bi način, kako namigi prepoznajo kje se program zmoti oz. da bi bili ti morda za začetnika lažje razumljivi. 
 + 
 +> Do določene mere bi razkril na kak način bi mogel določen program delovat, naprej pa bi sam študent dopolnil. 
 + 
 +Takih namigov letos nismo implementirali; aplikacijo smo uporabljali na vajah, kjer je bil za 
 +pojasnila zmeraj na voljo asistent. V okviru projekta želimo aplikacijo prirediti tudi za 
 +samostojno učenje. Vsaki nalogi bomo zato dodali še podrobnejše razlage z grafičnimi pojasnili. 
 +Na sliki 2b je primer grafičnega prikaza relacije ''sister(X,Y)''
 + 
 +Ročno pripravljeni namigi bodo služili tudi za razlago pogostih napak. Tukaj si oglejmo primer 
 +takega namiga za nalogo ''sins/3'' ("sorted insert"). 
 +Gre za nalogo, kjer mora študent definirati predikat za vstavljanje novega elementa 
 +v urejen seznam števil. V prologu lahko neposredno dostopamo le do prvega elementa v seznamu, zato 
 +moramo pregledovati seznam od leve proti desni, dokler ne najdemo obstoječega elementa ''H'', ki 
 +je večji od novega elementa ''E''. Na tem mestu vstavimo nov element ''E'' pred ''H'', a študenti 
 +velikokrat zamenjajo njun vrstni red. To napako se da odkriti z ustreznimi testnimi primeri, zato 
 +lahko vnaprej pripravimo ustrezno razlago; primer diagrama za to situacijo je na sliki 3. 
 + 
 +{{:codeq:sins-hint-wrong-order.svg|}} 
 + 
 +Slika 3: primer namiga za predikat sins/3.
  
  
 ===== Poigritev ===== ===== Poigritev =====
  
-Nazadnje omenimo še en vidik aplikacije, na katerega v začetku nismo pomislili, +Nazadnje omenimo še en vidik aplikacije, ki ga nismo načrtovali, a se je hitro izkazal za 
-a se je hitro izkazal za bistveno prednost pred obstoječim načinom dela na vajah. +bistveno prednost pred obstoječim načinom dela na vajah. Gre za t.i. "poigritev" 
-Gre za t.i. "poigritev" (angl. gamification) oziroma uporabo +(angl. //gamification//) oziroma uporabo prijemov iz računalniških iger, ki so primarno 
-elementov iz računalniških iger v drugih aplikacijah. Tipičen primer takega +namenjeni motivaciji in ohranjanju zanimanja za uporabo aplikacije. 
-prijema je podeljevanje značk (angl. badges) uporabnikom za razne dosežke, kot +Tipičen primer poigritve je podeljevanje značk (angl. //badges//) uporabnikom za razne 
-nprpravilna rešitev v prvem poskusu ali v zelo kratkem času. Poigritve so v +dosežke. Značke delujejo kot zunanji motivacijski faktor, s katerim skrajšamo čas med 
-osnovi namenjene motivaciji in ohranjanju zanimanja za aplikacijo, saj +vloženim delom in nagrado -- tudi če je to le ikona na zaslonu.
-uporabniku predstavljajo jasen cilj.+
  
 Naš sistem ne vsebuje nobenih funkcionalnosti, ki bi bile primarno namenjene Naš sistem ne vsebuje nobenih funkcionalnosti, ki bi bile primarno namenjene
-poigritvi. Kljub temu pa se je izkazalo, da že uvodni zaslon s seznamom nalog+poigritvi. Kljub temu pa se je izkazalo, da že uvodni zaslon s seznamom nalog (slika 1a)
 opravlja podobno funkcijo. Študent namreč vidi, koliko nalog je na voljo v opravlja podobno funkcijo. Študent namreč vidi, koliko nalog je na voljo v
-vsakem poglavju in koliko jih šmora rešiti.+vsakem poglavju in koliko jih je že rešil. Vsaka rešena naloga to statistiko malo izboljša 
 +-- zelena pika dobi vlogo značke -- in s tem takoj nagradi študentov trud. 
 +Opazili smo tudi, da študenti pri problemih vztrajajo dlje časa, da bi dosegli 100% rešenih 
 +nalog za posamezni sklop. Razlogi za to so verjetno sorodni razlogom za priljubljenost raznih 
 +zbirateljskih dejavnosti in iger. 
 + 
 +V naslednji različici aplikacije bomo eksplicitno podprli poigritev z značkami -- recimo za 
 +pravilno rešitev v prvem poskusu ali v zelo kratkem času. Uporabnik bo na posebnem zaslonu 
 +lahko pregledoval dobljene značke in splošno statistiko reševanja.
  
  
 ====== Diskusija ====== ====== Diskusija ======
  
codeq/vivid2015.1436808033.txt.gz · Last modified: 2015/07/13 19:20 by timotej