V oknu, ki ga sedaj bereš, je nekaj praktičnih napotkov in teorije za vsak učni sklop. Ob tem je tudi seznam nalog tega sklopa. Naloge lahko načeloma rešuješ v poljubnem vrstnem redu, so pa tipično urejene po naraščajoči težavnosti. Nekatere naloge tudi lažje rešiš z uporabo rešitev predhodnih nalog. Teh rešitev ne potrebuješ prepisovati, sistem si jih zapomni sam od sebe in jih lahko takoj uporabljaš, če želiš.
Nalogo začneš reševati s klikom nanjo. S tem se odpre spletna stran, v kateri programiraš rešitev. Vsaka stran je povezana s konkretno nalogo in vsebuje štiri razdelke. Razpored razdelkov lahko spremeniš v nastavitvah.
Navodila, ki na kratko opišejo nalogo. Posebej bodi pozoren na ime predikata, ki ga moraš sprogramirati – poimenovati ga moraš točno tako, kot je navedeno, da bo sistem razpoznal tvojo rešitev. Seveda pa lahko sprogramiraš več pomožnih predikatov; tu ni nobenih omejitev.
Poleg tega bodi pozoren tudi na število argumentov, ki jih ciljni predikat
zahteva. Npr. predikat mother(?X, ?Y)
zahteva dva argumenta,
X
in Y
. Vprašaj pred imenom argumenta pomeni, da ta
argument lahko predstavlja tako vhod kot izhod. Argumenti, ki delujejo le kot
vhod, so označeni s +
, argumenti, ki delujejo le kot izhod, pa z
-
.
Na začetku se ne obremenjuj s tem, ampak preprosto programiraj, vhod/izhod se
bo večinoma pravilno uredil sam od sebe. Prolog je pameten. 😉
V levem razdelku, ti bo aplikacija dajala povratne informacije. Te so lahko v obliki splošnega plana (kako se neke naloge lotiti), ali pa specifični nasveti, kaj je morda narobe s tvojo trenutno rešitvijo. Namigi so različni, včasih bodo tudi v obliki protiprimera – konkretnega vhoda, na katerem tvoj program deluje narobe. Tukaj bodo tudi prologova opozorila in obvestila o napakah v programu.
Če se ti kakšen namig zdi napačen, najprej dobro poglej svoj program. Če se ti še vedno zdi napačen, nas obvesti. Če bo res napačen, plačamo kavo mi, sicer jo plačaš ti! 😉
(Disclaimer: včasih ni možno z gotovostjo ugotoviti, ali je neka napaka prisotna; takrat sistem uporabi besede, kot so mogoče, morda in verjetno – tega ne štejemo kot napačno.)
Konzola, tipično črne barve in kjer te čaka prologov poziv ?-
, je
namenjena tvojemu pogovoru s prologom. V ozadju teče minimalno okrnjen
SWI Prolog,
ki mu lahko zastavljaš vprašanja.
Vse potrebne podatke za posamezno nalogo (npr. bazo znanja) ima sistem že
naložene. Prav tako vedno samodejni naloži trenutno različico tvojega programa.
Prologu lahko zastavljaš poljubna vprašanja, ne le ta, povezana s tvojim
programom.
Nazadnje je tu še osrednji del: urejevalnik besedila, v katerem pišeš svojo rešitev. Na prvi pogled morda res manjkajo reči, kot je npr. „autocomplete“, a boš hitro ugotovil, da so programi v prologu kratki in ne zahtevajo veliko tipkanja.
Če tvoj program prerase 8‒10 vrstic, si ga verjetno preveč zakompliciral! 😉 Najdaljši program v vseh sklopih nalog ne potrebuje več kot kakšnih 12 vrstic (in takšne naloge so redke). Prej omenjeni gumbi pa so opisani spodaj.
Osrednji programerski del vsebuje tudi gumba „Plan“ in „Testiraj“. Najpogosteje boš uporabljal slednjega, ki sproži samodejno preverjanje tvoje rešitve. Gumb „Plan“ ti da splošen nasvet, kako se lotiti dane naloge; včasih ga lahko pritisneš večkrat, za zmeraj bolj „izdajalske“ nasvete. Seveda pa poskusi vsako nalogo najprej rešiti brez uporabe namigov.
Če program ni pravilen, ti bo CodeQ poleg sporočila o opravljenih testih včasih ponudil gumb „Namig“. Ta gumb ti poda namig, kaj je morda narobe s tvojim programom. Nekateri namigi so pripravljeni ročno s strani avtorjev aplikacije, včasih bo na delu umetna inteligenca, včasih boš dobil protiprimer, na katerem program ne deluje, včasih pa namiga sploh ne bo. V tem primeru je program najbrž grozen! Malce se hecam… morda. 😉
Sistem CodeQ avtomatsko shranjuje tvoje rešitve na strežnik, seveda pa moraš biti povezan na internet. Vse spremembe se beležijo v realnem času, zato ne potrebuješ skrbeti za shranjevanje kode ali se obremenjavati s tem kdaj ti bo potekla seja. Trajanje seje je načeloma 60 minut, prekine pa se tudi, če se na drugem računalniku ali v drugem zavihku prijaviš z istim uporabniškim imenom.
Opozorilo: glede na to, da sistem v realnem času shranjuje vse, kar v njem pišeš (tako je, keylogger je!), priporočamo, da se zaupnih sporočil ne piše vanj. Sicer jih bomo prebrali, obljubimo! 😊
Vse svoje rešitve za posamezni sklop si lahko ogledaš s klikom na povezavo ob naslovu.