Državna Matura Informatics common mistakes
Državna Matura Informatics · Understand the traps and how to avoid them.
Pri vprašanjih o pretvarjanju med dvojiškim, desetiškim in šestnajstiškim sistemom učenec računa »na pamet« in kot končni odgovor zapiše vmesni ostanek ali napačno število števk, namesto da bi sistematično zapisal postopek deljenja z ostanki in rezultat preveril z obratnim množenjem.
Pretvorbe so mehanska veščina, ki se pri hitrem tempu izpita izvaja brez zapisa; ostanki se berejo v napačnem vrstnem redu (od zgoraj navzdol namesto od spodaj navzgor), pri šestnajstiškem sistemu pa se zamenjata črki A in F oziroma se 10–15 ne pretvori pravilno. Kandidat pogosto tudi ne loči med vrednostjo števke in njenim mestom.
What to do instead
Vedno zapiši stolpec deljenja z ostanki in rezultat preberi od spodaj navzgor; za vsako pretvorbo naredi kontrolno pretvorbo nazaj (vsota števk × potenca osnove). Pred izpitom na pamet utrdi tabelo 0–15 za šestnajstiški sistem in razliko med binarno dolžino (8, 16, 32 bitov) ter vrednostjo.
Pri vprašanjih o algoritmih učenec prebere pseudokodo in takoj izbere odgovor, ki ustreza prvemu koraku ali končni vrednosti spremenljivke, ne da bi ročno izvedel celotno zanko po korakih s tabelo vrednosti.
Zanke z akumulatorjem, ugnezdenimi zankami in pogojem na koncu so kognitivno zahtevne; delovni spomin ne zdrži več kot nekaj iteracij, zato se kandidat zanaša na vzorec. Pogosta je zamenjava pred-testne in post-testne zanke ter napačno štetje, ali se pogoj preveri pred ali po telesu zanke.
What to do instead
Za vsako pseudokodo nariši tabelo s stolpci za vsako spremenljivko in vrstico za vsako iteracijo; izpiši tudi števec iteracij. Posebej označi, kdaj se pogoj preveri (while = pred, do-while/repeat = po) in katera vrednost se izpiše. Vadbi na kratkih odsekih z največ petimi iteracijami, dokler tabela ne postane rutina.
Pri SQL nalogah učenec sestavi poizvedbo, ki se izvede brez napake, a vrne napačen nabor vrstic: uporabi JOIN namesto podpoizvedbe ali obratno, pozabi GROUP BY za agregate, doda pogoj v WHERE namesto v HAVING ali izpusti DISTINCT.
Sintaksa se nauči prej kot pomen poizvedbe; kandidat ne loči logičnega vrstnega reda izvajanja (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY) in zato pogoje na agregate postavi v WHERE. Pri stikih tabel pozabi, da JOIN brez pogoja ustvari kartezični produkt.
What to do instead
Pred pisanjem poizvedbe z besedami opiši, kaj naj vrne (katere vrstice, katere stolpce, ali so združene). Za agregate uporabi HAVING, za posamezne vrstice WHERE. Vsako poizvedbo preveri na majhnem miselnem naboru podatkov in se vprašaj, ali bo vrnila točno določeno število vrstic; pri stikih vedno zapiši pogoj stika.
Pri nalogah o omrežjih učenec zamenjuje ravni modela TCP/IP oziroma OSI in pripiše napravo ali protokol napačni ravni (npr. IP na transportno raven, stikalo na omrežno raven, HTTP na transportno raven) ter ne loči med pojmi IP-naslov, vrata in MAC-naslov.
Sloji se učijo kot seznam imen brez razumevanja, katera naloga pripada kateri ravni; podobno zveneči izrazi (switch/hub/router, TCP/UDP, port/protocol) se zlijejo. Kandidat si ne predstavlja poti podatkovnega paketa od odjemalca do strežnika.
What to do instead
Za vsako raven zapiši eno konkretno nalogo (npr. transportna raven: zanesljiv prenos in vrata; omrežna: usmerjanje po IP) in eno napravo/protokol. Nariši pot zahtevka HTTP od brskalnika do strežnika in na vsakem koraku poimenuj raven, enoto podatkov in naslov, ki se uporabi. Vaje s primerjavo TCP proti UDP in hub proti stikalu proti usmerjevalniku.
Pri vprašanjih o varnosti učenec opisuje napad in obrambo zamenjano: našteje ukrep, ki ne ustreza grožnji (npr. za phishing predlaga požarni zid, za DDoS predlaga močnejše geslo), ali zamenja avtentikacijo z avtorizacijo in šifriranje s kodiranjem.
Pojmi se učijo kot seznam brez povezave med grožnjo, ranljivostjo in ukrepom; kandidat odgovarja po asociaciji na ključno besedo. Razlika med zaupnostjo, celovitostjo in razpoložljivostjo (CIA) ter med simetričnim in asimetričnim šifriranjem ni utrjena.
What to do instead
Za vsako grožnjo napiši trojico: kaj napadalec izkorišča, kateri od treh ciljev CIA je prizadet, kateri ukrep to naslavlja. Nauči se parih: phishing → izobraževanje in dvofaktorska avtentikacija; DDoS → razpoložljivost, razpršitev prometa; SQL injection → parametrizirane poizvedbe; avtentikacija = kdo si, avtorizacija = kaj smeš.
Pri nalogah o HTML/CSS učenec opisuje, kaj naj bi stran prikazala, namesto da bi sledil dejanskemu kaskadnemu redu in specifičnosti selektorjev, ter zamenjuje vrstni in blokovni prikaz elementov ali učinek lastnosti margin in padding.
Vizualna intuicija prevlada nad pravilom; kandidat ne ve, da ima inline slog prednost pred ID selektorjem in da kasnejše pravilo zmaga pri enaki specifičnosti. Prav tako ne loči, ali se lastnost deduje, in meša model škatle.
What to do instead
Za vsako vprašanje izpiši kaskadni red (pomembnost → inline → specifičnost → vrstni red) in izračunaj specifičnost kot trojico (ID, razred, element). Nariši model škatle od vsebine navzven (content, padding, border, margin) in si zapomni privzeti display za pogoste elemente (div, p, span, a).
Pri nalogah o podatkovnih modelih učenec ne prepozna kršitve normalne forme in ne loči primarnega ključa od kandidatnega ter tujega ključa, zato ne vidi, da podatkovna tabela podvaja podatke ali da tuji ključ kaže na neobstoječo vrstico.
Normalne forme se učijo kot definicije brez uporabe na konkretnem primeru; kandidat ne ve, da 2NF zahteva odvisnost celotnega sestavljenega ključa, 3NF pa odpravo tranzitivnih odvisnosti. Pojmi ključev se zamenjujejo, ker niso povezani s primerom tabele.
What to do instead
Za vsako tabelo najprej določi vse kandidatne ključe in funkcionalne odvisnosti, nato preveri 1NF (atomarne vrednosti), 2NF (brez delne odvisnosti od sestavljenega ključa) in 3NF (brez tranzitivne odvisnosti). Vsako kršitev pokaži na konkretni vrstici s ponovljenimi podatki, ne le z definicijo.
Pri nalogah o algoritmih učenec ocenjuje časovno zahtevnost po številu vrstic kode ali po občutku, ne po številu izvajanj v odvisnosti od vhodne velikosti n, in zato zamenja O(n) z O(n²) ali O(log n) z O(n).
Asimptotična analiza se nauči kot tabela primerov brez metode; kandidat ne prešteje, kolikokrat se izvede telo ugnezdenih zank, in ne prepozna, da deljenje obsega na polovico daje logaritemsko zahtevnost.
What to do instead
Za vsako zanko zapiši, kolikokrat se izvede glede na n (n, n/2, log₂n), in zmnoži ugnezdene zanke. Preizkusi na majhnih vrednostih n = 1, 2, 4, 8 in iz števila korakov razberi vzorec. Loči najslabši, najboljši in povprečni primer ter vedno navedi, na kaj se ocena nanaša.
Pri nalogah o družbenih in etičnih vidikih učenec odgovarja s splošno moralno sodbo (»to je narobe«) brez sklicevanja na konkreten predpis, pravico ali interes, in ne loči avtorske pravice od licence, varstva osebnih podatkov od zasebnosti ter odgovornosti ponudnika storitve od odgovornosti uporabnika.
Take naloge zahtevajo poznavanje pojmov, ki jih kandidat podcenjuje kot »splošno znanje«, zato ne navede ključnih besed, ki jih vrednotenje pričakuje. Pravni pojmi se mešajo, ker niso povezani s konkretnim scenarijem.
What to do instead
Za vsak scenarij določi tri stvari: kdo je nosilec pravice ali obveznosti, kateri predpis ali načelo se uporabi (npr. zakonitost, omejitev namena, pravica do pozabe) in kakšna je posledica. Nauči se razlikovati prosto programje od odprtokodnega in lastniškega ter primere kršitev zavezujočih pravil označi s pojmom, ne z oceno.
Pri nalogah iz računalniškega mišljenja učenec problem rešuje takoj s pisanjem kode ali s poskusom ugibanja, brez razčlenitve na podprobleme, brez zapisa vhodov, izhodov in robnih primerov, zato spregleda prazno množico, ničlo, negativna števila ali enojni element.
Navada iz programiranja je »najprej koda«; kandidat ne loči modela problema od njegove izvedbe in ne preveri, ali algoritem pokriva vse razrede vhodov. Robni primeri so najpogostejši vir izgubljenih točk, ker jih nihče ne vpiše v načrt.
What to do instead
Pred reševanjem zapiši tri vrstice: vhod (vrsta in omejitve), izhod (oblika in primeri) in robni primeri (prazen vhod, en element, največja vrednost, negativno število). Problem razdeli na imenovane podprobleme in za vsakega preveri rešitev na ročnem primeru. Šele nato izberi strukturo podatkov in zapiši algoritem v pseudokodu.