This shows you the differences between two versions of the page.
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: | ||
{{: | {{: | ||
- | 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 | + | Kot večina računalniških sistemov za poučevanje tudi naša aplikacija |
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) |
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) |
- | % slika 2 (a = družinsko drevo ; b = grafični hint za sister/2) | + | {{: |
- | Uporabnikova rešitev na sliki 1b je skoraj pravilna, manjka le še | + | Slika 2: (levo) primer družinskega drevesa, (desno) grafični prikaz relacije '' |
+ | |||
+ | Uporabnikova rešitev na sliki 1 je skoraj pravilna, manjka le še | ||
pogoj, da '' | pogoj, 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, | > Glavni problem je bil to, da pri veliko nalogah ne izpiše protiprimerov, | ||
- | |||
- | |||
- | ===== 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 | + | ž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 |
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 | + | Pri kompleksnejših nalogah začne pristop na nivoju |
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 |
+ | |||
+ | |||
+ | ===== 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; | ||
+ | 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 '' | ||
+ | |||
+ | Ročno pripravljeni namigi bodo služili tudi za razlago pogostih napak. Tukaj si oglejmo primer | ||
+ | takega namiga za nalogo '' | ||
+ | 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 '' | ||
+ | je večji od novega elementa '' | ||
+ | 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. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 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, |
- | 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. " |
- | Gre za t.i. " | + | (angl. |
- | elementov | + | namenjeni motivaciji in ohranjanju zanimanja za uporabo aplikacije. |
- | prijema | + | Tipičen primer |
- | npr. pravilna rešitev v prvem poskusu ali v zelo kratkem | + | dosežke. |
- | osnovi namenjene motivaciji | + | vloženim delom in nagrado -- tudi če je to le ikona na zaslonu. |
- | uporabniku predstavljajo jasen cilj. | + | |
Naš sistem ne vsebuje nobenih funkcionalnosti, | Naš sistem ne vsebuje nobenih funkcionalnosti, | ||
- | 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 še 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 ====== | ||