Znanstveni prispevki Iztok Bitenc, Borut Werber, Marko Urh: Kombinirano učenje – iZKušnje in rešitve Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop Za priporočanje vrstilcev univerZalne decimalne KlasifiKacije Kratki znanstveni prispevki Jan Meznarič, Matjaž Branko Jurič: decentraliZirano in odporno dinamično posodabljanje miKrostoritev strokovni prispevki Inna Pavlova, Alenka Kavčič: resource saving tecHnologies in education: a step towards a green society Aleš Čep, Damijan Novak, Jani Dugonik: samodejno preverjanje pravilnosti študentsKiH nalog iZ programiranja 20 20 ‹ š te v il K a 1 ‹ ja n . f eb . m a r . ‹ l et n iK X Xv iii ‹ is sn 1 31 8 -1 8 8 2 01 2020 - πtevilka 1 - letnik XXVIII VSEBINA U P O R A B N A I N F O R M A T I K A 1 U P O R A B N A I N F O R M A T I K A 2020 ŠTEVILKA 1 JAN/FEB/MAR LETNIK XXVIII ISSN 1318-1882 Znanstveni prispevki Iztok Bitenc, Borut Werber, Marko Urh: Kombinirano učenje – izkušnje in rešitve 3 Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije 14 Kratki znanstveni prispevki Jan Meznarič, Matjaž Branko Jurič: Decentralizirano in odporno dinamično posodabljanje mikrostoritev 28 Strokovni prispevki Inna Pavlova, Alenka Kavčič: Resource saving technologies in education: A step towards a green society 33 Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog iz programiranja 38 U P O R A B N A I N F O R M A T I K A2 2020 - πtevilka 1 - letnik XXVIII U P O R A B N A I N F O R M A T I K A 2020 ŠTEVILKA 1 JAN/FEB/MAR LETNIK XXVIII ISSN 1318-1882 Vabilo avtorjem V reviji Uporabna informatika objavljamo kakovostne izvirne Ëlanke domaËih in tujih av- torjev z najπirπega podroËja informatike v poslovanju podjetij, javni upravi in zasebnem æivljenju na znanstveni, strokovni in informativni ravni; πe posebno spodbujamo objavo interdisciplinarnih Ëlankov. Zato vabimo avtorje, da prispevke, ki ustrezajo omenjenim usmeritvam, poπljejo uredniπtvu revije po elektronski poπti na naslov ui@drustvo- -informatika.si. Avtorje prosimo, da pri pripravi prispevka upoπtevajo navodila, objavljena v nadaljeva- nju ter na naslovu http://www.uporabna-informatika.si. Za kakovost prispevkov skrbi mednarodni uredniπki odbor. »lanki so anonimno recen- zirani, o objavi pa na podlagi recenzij samostojno odloËa uredniπki odbor. Recenzenti lahko zahtevajo, da avtorji besedilo spremenijo v skladu s priporoËili in da popravljeni Ëlanek ponovno prejmejo v pregled. Uredniπtvo pa lahko πe pred recenzijo zavrne objavo prispevka, Ëe njegova vsebina ne ustreza vsebinski usmeritvi revije ali Ëe Ëlanek ne ustreza kriterijem za objavo v reviji. Pred objavo Ëlanka mora avtor podpisati izjavo o avtorstvu, s katero potrjuje original- nost Ëlanka in dovoljuje prenos materialnih avtorskih pravic. NenaroËenih prispevkov ne vraËamo in ne honoriramo. Avtorji prejmejo enoletno naroËnino na revijo Uporabna informatika, ki vkljuËuje avtorski izvod revije in πe nadaljnje tri zaporedne πtevilke. S svojim prispevkom v reviji Uporabna informatika boste prispevali k πirjenju znanja na podroËju informatike. Æelimo si Ëim veË prispevkov z raznoliko in zanimivo tematiko in se jih æe vnaprej veselimo. Uredniπtvo revije Navodila avtorjem Ëlankov »lanke objavljamo praviloma v slovenπËini, Ëlanke tujih avtorjev pa v angleπËini. Bese- dilo naj bo jezikovno skrbno pripravljeno. PriporoËamo zmernost pri uporabi tujk in ‡ kjer je mogoËe ‡ njihovo zamenjavo s slovenskimi izrazi. V pomoË pri iskanju sloven- skih ustreznic priporoËamo uporabo spletnega terminoloπkega slovarja Slovenskega druπtva Informatika Islovar (www.islovar.org). Znanstveni Ëlanek naj obsega najveË 40.000 znakov, strokovni Ëlanki do 30.000 zna- kov, obvestila in poroËila pa do 8.000 znakov. »lanek naj bo praviloma predloæen v urejevalniku besedil Word (*.doc ali *.docx) v enojnem razmaku, brez posebnih znakov ali poudarjenih Ërk. Za loËilom na koncu stav- ka napravite samo en prazen prostor, pri odstavkih ne uporabljajte zamika. Naslovu Ëlanka naj sledi za vsakega avtorja polno ime, ustanova, v kateri je zaposlen, naslov in elektronski naslov. Sledi naj povzetek v slovenπËini v obsegu 8 do 10 vrstic in seznam od 5 do 8 kljuËnih besed, ki najbolje opredeljujejo vsebinski okvir Ëlanka. Pred povzetkom v angleπËini naj bo πe angleπki prevod naslova, prav tako pa naj bodo doda- ne kljuËne besede v angleπËini. Obratno velja v primeru predloæitve Ëlanka v angleπËini. Razdelki naj bodo naslovljeni in oπtevilËeni z arabskimi πtevilkami. Slike in tabele vkljuËite v besedilo. Opremite jih z naslovom in oπtevilËite z arabskimi πtevilkami. Vsako sliko in tabelo razloæite tudi v besedilu Ëlanka. »e v Ëlanku uporab- ljate slike ali tabele drugih avtorjev, navedite vir pod sliko oz. tabelo. Revijo tiskamo v Ërno-beli tehniki, zato barvne slike ali fotografije kot original niso primerne. Slik zaslonov ne objavljamo, razen Ëe so nujno potrebne za razumevanje besedila. Slike, grafikoni, organizacijske sheme ipd. naj imajo belo podlago. EnaËbe oπtevilËite v okle- pajih desno od enaËbe. V besedilu se sklicujte na navedeno literaturo skladno s pravili sistema APA navajanja bibliografskih referenc, najpogosteje torej v obliki (Novak & KovaË, 2008, str. 235). Na koncu Ëlanka navedite samo v Ëlanku uporabljeno literaturo in vire v enotnem seznamu po abecednem redu avtorjev, prav tako v skladu s pravili APA. VeË o sistemu APA, katerega uporabo omogoËa tudi urejevalnik besedil Word 2007, najdete na strani http://owl.english.purdue.edu/owl/resource/560/01/. »lanku dodajte kratek æivljenjepis vsakega avtorja v obsegu do 8 vrstic, v katerem poudarite predvsem strokovne doseæke. Ustanovitelj in izdajatelj Slovensko druπtvo INFORMATIKA Litostrojska cesta 54, 1000 Ljubljana Predstavnik Niko Schlamberger Odgovorni urednik Saša Divjak Uredniški odbor Andrej Kovačič, Evelin Krmac, Ivan Rozman, Jan Mendling, Jan von Knop, John Taylor, Jurij Jaklič, Lili Nemec Zlatolas, Marko Hölbl, Mirjana Kljajić Borštnar, Mirko Vintar, Pedro Simões Coelho, Saša Divjak, Sjaak Brinkkemper, Slavko Žitnik, Tatjana Welzer Družovec, Vesna Bosilj-Vukšić, Vida Groznik, Vladislav Rajkovič Recenzenti Alenka Kavčič, Andrej Brodnik, Andrej Kovačič, Boštjan Žvanut, Božidar Potočnik, David Jelenc, Denis Trček, Dobravec Tomaž, Franc Solina, Gregor Weiss, Igor Kononenko, Janez Demšar, Jurij Jaklič, Jurij Mihelič, Katarina Puc, Marko Hölbl, Marko Holbl, Martin Vodopivec, Matevž Pesek, Matija Marolt, Mihaela Triglav Čekada, Mirjana Kljajić Borštnar, Mojca Indihar Štemberger, Monika Klun, Peter Trkman, Sandi Gec, Saša Divjak, Slavko Žitnik, Tomaž Erjavec, Uroš Rajkovič, Vladislav Rajkovič, Vlado Stankovski Tehnični urednik Slavko Žitnik Lektoriranje angleških izvlečkov Marvelingua (angl.) Oblikovanje KOFEIN DIZAJN, d. o. o. Prelom in tisk Boex DTP, d. o. o., Ljubljana Naklada 200 izvodov Naslov uredništva Slovensko druπtvo INFORMATIKA Uredniπtvo revije Uporabna informatika Litostrojska cesta 54, 1000 Ljubljana www.uporabna-informatika.si Revija izhaja Ëetrtletno. Cena posamezne πtevilke je 20,00 EUR. Letna naroËnina za podjetja 85,00 EUR, za vsak nadaljnji izvod 60,00 EUR, za posameznike 35,00 EUR, za πtudente in seniorje 15,00 EUR. V ceno je vkljuËen DDV. Revija Uporabna informatika je od πtevilke 4/VII vkljuËena v mednarodno bazo INSPEC. Revija Uporabna informatika je pod zaporedno πtevilko 666 vpisana v razvid medijev, ki ga vodi Ministrstvo za kulturo RS. Revija Uporabna informatika je vkljuËena v Digitalno knjiænico Slovenije (dLib.si). Ÿ Slovensko druπtvo INFORMATIKA U P O R A B N A I N F O R M A T I K A 32020 - πtevilka 1 - letnik XXVIII zNANStVENI prISpEVkI Iztok Bitenc, Borut Werber, Marko Urh Univerza v Mariboru, Fakulteta za organizacijske vede, Kidričeva cesta 55a, 4000 Kranj iztok.bitenc@um.si, borut.werber@um.si, marko.urh@um.si Kombinirano učenje – izkušnje in rešitve Izvleček Ob uvedbi kombiniranega e-učenja smo se na fakulteti predavatelji in študenti srečali z novimi izzivi. Posebej se je to pokazalo pri učenju računalniškega programiranja in podobnih predmetih, ki od študentov zahtevajo sprotno usvajanje znanja in logično kombini- ranje tega znanja pri reševanju zastavljenih problemskih nalog. Tu smo zaznali povečano odsotnost študentov, plagiatorstvo in izje- mno povečanje obremenitev predavateljev pri pregledovanju in ocenjevanju problemsko usmerjenih e-nalog. Rešitve smo našli na več področjih. Uvedli smo več načinov motiviranja študentov za sprotno delo. Spremenili smo vsebino e-nalog, da osnovni pregled pra- vilnosti oddane kode izvede računalnik. Prilagodili smo nastavitve orodja za podporo e-študiju za čim hitrejši pregled in ocenitev e- -nalog. Namesto informativnih e-nalog smo izvedli e-predavanje kot videokonferenco. Z vzporednim izvajanjem predavanj in vaj smo študentom dali več časa za usvojitev novih znanj. Rezultat teh in tudi drugih ukrepov je danes za približno tretjino povečana udeležba študentov na prvem izpitnem roku. Ključne besede: e-učenje, kombinirano učenje, Moodle, praktične izkušnje Abstract Blended e-learning introduced new challenges for teachers and students in our faculty. This was especially true for computer pro- gramming class and similar subjects, where students need to build up their knowledge on a regular basis and logically combine the acquired knowledge in problem-solving e-lessons. We have noticed an increased absence from classes and plagiarism, as well as an extraordinary increase of teachers‘ workload when grading the submitted problem-solving e-lessons. Solutions were found in different fields. We have introduced many methods to motivate students for regular study activities. Requirements for e-lessons were changed in order to use the computer as a first tool to assess the correctness of the submitted computer code. We have also changed the settings in Moodle‘s review module in order to streamline the grading of e-lessons. A videoconference was used instead of an e-lecture. By combining lectures and exercises in a timetable, we have given the students more time to master the new knowledge. The introduction of these and certain other measures improved the attendance of students in the first exam period by about one third. Keywords: E-learning, blended learning, Moodle, practical experience. 1 UvoD Po splošni definiciji je učenje proces ustvarjanja no- vega znanja in pridobivanja veščin skozi izkušnje. Na Fakulteti za organizacijske vede Univerze v Ma- riboru (FOV) nam je bolj domača definicija, ki jo po- nuja Slovar slovenskega knjižnega jezika za področje šolstva: programirano učenje je individualizirano učenje po vnaprej natančno pripravljenem gradivu s pomočjo priprav za učenje ali posebnih knjig. Seve- da bo potrebno to definicijo dopolniti, saj je silovit razvoj informacijske in komunikacijske tehnologi- je (IKT) z novimi učnimi metodami in orodji moč- no posegel tudi v domeno izobraževanja. Za FOV je že kmalu po prelomu tisočletja postalo zanimivo področje e-izobraževanja, saj smo imeli v preteklo- sti veliko število izrednih študentov, ki so jim naši predavatelji predavali na več kot 10 lokacijah po vsej Sloveniji. V e-izobraževanju smo videli možnost U P O R A B N A I N F O R M A T I K A4 2020 - πtevilka 1 - letnik XXVIII Iztok Bitenc, Borut Weber, Marko Urh: Kombinirano učenje – izkušnje in rešitve zmanjšanja obremenitve predavateljev in znižanje stroškov, povezanih s predavanji na lokacijah. Tako smo v enem od laboratorijev pričeli poskusno uvajati e-izobraževanje s podporo učne platforme Moodle že leta 2004 (Leskovar, 2005). Ker so se tudi na nivoju univerze pričele odvijati aktivnosti v zvezi z uvedbo e-študija, smo z razvojem lastne rešitve počakali. Kot člani Univerze v Mariboru smo na osnovi strategije univerze leta 2011 vpeljali posebno obliko e-študija – tako imenovano kombinirano učenje (blended lear- ning) – klasično poučevanje v kombinaciji z e-študi- jem, ki je bilo podprto na nivoju univerze z Moodle učno platformo. Približno polovica predavanj in vaj se je tako namesto v klasični obliki v predavalnicah začela izvajati izključno z računalnikom. Seveda smo ob uvedbi začeli zaznavati težave: od zamujanja pri oddaji e-nalog, povečane odsotnosti študentov na e- -predavanjih in vajah, pojava plagiatorstva pri oddaji e-nalog do preobremenjenosti učiteljev zaradi pre- gledovanja velikega števila e-nalog. Več let smo tako iskali in izboljševali organizacijske in tudi vsebinske rešitve, ki jih v tem prispevku želimo predstaviti. 2 oPreDelitev Pojmov Preden opredelimo problem in predlagamo možne rešitve, je potrebno opredeliti osnovne pojme, ki se uporabljajo na tem področju. E-študij omogoča platformo, ki ob vsakem času in na vsakem mestu omogoča nadgradnjo znanj in spretnosti (Gowda & Suma, 2017). Zagotavlja platformo, v kateri posame- znik dobi prilagojen paket, ki je povezan s ključnimi tematskimi področji, s pomočjo samovodenega pro- cesa. To predstavlja sodelovanje tehnologije, pedago- gike in akreditacije, in sicer s ciljem pripraviti privla- čen koncept učenja, imenovanega e-učenje. Glede na vključenost e-učenja v pedagoški proces ločimo dva koncepta: študij na daljavo in kombini- rano učenje (»blended learning«). Medtem ko študij na daljavo običajno predstavlja študij, kjer študenti ves študij izvajajo od doma na osnovi gradiv, nalog in testov, sprva v papirnati obliki in niso nikoli fizič- no skupaj s predavatelji (Siemens idr., 2015)online learning, and blended learning. With the intent of in- forming future research and practice in the emerging discipline of digital learning, this tertiary study fo- cuses on the history and state of distance education, and the under- standing of the large body of empi- rical research as captured by secondary studies (i.e., meta-analyses and systematic literature reviews, ka- sneje izvedeno v obliki »on-line study«, je kombini- rano učenje mešanica klasičnega učenja v učilnici v kombinaciji z e-študijem, ki omogoča delo na daljavo z uporabo sodobnih informacijskih tehnologij (Ken- ney & Newcombe, 2011; Nazarenko, 2015). Z vidika usmerjenosti ločimo v učitelja usmerjeno učenje (Te- acher-Centric learning) in v učence usmerjeno učenje (Learner Centric Learning) (Gowda & Suma, 2017). Medtem ko v učitelja usmerjeno učenje poudarja pomen pripravljenega predmetnika s postavljenimi temami, vsebinami in cilji, ki jih učitelj s svojim po- sredovanjem učencem poskuša doseči, se v učence usmerjen študij posveča učencem kot posamezni- kom, njihovim željam in potrebam, saj učenci dobi- jo aktivno vlogo v učnem procesu (skupinsko delo, medsebojno ocenjevanje, podajanje snovi s strani učencev, igranje vlog, učenje z igro …), učitelj pa je predvsem v vlogi usmerjanja in organiziranja iz- menjave znanj med učenci (Gowda & Suma, 2017). V več raziskavah so proučevali razlike med e-študi- jem in klasičnim študijem (Daymont & Blau, 2008; Gowda & Suma, 2017; Nazarenko, 2015; William T. Kaufman, 2015). Večinoma ugotavljajo, da je osip študentov večji pri e-študiju in se kot najbolj opti- malna oblika kaže kombinirano učenje. V praksi se je pokazalo, da je zelo pomembno, kaj se pri posame- znem predmetu uči in kaj se pri posameznem pred- metu zahteva. Ugotavlja se, da je pri e-študiju zelo pomembna komunikacija predavatelja s študentom, saj slednji hitreje izgubi interes in se izgubi, če mu pri delu ne pomaga predavatelj (Moore, 2014). Še več, ni dovolj čas komuniciranja, temveč kvaliteta komuni- ciranja. Osebna motivacija, oblika študijskih gradiv, učno okolje in organizacijska podpora so ključni de- javniki, ki vplivajo, da več študentov prekine e-študij (Wang, Foucar-Szocki, Griffin, O’connor, & Sceiford, 2003). V raziskavi (Anderson, 2008) so proučevani dejavniki, ki vplivajo na uspešno izvedbo e-učenja. Med slednje spadajo lastnosti študentov, učiteljev, razpoložljiva tehnologija, vsebina predmetov, pod- pora študentom, organiziranost inštitucije, lastnosti družbe in stroški. V tem prispevku se osredotočamo na predavatelje, študente in organiziranost predme- tov. 3 ŠTUDIJ NA FOV Na FOV imamo seminarski način študija – predava- nja in vaje se za vsak predmet izvajajo praktično vsak U P O R A B N A I N F O R M A T I K A 52020 - πtevilka 1 - letnik XXVIII Iztok Bitenc, Borut Weber, Marko Urh: Kombinirano učenje – izkušnje in rešitve delovni dan v tednu po 3 šolske ure, običajno po dva predmeta vzporedno, pogosto tudi trije. Prvi izpitni rok je običajno 2–3 tedne po izteku predavanj in vaj. To pomeni za študente in predavatelje precej natrpan urnik. Prav tako nimamo predpisane obvezne pri- sotnosti na predavanjih in vajah. Z večjim številom udeležencev (do 150 študentov) se običajno srečamo v prvem letniku, ko vsi študenti obiskujejo skupni predmetnik, predmeti pa so bolj informativni. V viš- jih letnikih se študenti razdelijo na 3 programe in so skupine velike od 10 do 40 študentov, zahtevnost predmetov in obveznosti študentov pa se povečajo. V študijskem letu poslušajo študenti okrog 8 pred- metov in 700 ur predavanj in vaj. Programska oprema za e-študij je Moodle (http:// moodle.org/). To je odprtokodna učna platforma, ki izobraževalcem, administratorjem in učencem zagotavlja enoten, zanesljiv in integriran sistem za ustvarjanje prilagojenih učnih okolij. Z več deset ti- soč namestitvami in več kot 90 milijoni uporabnikov je največja učna platforma na svetu. Je enostavna za uporabo, preko licence GNU odprtokodna, podprta z močno skupnostjo organizacij in razvijalcev. Pre- vedena je v slovenščino, zanjo pa obstaja tudi več sto vtičnikov, ki dodatno razširijo njeno uporabnost (Moodle, 2019). Na FOV za podporo e-študiju prete- žno uporabljamo univerzitetni strežnik, dostopen na naslovu https://estudij.um.si/, pri enem predavatelju pa tudi lokalno namestitev (https://swqlab.fov.um.si/ moodle/). Eden od uporabljenih Moodlovih vtičnikov je tudi odprtokodni spletni videokonferenčni sistem Big Blue Button (BBB) (http://bigbluebutton.org/), ki Moodlovi spletni učilnici doda aktivnost »videokon- ferenca«. BBB podpira deljenje video in avdio vsebin, naprednih predstavitev z uporabo table (kazalec, približevanje, risanje), javne in zasebne klepetalnice, deljenje zaslona in podobno. Študent spremlja pre- davatelja (živa slika in glas predavatelja, deljen ekran predavatelja – »tabla«, kjer predavatelj lahko kaže prosojnice ali npr. piše programsko kodo, klepetal- nica, kviz) in ostale udeležence (klepetalnica, zvok, deljen ekran) v realnem času in se aktivno odziva na način, ki mu ga omogoči moderator sestanka (Big Blue Button, 2019). 4 IzKUŠNJe z e-ŠTUDIJem V PRAKSI Opažene težave pri izvajanju e-študija in njihove rešitve lahko v grobem razdelimo v dve kategoriji: 1) posamezne rešitve pri specifičnih zahtevah in 2) obvladovanje velikega števila udeležencev. Pri obeh imamo podkategoriji: a) organizacijske rešitve, kjer so spremenili način izvedbe predavanj in vaj, in b) vsebinske rešitve, kjer so dejansko spremenili vsebi- no predmetov. 5 ReŠITVe SPecIFIčNIH zAHTeV Predmeti, ki so se še iz časov pred uvedbo e-študi- ja izkazali za težavne, so predmeti, kjer študente uči- mo osnove računalniškega programiranja v drugem letniku informacijske smeri študija. Predmeti so ime- li v zgodovini poučevanja veliko različnih imen in 5 različnih programskih jezikov (trenutno sta aktualna jezika JavaScript in Java), jedro vsebine pa večinoma ostaja isto. Študente na konkretnem višjenivojskem programskem jeziku učimo osnov programiranja: od ukazov programskega jezika preko metod, ki se uporabijo za analizo problema in za izgradnjo algo- ritma za programsko rešitev, do dejanskega pisanja in razhroščevanja kode. Cilj predmetov je usposobiti študente, da samostojno na podlagi zahtev izdelajo pravilno delujoč program. Predmeti so med zahtev- nejšimi, saj se programiranja ne da naučiti »na pa- met«, ampak mora študent dejansko razumeti načela programiranja in obvladati pravilno uporabo gra- dnikov programskega jezika. Brez tega študent na izpitu, ki se vedno izvaja na računalniku, za zadano nalogo in v omejenem času enostavno ni sposoben sestaviti algoritma delovanja in na računalniku napi- sati delujoče programske kode. Zahtevano znanje se pri vsakem predmetu tokom predavanj in vaj postopno nadgrajuje, kar pomeni, da mora študent za uspešno nadaljevanje vsaj dobro poznati vsebine prejšnjih predavanj in vaj. Študent, ki izpusti dan predavanj ali vaj, mora manjkajočo snov samostojno predelati do naslednjega dneva, si- cer tvega, da naslednjim predavanjem ne bo mogel uspešno slediti. Ob običajnem razporedu dveh pred- metov dnevno se je tako samostojno delo izkazalo kot zahtevna naloga. Pri klasičnem podajanju predmeta pred uved- bo e-študija smo sprotno delo poskusili »vsiliti« z vmesnimi kolokviji, ki so se na koncu sešteli v oce- no predmeta, vendar je na ta način uspelo zaključiti predmet le boljšim študentom oz. v povprečju manj kot tretjini. Začetne kolokvije je pisala večina študen- tov, izrazit osip se je pokazal, ko je snov postala zah- tevnejša, npr. delo z datotekami, sploh pa pri upora- U P O R A B N A I N F O R M A T I K A6 2020 - πtevilka 1 - letnik XXVIII Iztok Bitenc, Borut Weber, Marko Urh: Kombinirano učenje – izkušnje in rešitve bi eno- in dvodimenzionalnih tabel (array). Ko smo iskali razloge za osip študentov, smo pogosto dobili odgovor, da je snov postala prezahtevna in da bodo ta predmet pustili »za konec«, ko bodo imeli več časa. Iz rezultatov drugih študij izhaja, da nimamo s tem težav le pri nas (Daymont & Blau, 2008). Tak način študentskega »dela« ima pri e-študiju dodatno neprijetno posledico: povzroči dodatno obremenitev pedagoških delavcev, ki morajo v dneh pred izpitni- mi roki znova nadzorovati oddaje e-nalog predme- tov, ki so se dejansko že iztekli in zanje nimajo več predvidenih pedagoških ur. E-študij smo kot člani Univerze v Mariboru vpe- ljali v obliki kombiniranega učenja – klasično pou- čevanje v kombinaciji z e-študijem. Ker nismo imeli veliko predhodnih izkušenj, je bila prva delitev časa med njima približno 50 % predavanj in vaj v e-obliki. Novonastale e-naloge so dobile dve vsebini: samo- stojno učenje manjših omejenih vsebin (npr. predsta- vitev in uporaba tekstovnih, računskih, datumskih … funkcij in metod) in utrjevanje že obdelane snovi. Primer dela naloge za utrjevanje predstavljene snovi je prikazan spodaj. Vse e-naloge so bile zastavljene tako, da bi jih bolj- ši študenti rešili v približno eni uri, slabši pa v treh urah. Le redki študenti so reševali e-naloge v tistih urah, ki se bile predvidene po urniku in ko smo pre- davatelji sedeli pred svojimi računalniki in čakali na njihova vprašanja (sinhrona e-predavanja ali vaje). Študenti so e-naloge razumeli kot asinhrona preda- vanja ali vaje in so e-naloge oddali enkrat v tistem dnevu, običajno v večernih urah. Zato smo predava- telji hitro prilagodili svoj način dela in čas za oddajo e-nalog temu »urniku«. Tako je zadnji čas za oddajo e-nalog (običajno 20:00) postal dejansko čas, ko smo začeli pregledovati oddane e-naloge. Delali smo torej izven rednega delovnega časa, vendar smo to kma- lu uredili s pogodbami o delu na domu. Na žalost se je prav tako hitro pokazalo, da je veliko (tudi do polovice) študentov razumelo e-naloge kot dodaten prosti čas in jih niso rešili na sprejemljiv način, jih sploh niso rešili ali pa so v skrajnih primerih oddali rešitve svojih sošolcev, to je plagiate. Ker niso prede- lali predvidene snovi, vsi ti študenti niso imeli dobre osnove za naslednja predavanja, zato so jim sledili z opaznimi težavami. Rešitev, kako pripraviti študente k redni oddaji e-nalog, smo najprej poiskali v prisili: oddane spre- jemljive e-naloge so postale pogoj za pristop k izpitu. Še vedno pa nismo rešili težave glede prepoznega oddajanja e-nalog. Prisile, to je »zapiranja« nalog po pretečenem roku za oddajo, nismo mogli uporabiti iz več razlogov:  že v prvem poskusu časovne omejitve oddaje se je pokazalo, da je kasneje potrebno za vsakega za- mudnika posebej ročno nastaviti možnost oddaje,  oddane e-naloge so pogoj za pristop k izpitu in zato oddaja ne sme biti onemogočena,  za zaključek pa smo dobili še pravno mnenje, da časovno ne smemo omejiti oddaje, ker to ni v skla- du z neobveznim obiskom vaj in predavanj, kar pomeni, da študent lahko zamudi oddajo. Zato smo se namesto »prisile« odločili uporabiti »spodbudo«. Uvedli smo sistem točkovanja: za od- dano e-nalogo, ki je sprejemljiva, je dobil študent toč- ko. Vsaj eno točko za vsako e-nalogo je moral dobiti, da je lahko pristopil k izpitu. Študent je lahko do- bil dodatno točko, če je v roku oddal e-nalogo. Če je zbral več kot 85 % možnih točk, je to pomenilo, da je pravočasno oddal štiri od petih e-nalog, zato se mu je končna ocena predmeta zvišala za 1 oceno. Namesto U P O R A B N A I N F O R M A T I K A 72020 - πtevilka 1 - letnik XXVIII Iztok Bitenc, Borut Weber, Marko Urh: Kombinirano učenje – izkušnje in rešitve 8, ki jo je »prislužil« na izpitu, je dobil 9. Predstavljeni model spodbude smo uporabili pri drugi generaciji študentov, ki so imeli e-študij. Izkazal se je za sicer uporabnega, vendar je bilo preveč enostavno priti do dodatne točke pri končni oceni predmeta. Zato smo ga delno spremenili. Sedaj že več let uporabljamo 3-točkovno lestvico. Prvo in obvezno točko dobi študent, ko odda spre- jemljivo nalogo. Drugo dobi za pravočasno oddajo, tretjo pa, če izpolni dodatne, natančno opredeljene zahteve. Primer take naloge je prikazan na sliki 1. Osnovna naloga je, da študent napiše kodo, ki bo iz- pisala tabelo množenja do 10. Precej časa smo prihranili, ko smo način pregle- dovanja in ocenjevanja nalog prilagodili postopku, ki ga podpira Moodle. Na začetku smo pregledova- li e-naloge in dajali ocene v modulu za ocenjevanje, toda v eni od Moodlovih posodobitev prikaza od- danih e-nalog ni bilo več mogoče urediti po datumu oddanih e-nalog. To je povzročilo preveč zamude pri iskanju naknadno oddanih nalog, zato smo ta način pregledovanja in ocenjevanja hitro nadomestili z mo- dulom Ogled vseh oddaj. V tem modulu vidimo in oce- nimo več e-nalog naenkrat, lahko pa ga tudi do neke mere prilagodimo našim potrebam, kot je prikazano na sliki 2. Slika 2 je bila narejena na širini ekrana 1920 točk, a smo morali prilagoditi postavitev stolpcev, da ima- mo na enem ekranu vidne vse podatke, ki jih potre- bujemo za ocenjevanje. V stolpcih, ki so skriti, bi bili sicer prikazani: slika uporabnika (študenta), ime in priimek, številka ID, naslov e-pošte in stanje odda- je, vendar bi bil zato stolpec Komentarji odziva, ki ga uporabljamo za sporočila študentom, izven vidnega področja okna. Viden bi postal šele z dodatnim pre- mikanjem levo-desno, za kar pa potrebujemo miško z dodatno funkcionalnostjo srednjega gumba. Postopek pregledovanja in ocenjevanja e-naloge se začne, ko študent prilepi (»paste«) kodo nalo- ge kot navadno besedilo v okvir za oddajo naloge. Prednost take oddaje pred oddajo datoteke je, da je za ocenjevalce vsebina naloge »oddaljena« samo en klik. Ocenjevalci besedilo izberemo in »prilepi- mo« v pripravljeno ogrodje programa, pregledamo kodo in jo poskusimo izvesti. Na podlagi rezultata nato damo ali oceno ali pa pripombe (komentarje) na nalogo. Pripombam na vrhu dodamo datum in čas nastanka pripombe, ki ga uporabimo za preverjanje, ali je študent nalogo dopolnil. Resda bi za to lahko uporabili tudi stolpec Komentarji oddaje, kamor se sa- modejno zapiše čas oddaje komentarja, toda vsebina stolpca je privzeto skrita in zahteva dodaten klik za razkritje, komentarji pa so prikazani po naraščajo- čem zaporedju (zadnji je vedno na dnu), kar zahteva še dodatno pomikanje vsebine okna. Držimo se tudi pravila, da študentu ne damo ocene, dokler njegova naloga ni sprejemljiva. Tako se izognemo nekaj kli- kom, ki so potrebni za podaljšanje roka za oddajo naloge, ki se privzeto zapre po ocenitvi. Seveda smo uvedli tudi druge spremembe v iz- vedbi predavanj in vaj. Kot vsebinsko spremembo smo na vseh kontaktnih predavanjih in vajah zače- li močno poudarjati pomen rednega in sprotnega dela. Takoj na začetku študentom povemo, da bodo morali začetniki pri programiranju za pozitivno oce- no vložiti nekaj deset ur v tipkanje in preskušanje Slika 1: Primer e-naloge. U P O R A B N A I N F O R M A T I K A8 2020 - πtevilka 1 - letnik XXVIII Iztok Bitenc, Borut Weber, Marko Urh: Kombinirano učenje – izkušnje in rešitve delovanja programske kode, ker je to edini znani na- čin, kako se naučiti samostojnega programiranja. V prvi polovici predavanj ali vaj jim to tudi stalno ome- njamo. Prvi dan običajno predstavimo tudi najslabši scenarij, ki se pogosto zgodi študentom, ki »odloži- jo« predmet. Čaka jih intenziven študij v avgustu, s plačevanjem inštruktorja, udeležbo na zadnjem izpi- tnem roku v študijskem letu in, za okrog polovico ta- kih študentov, ponavljanje letnika. Uspešnost takega pristopa je zaradi relativno nizkega števila udeleže- nih študentov (8–15 študentov) težko točno izmeri- ti. V zadnjih nekaj letih sta na preskusnem izpitnem roku (neuradni izpit, ki ga pišejo takoj ob zaključku predmeta, rezultat pa se upošteva pri uradnem izpi- tnem roku samo v primeru pozitivne ocene) običaj- no prisotni okrog dve tretjini študentov, kar je opa- zen napredek glede na eno tretjino iz obdobja pred e-študijem. Kot organizacijsko prilagoditev smo uvedli vzpo- redno izvajanje predavanj in vaj: Po dveh ali treh dneh predavanj (spoznavanja z novo snovjo) sledita dan ali dva vaj (utrjevanje nove snovi). Tako lahko študenti, ki so npr. manjkali na predavanju ali sno- vi na predavanju niso dobro razumeli, na vajah še vedno usvojijo uporabo nove snovi. S tem odpade- jo težave zaradi neznane snovi pri nadaljnjih pre- davanjih. Predavateljem veliko časa prihrani uporaba pre- prečevanja oddaje nalog (zaklepanje), ko se predmet izteče in je bil izveden prvi izpitni rok. Ker študenti – zamudniki ne morejo več normalno oddati zahte- vanih e-nalog, stopijo v stik s predavateljem ali asi- stentom. S tem pa ga opozorijo nase in zato asistentu ali predavatelju ni potrebno dva tedna pred vsakim izpitnim rokom več dni zapored pregledovati oddaje e-nalog za predmete, ki so se zaključili že pred več meseci. Moodle sicer lahko nastavimo, da ob vsaki oddaji e-naloge dobi predavatelj ali asistent e-poštno sporočilo, toda v praksi se je izkazalo, da to močno obremeni e-poštni predal in lastnika predala, zato smo to možnost izključili. Večino močno zamujenih e-nalog tako študenti – zamudniki opravijo s poši- ljanjem nalog preko e-pošte, kar je za izvajalca bolj priročno kot globoko v Moodlovih menijih odklepati za vsakega zamudnika vsako e-nalogo posebej. Omeniti velja tudi, da smo v študijskem letu 2017– 18 za nekatere predmete zmanjšali število ur e-vaj in e-predavanj in povečali število kontaktnih ur. Razlog za to najbolje ilustrira primer odlične študentke, ki je dosegala nadpovprečne rezultate pri vseh predme- tih, bila uvrščena na dekanovo listo najuspešnejših študentov, bila vedno prisotna na predavanjih in va- jah, a je kljub temu za nalogo, planirano za eno šol- sko uro, zaradi neobičajne tipkarske napake porabila Slika 2: Prilagojeno okno za ocenjevanje vseh oddaj e-nalog U P O R A B N A I N F O R M A T I K A 92020 - πtevilka 1 - letnik XXVIII Iztok Bitenc, Borut Weber, Marko Urh: Kombinirano učenje – izkušnje in rešitve celih 5 ur samostojnega dela. Če bi isto nalogo delala v klasični predavalnici, bi ji predavatelj pomagal v nekaj sekundah. Tukaj se kaže, kako so predmeti, ki zahtevajo logično razmišljanje, povezavo na pred- hodna znanja in sklepanje (matematika, statistika, računalniško programiranje …), manj primerni za e- -način učenja kot predmeti, ki zahtevajo pomnjenje dejstev, primerjanje, analizo, sintezo in razvrščane. Tukaj pričakujemo kritiko bralcev s pripombo, da to ne drži, saj je večina tečajev programiranja narejena v spletnih verzijah s primeri. Res je, tudi mi študentom kot dopolnilno gradivo predlagamo uporabo sple- tnih učilnic, kot je www3school, kjer najdejo razlage in primere osnovnih ukazov. Opazili pa smo, da štu- denti pristopajo k problemom na parcialen način, to pomeni, da ne preučijo snovi od začetka do konca, ampak poiščejo samo rešitev za trenuten problem, ostalo pa preskočijo. Tako pogosto v e-nalogah dobi- mo sicer delujoče rešitve, ki pa uporabljajo metode in kodo, ki je študentom sploh nismo predstavili. Štu- denti je običajno niti ne zanjo razložiti, ker so jo samo prekopirali s spleta. Seveda to postavlja pod vprašaj, ali so se s takim načinom kopiranja kode sploh kaj naučili o uporabi te kode. Težava je tudi v tem, da večina spletih učilnic brezplačno ponuja samo osno- ve, ki pogosto niso dovolj za naše potrebe. Za rešitve višjega nivoja pa je pri mnogih spletnih učilnicah po- trebno plačilo. Značilnost učenja programiranja je nadgradnja in povezovanje predhodnih ukazov z novimi in tudi is- kanje in odpravljanje napak. Zato smo v predavanja uvedli vprašanja v obliki kratkih praktičnih nalog, v katerih študenti takoj preverijo uporabo in delovanje predstavljene snovi. Študent, ki je prisoten na pre- davanjih, te naloge reši tekom predavanj, odsoten študent pa mora zamujeno opraviti sam, za kar po- trebuje bistveno več časa, kot če bi se udeležil preda- vanj in vaj. Rešitve teh kratkih nalog študent odda v spletni učilnici predmeta. Oddaja hkrati služi kot »seznam prisotnosti« za tisti dan predavanj ali vaj, saj Moodle takoj označi naloge, ki niso bile oddane pravočasno, v tem primeru do konca predavanj. Druga prednost sprotnih nalog je, da se študent spozna z napakami v kodi in njihovim odpravlja- njem. Da bi študenti čim prej spoznali večino mo- žnih napak začetnikov, smo uvedli način predavanj s sodelovanjem študentov za katedrom. Prostovoljec (zanimivo, da se študenti sami radi javijo) rešuje na- logo za katedrom s projekcijo svojega dela na platno, predavatelj pa sledi reševanju in hkrati pomaga osta- lim študentom v predavalnici. Na ta način se tudi pokažejo napake, ki jih predavatelj zaradi praktičnih izkušenj ne dela, a včasih vzamejo več deset minut predavanj, preden so skupaj odpravljene. Dodatno tudi spodbujamo boljše študente, ki so svojo nalogo že zaključili, da kot demonstratorji pomagajo sošol- cem pri pisanju kode in odpravljanju napak in na tak način neposredno izvajajo učenje med seboj. Kot dejavnik (ne)uspešne uporabe e-učenja se je pokazala tudi kultura študentov. Precej študentov pristopa k opravljanju študija po pragmatičnem na- čelu: do cilja z najmanj napora. Ena od »metod« tega načina študija je kopiranje rešitev v stilu »samo da nekaj oddam«. Ta dejanja ne le da povzročajo luknje v znanju študentov, ampak tudi nepotrebno dodatno delo za predavatelje, saj morajo ob vsebini preverjati tudi plagiatorstvo. Še posebej je to vidno pri e-na- logah, kjer vsi študenti doma rešujejo isto nalogo in imajo čas, da poiščejo rešitve prejšnjih generacij ali dobijo rešitev od boljšega študenta. Pretekle rešitve enostavno onemogočimo z delnim spreminjanjem besedila naloge (npr. namesto »izpišite najboljše tri …« zahtevamo »izpišite najboljše štiri …«), za tekoče pa imamo v okviru univerze na strežniku za e-štu- dij nameščen vtičnik Detektor podobnih vsebin 2.0, ki v nekaterih primerih pomaga, pri oddaji računalniške kode pa pogosto ne. Glavna težava je, ker študenti v besedilu e-naloge že dobijo dele kode ali pripravljene podatke, detektor pa to označi kot plagiat. Tako se dejanski plagiati skrijejo v množici lažnih zadetkov. Da bi olajšali proces učenja, študentom omogoča- mo uporabo povzetkov ukazov, ki vsebujejo vse uka- ze, potrebne za izdelavo izpitne naloge. Povzetki niso zapisani kot rešitev, temveč kot sestavni deli kode, ki jo mora študent ustrezno združiti. Kljub opozori- lom, naj takoj začnejo uporabljati povzetek ukazov, študenti z nizko motivacijo to naredijo šele tik pred izpitom. Tako jim povzetek ukazov ne pomaga veli- ko, ker zaradi pomanjkanja praktičnih izkušenj, ki bi jih pridobili z rednim delom, enostavno ne znajo teh delov kode smiselno uporabiti. 6 ObVLADOVANJe VeLIKegA ŠTeVILA UDeLežeNceV Veliko število pomeni več deset študentov, ki v istem dnevu oddajo svoje e-naloge, ki jih je treba pregledati in oceniti do naslednje izvedbe vaj ali predavanj. Tu moramo ločiti naloge glede na zvrst: U P O R A B N A I N F O R M A T I K A10 2020 - πtevilka 1 - letnik XXVIII Iztok Bitenc, Borut Weber, Marko Urh: Kombinirano učenje – izkušnje in rešitve  informativne, v katerih študenti samostojno pre- delajo določene vsebine,  formativne, v katerih študenti usvojijo izbrane ve- ščine, in  problemske, kjer morajo združiti zanje in veščine pri reševanju zastavljenega problema. Moodle ponuja pester nabor gradnikov in orodij za razvoj informativnih nalog pa tudi za samodejno preverjanje kakovosti informacij, ki naj bi jih študenti z nalogo usvojili. Ta zvrst nalog tako potrebuje veliko začetnega vloženega dela: od oblikovanja vsebine za vsako nalogo, prenosa te vsebine z Moodlovimi gra- dniki v e-nalogo do zasnove, oblikovanja in izdelave testnih nalog in samodejnega točkovanja. Ko pa je taka e-naloga na Moodlu pripravljena, potek njenega reševanja v celoti izvaja računalnik in tako postane število udeleženih študentov nepomembno. Preda- vatelj ne dela več na nalogi posameznega študenta, ampak le nadzoruje uspešnost študentov in v prime- ru odstopanj od pričakovanih rezultatov ali velike- ga števila vprašanj študentov spremeni ali dopolni e-nalogo. Praktične izkušnje so pokazale, da se na tak način lahko nekatere predmete izvede skoraj v celoti, vključno z zaključnim izpitom. Preverjanje pravilnih rešitev formativnih nalog je bolj zapleteno, saj so običajno odgovori opisni in je preverjanje pravilnosti odgovorov težko realizirati z razpoložljivimi Moodlovimi orodji. Najbolj zahtev- ne za preverjanje pa so problemske naloge, ki so pri učenju programiranja najbolj zastopane. V Moodlu nimamo orodij, ki bi preverjala pravilnost oddane programske kode, zato je vse delo na strani predava- teljev. Ko smo prvič oblikovali e-naloge, v katerih so morali študenti samostojno reševati zastavljene pro- bleme in oddati delujočo kodo rešitve, se je izkazalo, da že pri približno 15 oddanih e-nalogah le-teh ni bilo mogoče kakovostno pregledati v predvidenem času treh šolskih ur. E-naloge so bile na začetku kopije nalog, ki so jih študenti delali v računalniški učilnici. Tam je predava- telj ali asistent sproti na računalniku vsakega študenta lahko spremljal njegovo delo in preverjal, ali je koda pravilna. Pri e-nalogah pa je pregledovanje potekalo na enem samem računalniku in te »paralelnosti« ni bilo. Prav tako se je pojavilo dodatno delo, ker je bilo vsako oddano e-nalogo v obliki stisnjene (»zip«) da- toteke Visual Basic projekta potrebno prenesti s stre- žnika, prekopirati vsebino na disk predavateljevega računalnika in nato projekt odpreti z Visual Studijem. Postopek je trajal manj kot minuto, toda ko to pomno- žimo z nekaj deset nalogami, se je že tako predolg čas pregledovanja nalog opazno podaljšal. Ko smo analizirali stanje, smo ugotovili, da mora- mo prilagoditi e-naloge. Naloga študentov je oddati delujočo kodo, mi pa smo e-nalogam poleg zahtev, kako naj koda deluje, dodali še zahtevo, da koda naredi podrobno opisan izpis. Primer take naloge je predstavljen na sliki 1 zgoraj. Logika je enostavna – če je koda napisana pravilno, bo tudi izpis rezultatov njenega delovanja pravilen. Tako smo za osnovno »pregledovanje« uporabili računalnik – če je izpis de- lovanja bil tak, kot je bilo zahtevano, nam ni bilo več treba podrobno pregledovati kode vrstico za vrstico, ampak smo samo še pregledali ključne sklope kode. Če pa izpis ni bil zadosti podoben zahtevanemu, smo nalogo enostavno zavrnili, ne da bi pregledovali kodo. Na tak način smo uspeli skrajšati čas s pribli- žno 7 ur za 37 e-nalog na 3–4 ure, kar je bilo bistveno bližje predvidenim trem šolskim uram. Zbrati več deset ljudi ob istem času na istem me- stu je težava, s katero se vsak dan srečujemo v pre- davalnicah. Tudi pri tem smo si pomagali z uporabo sodobne IKT. Pri predmetu Informatika in računalništvo v prvem letniku že od leta 2004 uporabljamo lokalno verzijo Moodla (Leskovar, 2005) in od leta 2014 že prej omenjeni Moodlov vtičnik Big Blue Button (BBB). Namestitev vtičnika je enostavna, za delovanje pa se potrebuje spletni brskalnik z nameščenim javanskim izvedbenim okoljem JRE 1.8. Moodle je nameščen lo- kalno na virtualnem računalniku s štirimi procesorji, štirimi GB pomnilnika, 100 GB prostora na disku in 64-bitnim Linux Ubuntu operacijskim sistemom. Stre- žnik je nekaj let star HP-jev strežnik Proliant DL380 G7 z 12 jedri, 64 GB pomnilnika, 2,5 TB velikim di- skovnim poljem, VMware programsko opremo in 1 GB hitro omrežno povezavo. Na tej konfiguraciji je brez vidnih težav potekalo e-predavanje z neposre- dnim prenosom slike in zvoka ter deljenjem ekrana s 43 hkrati prijavljenimi študenti. Strojne zahteve so sicer nižje – večina začetnih testnih sej z do 16 uporab- niki je potekala na običajnem osebnem računalniku s 4-jedrnim procesorjem, 16 GB pomnilnika in 100 MB omrežne povezave. Na tej konfiguraciji smo izvedli tudi dejansko videokonferenco s 7 udeleženci. Izvedba »videokonferenčnega« predavanja (seje) z BBB je precej podobna klasičnemu predavanju, le da ga študenti spremljajo preko računalnika. Zato je pred začetkom predavanja treba poskrbeti za dobro U P O R A B N A I N F O R M A T I K A 112020 - πtevilka 1 - letnik XXVIII osvetlitev delovnega mesta predavatelja in primerno ozadje. Administrator Moodla zažene sejo in preda- vatelju dodeli pravico moderatorja. Predavatelj mora pred začetkom javnega dela seje v BBB naložiti po- trebne dokumente (podprta je večina oblik, kot so pdf, doc, ppt …) in v primeru, da pri izvedbi preda- vanja potrebuje tudi tablo, le-to nadomestiti z delje- njem dela ekrana svojega računalnika s študenti. Do- bra rešitev je, da je deljeni del ekrana na istem mestu in iste velikosti, ko je okno BBB za prikazovanje na- loženih dokumentov. Priporočljivo je tudi, da ima na svojem računalniku že vnaprej pripravljeno besedilo vprašanj, ki jih namerava zastaviti študentom tekom predavanja, in da že zažene aplikacije ali programe, ki jih namerava uporabiti med predavanjem. Na za- četku prve seje naj bi bil poleg predavatelja prisoten tudi administrator Moodla, da pomaga študentom, ki imajo težave pri prijavi na sejo. Ker so se te težave vedno pojavile, se je prvo predavanje običajno začelo z 10- do 30-minutno zamudo. Ko se predavanje (javni del seje) začne, predava- telj takoj prosi študente, da v BBB onemogočijo svoje mikrofone in da naj za komunikacijo uporabljajo le vgrajeno okno za klepet. S tem preprečimo zvočne motnje, ki običajno nastanejo na strani študentov. Med predavanjem predvaja prosojnice in ostale pri- pravljene dokumente, ki jih lahko tudi označuje ali po njih riše z vgrajenimi orodji. Ko potrebuje prikaz računalniškega ekrana (npr. za prikaz delovanja apli- kacije), potegne okno te aplikacije v področje, ki ga s študenti deli na svojem ekranu. Za sprotno preverja- nje razumevanja predavanja (in ugotavljanje dejanske prisotnosti študentov pred njihovimi ekrani) prilepi (»paste«) prej pripravljena besedila vprašanj in odgo- vorov v modul kviz, ki ga z dvema klikoma postavi v klepetalnico. Ker Moodle beleži vse dejavnosti štu- dentov v vgrajeno bazo podatkov, lahko te podatke uporabimo za različne statistike (Leskovar in Baggia, 2015) ali celo za zbiranje točk za končno oceno. Tak način izvedbe predavanj zahteva od predava- telja nekaj prilagajanja. Poleg nenavadnega občutka ob predavanju ekranu, mora stalno spremljati klepe- talnico, da odgovori na vprašanja študentov ali doda- tno pojasni snov. Paziti mora tudi na pravilno prekla- pljanje (prestavljanje v deljeno območje ekrana) med okni aplikacij, katerih vsebino predstavlja študentom. Prednosti take izvedbe e-predavanja so predvsem na strani predavatelja. Na tak način lahko hitro pred- stavi nove vsebine, za katere še nima pripravljenih modulov na Moodlu. Ker je snov študentom predsta- vljena v obliki predavanja in ne e-naloge, mu ni tre- ba preverjati odgovorov študentov na e-naloge, kar pri nekaj 10 študentih zahteva nesorazmerno veliko časa. Na študentski strani cenijo tako obliko preda- vanj predvsem študenti iz oddaljenih krajev in tisti, ki zjutraj težko vstanejo. Najbolje opiše njihovo mnenje anekdota, ki smo jo doživeli na enem prvih preda- vanj, ko je študent pri vklopljenem mikrofonu neko- mu navdušeno razlagal: »Pet do osmih vstanem, si skuham kavo, vklopim računalnik in poslušam pre- davanje.« Navsezadnje imajo e-predavanja tudi eko- loško prednost, saj prihranijo nekaj deset litrov gori- va, ko študentom ni treba osebno priti na predavanja. 7 KLASIčNA V PRImeRJAVI z e-PReDAVANJI Sedaj po večletnih izkušnjah lahko z gotovostjo po- trdimo, da je s strani izvajalcev za e-predavanja po- trebno več dela in več časa kot za klasična predava- nja, kar pa klub večjemu vloženemu delu ne pome- ni boljšega uspeha med študenti (Daymont & Blau, 2008; William T. Kaufman, 2015). Za e-predavanja moramo najprej proučiti teorijo, izbrati neko poglav- je in ga v strnjeni obliki podati v elektronski obliki kot besedilo, kodo, primere, rešitve, povezave, fil- me ali slike. Dodatno moramo pripraviti e-učilnico, naložiti ustrezne dokumente, predstavitve, primere in filme na ustrezna mesta in jih časovno ustrezno odpreti študentom. Sledi zbiranje rezultatov študen- tov in njihova ocena. Na koncu predmeta je potrebno za vsakega študenta zbrati rezultate za vsa preda- vanja in vaje in na osnovi tega ovrednotiti njihovo delo. Ker se skoraj nikoli ne zgodi, da bi vsi študenti v roku oddali svoje e-naloge, lahko vsak dan pose- bej preverjamo, če je kak od zamudnikov oddal na- loge. Dodatno moramo odgovarjati na vprašanja, ki jih študenti postavljajo med izdelavo e-predavanj ali vaj. Za iskanje ene napake lahko porabimo tudi več ur kljub izkušnjam v programiranju. Dodaten problem povzroča razlika med posameznimi gene- racijami študentov. Redko se namreč zgodi, da druga generacija predela isto količino snovi kot predhodna, zato je potrebno že pripravljena gradiva za predava- nja vsako leto prilagajati glede na hitrost sprejemanja znanj posamezne generacije. Kakor koli gledamo, je porabljen čas nesorazmeren z rezultati (Daymont & Blau, 2008) in glede na odzive študentov v anketah smo pri predmetu osnov programiranja iz 50 % prešli na 20 % e-predavanj in e-vaj. Iztok Bitenc, Borut Weber, Marko Urh: Kombinirano učenje – izkušnje in rešitve U P O R A B N A I N F O R M A T I K A12 2020 - πtevilka 1 - letnik XXVIII Iztok Bitenc, Borut Weber, Marko Urh: Kombinirano učenje – izkušnje in rešitve Asinhron in sinhron način izvedbe e-predavanj in e-vaj je naslednje vprašanje, ki se nam je porajalo ob prehodu na e-študij. Sinhron način pomeni, da se v času e-predavanj izvaja neposredna komunika- cija s študenti v obliki predavanj, informacij in na- vodil. Kljub temu da Moore ugotavlja pomen spro- tne komunikacije s študenti (Moore, 2014), samo en sodelavec prakticira tak način poučevanja in odziv med študenti ni najboljši, saj s tem izničimo bistve- no prednost e-študija – časovno in krajevno neod- visnost. Če mora študent točno ob določenem času biti prijavljen in poslušati predavanja preko elek- tronske povezave, ne vidi prednosti pred klasičnimi predavanji s tem, da tak način predavanj spremlja še slabša slišnost, slaba vidljivost, možnost prekinitev in možnost motenja v domačem okolju. Drugačen je odziv med študenti, če imajo na razpolago komu- nikacijo s predavateljem, ko potrebujejo nasvet ali pomoč, tudi če to ni takrat, ko sami izvajajo e-nalo- ge. Vprašanja študentov med in po predavanjih so največji pokazatelj o tem, ali študenti spremljajo in v kolikšni meri obvladajo podano snov. Zanimivo je, da študenti postavijo več vprašanj na klasičnih pre- davanjih kot na e-predavanjih, kljub temu da imajo možnost zastaviti vprašanje znotraj Moodla le klik stran. Tudi če potrebujejo pomoč pri iskanju napa- ke, se redki odločijo in pošljejo prošnjo za pomoč. Prednost klasičnih predavanj in vaj se v tem primeru pokaže tudi zaradi tega, ker ostali slišijo odgovor na postavljeno vprašanje, pri e-predavanjih pa je odgo- vor le za enega študenta. Uporaba e-učenja za potrebe predštudija (Ander- son, 2008) oziroma spoznavanja osnov se je pokazala kot odlična, a je žal odvisna od kulture študentov. Medtem ko je v nekaterih zahodnih državah običaj- no, da študenti predelajo uvodno snov, preden pri- dejo na predavanja, je ta kultura pri nas bolj izjema kot pravilo. 8 UgOTOVITVe Kljub prednostim, ki jih e-študij omogoča študen- tom, se kaže, da v primerjavi s klasičnimi predavanji nima večjega uspeha, poleg tega pa še od študen- tov zahteva večjo samodisciplino in organiziranost (Daymont & Blau, 2008). Kot bolj optimalna rešitev se ponuja kombinirano učenje, ki pa samo po sebi še ne zagotavlja stimulativnega učnega okolja, zato se predlaga, da predavatelji v večji meri vključijo sode- lovanje študentov in sodelovanje med njimi samimi (Kenney & Newcombe, 2011). Večinoma te ugotovi- tve lahko potrdimo tudi iz naših izkušenj. Predmeti, ki zahtevajo intenzivno kombiniranje predhodnih znanj in logičnega razmišljanja – tipičen predstavnik je učenje računalniškega programiranja – so manj primerni za izvedbo v obliki e-študija. Vendar tudi tu obstaja veliko rešitev, ki olajšajo delo predavateljem in povečajo uspeh študentom: predavatelji nepresta- no vzpodbujamo študente za samostojno, redno in sprotno delo, izboljšali smo razporeditev tega dela s primernim kombiniranjem predavanj (nova snov) in vaj (utrjevanje snovi). Predavateljem smo olajša- li pregledovanje e-nalog, ko smo za osnovno oceno pravilnosti delovanja oddane kode uporabili raču- nalnik in ko smo prilagodili orodja za ocenjevanje (Moodla) pri pregledovanju e-nalog, ali celo upora- bili videokonferenco pri izvedbi e-predavanj. Po več letih takega načina izvajanja predmetov osnove računalniškega programiranja smo z rezul- tati zadovoljni. Težko je sicer narediti zanesljivo pri- merjavo s prejšnjimi leti, ker je način dela in s tem tudi zbrani podatki precej drugačni. Če pa primerja- mo stari način dela, ko je približno tretjina študentov zaključila predmet s kolokviji, s številom študentov, ki so v zadnjih nekaj letih pristopili k »preskusne- mu izpitu«, je sedaj številka bistveno višja – vedno je nad 60 odstotki, v zadnjem študijskem letu smo dosegli celo 82 odstotkov. Najbolj razveseljivo pa je, da večina študentov ta preskusni izpit tudi uspešno opravi. LITeRATURA [1] Anderson, T. (2008). The Theory and Practice of Online Lear- ning (Fifth Prin). AU Press, Athabasca University. Pridobljeno od aupress@athabascau.ca [2] Big Blue Button. Overview (pridobljeno jul. 2019) dosegljivo na spletnem naslovu https://bigbluebutton.org/ [3] Daymont, T., & Blau, G. (2008). Student performance in on- line and traditional sections of an undergraduate manage- ment course. Journal of Behavioral and Applied Manage- ment, 275–295. Pridobljeno od http://www.ibam.com/pubs/ jbam/articles/vol9/no3/jbam_9_3_3.pdf?origin=publication_ detail&sa=U&ei=8OdxU5W9I4eeyAS1-IDoCA&ved=0CCEQF jAB&usg=AFQjCNFZdwkwCvxuftcomZNP1wWZfNlNCg [4] Gowda, R. S., & Suma, V. (2017). A comparative analysis of traditional education system vs. e-Learning. IEEE Interna- tional Conference on Innovative Mechanisms for Industry Applications, ICIMIA 2017 - Proceedings, (Icimia), 567–571. https://doi.org/10.1109/ICIMIA.2017.7975524 [5] Kenney, J., & Newcombe, E. (2011). Adopting a blended learning approach: Challenges encountered and lessons le- arned in an action research study. Journal of Asynchronous Learning Network, 15(1), 45–57. https://doi.org/10.1016/j.sb- spro.2014.01.992 U P O R A B N A I N F O R M A T I K A 132020 - πtevilka 1 - letnik XXVIII Iztok Bitenc, Borut Weber, Marko Urh: Kombinirano učenje – izkušnje in rešitve [6] Leskovar, Robert. Podpora izvajanja študija s paketom „Mo- odle“ - izkušnje in perspektive = Studies implementation support using the „moodle“ package - experience and per- spectives. V: KALUŽA, Jindřich (ur.). Sinergija metodologij : zbornik 24. mednarodne konference o razvoju organizacijskih znanosti, Slovenija, Portorož, 16.-18. marec 2005 = Syner- gy of methodologies : proceedings of the 24th International Conference on Organizational Science Development, Slove- nia, Portorož, March 16-18, 2005. Kranj: Moderna organiza- cija. 2005, str. 550-557. [7] Leskovar, R. & Baggia, A. (2015). Zločin in kazen: udeležba na avditornih in videokonferenčnih predavanjih ter uspešnost reševanja nalog. V Bernik M. in Rajkovič U. (Ur.), Vzgoja in izobraževanje v informacijski družbi - VIVID 2015, Kranj: Fa- kulteta za organizacijske vede, str. 287-296. [8] Moodle, pregled (pridobljeno jul. 2019), https://docs.moodle. org/37/en/About_Moodle [9] Moore, J. (2014). Effects of online interaction and instructor presence on students’ satisfaction and success with onli- ne undergraduate public relations courses. Journalism and Mass Communication Educator, 69(3), 271–288. https://doi. org/10.1177/1077695814536398 [10] Nazarenko, A. L. (2015). Blended Learning vs Traditional Learning: What Works? (A Case Study Research). Proce- dia - Social and Behavioral Sciences, 200(October), 77–82. https://doi.org/10.1016/j.sbspro.2015.08.018 [11] Siemens, G., Skrypnyk, O., Joksimovic, S., Kovanovic, V., Dawson, S., & Gasevic, D. (2015). The history and state of blended learning. Preparing for the Digital University: A review of the history and current state of distance, blended, and onli- ne learning, 234. https://doi.org/10.13140/RG.2.1.3515.8483 [12] Wang, G., Foucar-Szocki, D., Griffin, O., O’connor, C., & Sce- iford, E. (2003). Departure, abandonment, and dropout of e- -learning: Dilemma and solutions. James Madison University, (October). [13] William T. Kaufman. (2015). Traditional vs. Electronic Le- arning Environment. Education and Human Deve- lopment Master’s Theses. Paper 537. Pridobljeno od http://digitalcommons.brockport.edu/cgi/viewcontent. cgi?article=1554&context=ehd_theses.  Iztok bitenc je zaposlen kot predavatelj na Fakulteti za organizacijske vede Univerze v Mariboru na področju Informacijski sistemi, kjer sodeluje pri predmetih s področja osnov informatike, različnih programskih jezikov, razvoja spletnih rešitev in baz podatkov. Je avtor več strokovnih in znanstvenih člankov, raziskovalno pa se udejstvuje pri iskanju praktičnih rešitev z uporabo sodobne informacijske tehnologije.  Borut Werber je docent na Fakulteti za organizacijske vede Univerze v Mariboru na študijskem programu Organizacija in management infor- macijskih sistemov. Glavna področja njegovega raziskovanja so informacijski sistemi, IKT, podkožni mikročipi in informatika v mikro-podjetjih. Aktivno sodeluje kot evalvator NAKVIS-a pri akreditacijah in reakreditacijah visokošolskih študijskih programov in institucij v Sloveniji in tujini. Kot evalvator sodeluje tudi pri notranjih evalvacijah Univerze v Mariboru. Kot recenzent aktivno sodeluje na domačih in mednarodnih konferencah ter domačih in tujih publikacijah.  marko Urh je višji predavatelj na Fakulteti za organizacijske vede Univerze v Mariboru, svojo strokovno in znanstveno pot je začel v Policiji kot razvijalec geografskih informacijskih sistemov. Glavna področja njegovega raziskovanja so informacijski sistemi, e-izobraževanje, management in razvoj kadrov. Objavil je več domačih in mednarodnih člankov in prispevkov z omenjenih področij. Aktivno sodeluje na domačih in mednarodnih konferencah ter je recenzent domačih in tujih publikacij. U P O R A B N A I N F O R M A T I K A14 2020 - πtevilka 1 - letnik XXVIII Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko Koroška cesta 46, 2000 Maribor mladen.borovic@um.si, sandi.majninger@um.si, jani.dugonik@um.si, marko.ferme@um.si, milan.ojstersek@um.si Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije Izvleček V prispevku predstavljamo hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije. S pomočjo takšnega pristopa lahko knjižničarjem omogočimo polavtomatsko določanje vrstilcev univerzalne de- cimalne klasifikacije iz vsebine že obstoječih uvr- ščenih gradiv. Hibridni pristop deluje na podlagi združevanja rezultata metode BM25 in naivnega Bayesovega klasifikatorja, kjer oba pristopa vrneta seznam priporočenih vrstilcev. Oba seznama združimo v končni seznam priporočil z združevalno funkcijo. V prispev- ku podrobneje opišemo korpus, obliko podatkov, obliko vrstilcev univerzalne decimalne klasifikacije in delovanje posamezne metode znotraj hibridnega pristopa. Podamo tudi rezultate metrik natančnosti, priklica in Fß za sezname priporočil na korpusu besedil iz nacionalne infrastrukture odprtega dostopa. Ključne besede: digitalne knjižnice, hibridni priporočilni sistemi, programska oprema v knjižnicah, Univer- zalna decimalna klasifikacija Abstract In this article we present a hybrid approach to recommending the Universal Decimal Classification notation for unclassified docu- ments. By recommending Universal Decimal Classification notation to librarians, we can enable them to semi-automatically deter- mine the notation using already classified documents. The hybrid approach combines the BM25 method and the naive Bayes clas- sifier, where both methods return a list of recommended notations. Both lists are merged into a final recommendation list using a custom merge function. In detail we present the Universal Decimal Classification notation structure, the corpus of documents, the inputs to our methods and the inner workings of our hybrid approach consisting of both methods. We provide the measurement results of the recommendation lists for the corpus from the National Open-Access Infrastructure in the form of precision, recall and Fß metrics. Keywords: digital libraries, hybrid recommender systems, library software, Universal Decimal Classification 1 UvoD Z razvojem spletnih iskalnikov sta se področji ra- čunalništva in knjižničarstva združili v interdisci- plinarno področje digitalnih knjižnic, ki se ukvarja predvsem z organizacijo, skladiščenjem, obdelavo in klasifikacijo dokumentov. Predvsem klasifikacija dokumentov je raziskovalno zelo aktivno področje. Kljub temu, da je na tem področju veliko različnih metod, ne obstaja veliko metod za avtomatizirano klasificiranje po knjižničarskih klasifikatorjih, kot so univerzalna decimalna klasifikacija (UDK) [Sla- vic, 2004], Deweyjeva decimalna klasifikacija (DDK) [Wang, 2009] in klasifikacija Library of Congress (LCC) [Godby & Stuler, 2003], [Frank & Paynter, 2004]. Obstajajo še drugi klasifikacijski sistemi, ki so ekskluzivno namenjeni določenim jezikom (npr. v Aziji obstajajo Kitajska, Japonska in Korejska knji- žničarska klasifikacija). Ne glede na sistem klasifi- kacije se večina gradiv po svetu še vedno klasificira ročno ‒ bodisi zaradi nezaupanja v avtomatizirano klasifikacijo, bodisi zaradi nezadovoljivega rezulta- ta le-te. zNANStVENI prISpEVkI U P O R A B N A I N F O R M A T I K A 152020 - πtevilka 1 - letnik XXVIII Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije Problem nezaupanja v avtomatizirano klasifika- cijo je potrebno s stališča knjižničarjev razumeti, saj bodo ob napačni klasifikaciji imeli dodatno delo s popravljanjem zapisov v digitalnih knjižnicah, obe- nem pa takšni zapisi ne bodo zlahka dostopna, saj jih uporabniki ne bodo mogli najti s trenutnimi iskalni- mi postopki. V prispevku se zavedamo tega proble- ma in v želji po zmanjšanju nezaupanja, poskušamo knjižničarjem približati avtomatizirano klasifikacijo z uvedbo priporočanja ustreznih vrstilcev klasifika- cije. Ker knjižničar dobi le priporočilo, katere vrstilce naj uporabi, se lahko še vedno odloči drugače - gre torej za polavtomatsko klasifikacijo. V prispevku opisujemo hibridni pristop priporo- čanja vrstilcev univerzalne decimalne klasifikacije, ki uporablja uveljavljeno iskalno metodo BM25 in naiv- ni Bayesov klasifikator. V drugem poglavju opišemo vrste priporočilnih sistemov in uporabo le-teh v digi- talnih knjižnicah. Tretje poglavje opisuje univerzalno decimalno klasifikacijo. V četrtem poglavju opišemo obliko, pripravo in obdelavo podatkov korpusa bese- dil iz nacionalne infrastrukture odprtega dostopa. V petem poglavju opisujemo hibridni pristop k pripo- ročanju z uporabo metode BM25 in naivnega Bayeso- vega klasifikatorja. Šesto poglavje vsebuje rezultate primerjave meritev metrik natančnosti, priklica in Fβ med metodo BM25, naivnim Bayesovim klasifikator- jem in predstavljeno hibridno metodo. V sedmem poglavju podamo zaključke in nekaj idej za izboljša- vo hibridne metode. 2 PRIPOROčILNI SISTemI V DIgITALNIH KNJIžNIcAH V zadnjih letih smo lahko opazili razmah priporočil- nih sistemov na veliko področij. Dandanes se najbolj uporabljajo v spletnih iskalnikih, družbenih omrežjih in raznih multimedijskih storitvah kot so YouTube, Netflix, Spotify in Last.fm. Priporočilni sistemi za svoje delovanje v glavnem uporabljajo dva tipa filtri- ranja podatkov. To sta vsebinsko filtriranje (angl. con- tent-based filtering) in sodelovalno filtriranje (angl. collaborative filtering) [Melville & Sindhwani, 2017]. Vsebinsko filtriranje podatkov uporablja opis objekta priporočanja v nestrukturirani obliki, kot je recimo besedilo, ali pa v strukturirani obliki, kjer ima objekt vnaprej znane lastnosti, po katerih defi- niramo filtre. Ključnega pomena je torej opis objekta priporočanja, saj ta metoda z metrikami podobnosti išče podobne objekte priporočanja. Kadar imamo opravka s podatki v strukturirani obliki, so metrike podobnosti navadno kosinusna razdalja, Jaccardov indeks in Pearsonova korelacija [Lops et al., 2011]. Nestrukturirani podatki so ponavadi podani z be- sedilom zato so metrike podobnosti v tem primeru omejene na metrike podobnosti, ki jih uporabljamo v procesiranju naravnega jezika. Natančneje je v tem primeru zelo pogosta uporaba utežne sheme tf -idf v kombinaciji z razvrščevalno metodo BM25. Sodelovalno filtriranje se v nasprotju z vsebinskim filtriranjem ne osredotoča na sam opis objekta pripo- ročanja, temveč na uporabniško interakcijo z objekti priporočanja. Za ta tip filtriranja je pomembno, ali si je uporabnik objekt priporočanja ogledal, koliko časa ga je gledal in ali je opravil kakšno pomembnejšo in- terakcijo s tem objektom. V primeru spletnih trgovin je to nakup izdelka, v primeru digitalnih knjižnic pa prenos dokumenta na računalnik. Tako vsebinsko kot sodelovalno filtriranje imata svoje slabosti. Glavna slabost sodelovalnega filtrira- nja je problem hladnega začetka. To je situacija, v ka- teri se znajdemo čisto na začetku, kadar še nimamo aktivnih uporabnikov in posledično nimamo podat- kov o uporabniški interakciji z objekti priporočanja. Slabost vsebinskega priporočanja je prekomerna specializacija, kjer priporočilni sistem uporabniku priporoča zgolj eno vrsto objektov priporočanja, kar pa ni vedno zaželjeno. V tem primeru se poslužimo hibridnih priporočilnih sistemov, ki združujejo dve ali več metod filtriranja v eno samo z namenom iz- ogibanja slabostim posamezne metode. Največkrat hibridni priporočilni sistemi združujejo sodelovalno in vsebinsko filtriranje, odvisno od ciljne uporabe priporočilnega sistema pa lahko združujemo tudi več tehnik sodelovalnega filtriranja oziroma več teh- nik vsebinskega filtriranja. V splošnem poznamo več načinov hibridizacije [Burke, 2002]. Z utežno hibri- dizacijo sestavimo oceno podobnosti iz ocen vseh vključenih metod. Pri preklopni hibridizaciji sistem preklaplja med vključenimi metodami po potrebi ali glede na situacijo. Mešana hibridizacija rezultate vključenih metod prikaže skupaj v enem seznamu priporočil. Hibridizacija s kombinacijo značilk deluje tako, da so značilke iz več virov združene in se upo- rabijo kot vhod v eno tehniko priporočanja. Podobno deluje hibridizacija z obogatenjem značilk, kjer se ena metoda uporabi za pridobivanje značilk, ki so vhod drugi metodi. Kaskadna hibridizacija v delova- nje vnaša zaporedje uporabe različnih metod. Naza- U P O R A B N A I N F O R M A T I K A16 2020 - πtevilka 1 - letnik XXVIII Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije dnje, hibridizacija na meta ravni deluje tako, da ena metoda zgradi model, ki je vhod naslednji metodi. V digitalnih knjižnicah se priporočilni sistemi uporabljajo predvsem v namene priporočanja doku- mentov in dru- gih gradiv, ki jih digitalne knjižnice ponujajo [Bai et al., 2019]. Priporočilni sistemi opi- sani v [Beel et al., 2017] in [Porcel et al., 2009] so bili zasnovani specifično za uporabo v digitalnih knjižni- cah z namenom, da razi- skovalcem pomagajo najti zanimive publikacije. Podobno lahko takšne pripo- ročilne sisteme zasledimo v akademskih družbenih omrežjih, kot je na primer Mendeley [Vargas et al., 2016]. V Sloveniji obstaja hibridni priporočilni sis- tem, ki deluje na nacionalni infrastrukturi odprtega dostopa in navzkrižno priporoča gradiva med digi- talnimi knjižnicami in repozitoriji slovenskih univerz [Ojsteršek et al., 2014]. V tem primeru gre za kaska- dno hibridizacijo z metodo vsebinskega filtriranja, ki ji sledi sodelovalno filtriranje. 3 UNIVeRzALNA DecImALNA KLASIFIKAcIJA Univerzalna decimalna klasifikacija (v nadaljevanju UDK) je knjižnični klasifikacijski sistem, ki služi kot orodje za vsebinsko označevanje dokumentov in is- kanje po njih. Plačljiva licenca za UDK obsega več kot 70.000 vrstilcev.Obstaja tudi zastonjska različica, ki pa je močno okrnjena na okoli 2500 vrstilcev. Z upo- rabo tega klasifikacijskega sistema se lahko vsakemu dokumentu določi vrstilec, ki dokument uvršča v po- dročje. UDK sestavljajo glavne tabele in pomožne ta- bele, kjer glavne tabele določajo področja človeškega znanja, pomožne pa dodatne informacije o področju (npr. čas, kraj, jezik in obliko). Izraz UDK je lahko preprost ali sestavljen. V slednjem primeru se upora- bijo znaki za povezovanje, ki opisujejo tip povezave med vrstilci. Tako lahko z izrazom UDK opisujemo tudi interdisciplinarne dokumente. V tabelah 1-3 so podani zgledi vrstilcev in izrazov UDK. Vrstilec Področja 0 Znanost in znanje. Organizacije. Informacije. Dokumentacija. Bibliotekarstvo. Institucije. Publikacije. 1 Filozofija. Psihologija. 2 Teologija. Verstva. 3 Družbene vede. Politika. Ekonomija. Pravo. Izobraževanje. 5 Matematika. Naravoslovje. 6 Uporabne znanosti. Medicina. Tehnika. 7 Umetnost. Arhitektura. Fotografija. Glasba. Šport. 8 Jezik. Književnost 9 Geografija. Biografija. Zgodovina. Tabela 1: Vrstilci vrhnjih področij univerzalne decimalne klasifikacije. Vrstilec Opis področja 004 Računalniška znanost in tehnologija. Računalništvo. Obdelava podatkov 004.7 Računalniške komunikacije. Računalniška omrežja 004.73 Omrežja glede na prostranost 004.738 Medsebojno povezovanje omrežij. Medomrežanje Tabela 2: Hierarhična struktura vrstilcev univerzalne decimalne klasifikacije za področje Računalništvo (004), veja Računalniške komunikacije, Računalniška omrežja (004.7). Vrstilec Izkax UDK Preprost 519.85(043.2) Sestavljen 336.778(043.2):336.713/.717(497.4) Tabela 3: Primer preprostega in sestavljenega izraza UDK. Preprost izraz vsebuje splošni privesni vrstilec za obliko (043.2). Sestavljen izraz vsebuje enostaven odnos (znak „:“), zaporedno razširitev (znak „/“), splošni privesni vrstilec za obliko (043.2) in splošni privesni vrstilec za kraj (497.4). U P O R A B N A I N F O R M A T I K A 172020 - πtevilka 1 - letnik XXVIII Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije Za pridobitev izraza UDK je potrebna katalogiza- cija oziroma zahteva knjižničarjem v primerih, ko gre za zaključna dela. Knjižničarji z uporabo geslovnika ugotovijo, katere vrstilce naj dodajo v izraz UDK tako, da v geslovnik [Zalokar, Matjaž, 2002b], [Zalo- kar, Matjaž, 2002a] vnesejo ključne besede oziroma predmetne oznake. V primeru zaključnih del mora avtor knjižničarjem posredovati naslov, mentorja, ključne besede, povzetek in kazalo. Knjižničarji nato iz naslova in ključnih besed pridobijo vhod za ge- slovnik, na podlagi povzetka, kazala in mentorja pa se dokončno odločijo za primerne vrstilce UDK. Ce- loten proces pridobitve izraza UDK ponavadi traja do 2 dni. Kvaliteta izraza UDK je odvisna od geslov- nika in števila vrstilcev UDK, ki jih imajo knjižničarji na voljo. 4 KORPUS beSeDIL IN ObDeLAVA PODATKOV V prispevku uporabljamo korpus besedil pridobljen iz nacionalne infrastrukture odprtega dostopa [Oj- steršek et al., 2014], ki se je izvedla v letu 2013 in obse- ga zaključna dela in znanstvene publika- cije iz vseh slovenskih univerz. Gre za obširen korpus besedil v slovenščini, ki obsega okoli 200.000 dokumentov in je segmentiran na ključne besede, naslove, povzetke, polno besedilo in vsebuje dodatne informacije o be- sedilih - med njimi tudi izraze UDK. Ker vsa besedila v korpusu nacionalne infrastrukture nimajo vseh in- formacij na voljo, smo uporabili filtrirano podmno- žico 10.000 besedil, v kateri so vsa besedila, ki imajo podatek o naslovu, ključnih besedah, polnem besedi- lu in izrazu UDK. V nadaljnji obdelavi podatkov smo delali s polnimi besedili, kjer smo dodatno utežili be- sede v naslovih in ključnih besedah. 4.1 Predobdelava besedil Iz vseh besedil smo najprej tvorili besedne uni-, bi- in tri-grame ter izvedli vse možne permutacije med njimi. Nad besednimi n-grami smo uporabili tudi postopek lematizacije tako, da smo hkrati hranili lematizirane in nelematizirane besedne n-grame. Nato smo za to množico izračunali uteži tf in idf . Utež tf predstavlja frekvenco določenega besedne- ga n-grama v dokumentu, utež idf pa pomembnost besednega n-grama glede na celotno zbirko doku- mentov. Tako smo dobili sezname vseh možnih be- sednih n-gramov in njihove pojavitve v dokumen- tih, kot tudi število dokumentov v katerih se po- javljajo. Z enoličnim identifikatorjem dokumenta smo lahko dostopali tudi do njegovega izraza UDK in s tem povezali izraze UDK s pripadajočimi bese- dnimi n-grami. 4.2 Razpoznavalnik izrazov UDK Ker je v korpusu besedil veliko takšnih, ki imajo sestavljen izraz UDK, smo zasnovali preprost raz- poznavalnik izrazov UDK, ki zna iz sestavljenega izraza UDK vrniti vse vrstilce UDK. Pri tem smo upoštevali priredno in zaporedno razširitev, eno- stavne odnose, in podrobno delitev. Ostalih zna- kov za povezovanje nismo obravnavali, saj je bilo število dokumentov s temi znaki za povezovanje zanemarljivo. Prav tako nismo upoštevali splošnih privesnih vrstilcev. Za povezavo z UDK smo uporabili brezplačno slovensko različico UDK v obliki povezanih odpr- tih podatkov (angl. linked open data) [UDC Con- sortium (UDCC), 2012]. Le-ta obsega 1445 vrstilcev UDK s slovenskim prevodom. Ta zbirka je v obliki parov (vrstilec, prevod). Zaradi omejenega števila brezplačnih vrstilcev je razpoznavanje v nekaterih Vhod Izhod [004.94:621.952.8]+658.8(043.2) 004.94 621.9 658. 003.63 8 711.4:711.1:158.937:003.63(497.4Slovenska Bistrica)(043.2) 711.4 711.1 158.937 Tabela 4: Primer delovanja razpoznavalnika izrazov UDK. Vrstilec 621.952.8 je bil razpoznan kot 621.9. primerih omejeno po globini univerzalne decimalne klasifikacije, kot je razvidno v tabeli 4. Po obdelavi z razpoznavalnikom izrazov UDK smo preverili, kakšna je porazdelitev razpoznanih izrazov UDK v izbranem korpusu besedil. Preverili smo dolžino razpoznanih izrazov, saj dolžina izraza predstavlja globino v hierarhiji UDK in neposredno vpliva na specifičnost kategorizacije. Manjša dolžina izraza UDK pomeni splošnejšo kategorizacijo, večja dolžina izraza UDK pa specifično kategorizacijo (ta- beli 1 in 2). Dolžino razpoznanega izraza UDK smo v meritvah uporabljali kot parameter. Tako smo lahko preverili, kako se uporabljene metode obnesejo na različnih nivojih specifičnosti hierarhičnih področij UDK. Slika 1 prikazuje odstotke razpoznanih izra- U P O R A B N A I N F O R M A T I K A18 2020 - πtevilka 1 - letnik XXVIII Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije Slika 1: Porazdelitev razpoznanih izrazov UDK v izbranem in celotnem korpusu glede na vrhnja področja. Slika 2: Porazdelitev razpoznanih izrazov UDK v izbranem in celotnem korpusu glede na dolžino izraza UDK. zov UDK v izbranem in celotnem korpusu glede na njihovo vrhnje področje. Slika 2 prikazuje odstotke razpoznanih izrazov UDK v izbranem in celotnem korpusu glede na njihovo dolžino. 5 HIbRIDNI PRISTOP K PRIPOROčANJU V našem hibridnem pristopu uporabljamo dve me- todi, ki ju uvrščamo med metode vsebinskega filtri- ranja. Uporabljamo metodo BM25 in naivni Bayesov klasifikator. Vhod v hibridno metodo je iskalni niz (tj. naslov, ključne besede, predmetne oznake), izhod pa je seznam najbolj ustreznih vrstilcev UDK, ki ga pri- kažemo knjižničarju. Ideja hibridnega pristopa je, da z obema metodama poiščemo k najbolj ustreznih vrstil- cev UDK, nato pa rezultate združimo v končni seznam ustreznih vrstilcev UDK. BM25 in njene različice so že vrsto let najbolj uporabljene metode v implementaci- U P O R A B N A I N F O R M A T I K A 192020 - πtevilka 1 - letnik XXVIII Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije jah iskalnikov (angl. full-text search) in se pojavljajo v različnih komercialnih rešitvah kot so Microsoft SQL Server, MySQL, Elasticsearch, Xapian, Solr in Lucene. Naivni Bayesov klasifikator je uveljavljena metoda na področju kategorizacije in klasifikacije besedil. V na- šem hibridnem pristopu ta metoda služi za uvrščanje določenih vrstilcev UDK v končni seznam priporočil, ki bi jih metoda BM25 morda izpustila. 5.1 bm25 BM25 (Best Match 25) [Robertson & Zaragoza, 2009] je metoda razvrščanja, ki omogoča razvrščanje doku- mentov po podobnosti na podlagi besednih n-gra- mov, ki se pojavljajo v dokumentih. Začetki razvoja segajo med 1970 in 1980, ko sta avtorja začela raz- vijati ogrodje za pridobivanje informacij na podlagi verjetnosti. BM25 ni samo ena metoda temveč druži- na več metod, ki se razlikujejo po utežnih shemah in vrednostih parametrov pomembnosti za uteži. Naj- večkrat se uporabljata uteži tf in idf . Danes obstaja veliko različic BM25, ki doprinesejo manjše izboljša- ve v specifičnih primerih [Trotman et al., 2014], [Lv & Zhai, 2011a], [Lv & Zhai, 2011b]. Različica BM25, ki jo uporabljamo se izračuna kot: s(d, Q) = Σ idf (qi) ∙ tf (qi, d) ∙ (k1 + 1) tf (qi, d) + k1 ∙ B , qi ∈ Q, d ∈ Di = 1 ||Q|| (1) Za enačbo 1 velja:  tf (qi, d) je utež tf v dokumentu d za besedni n- -gram qi iskalnega niza Q. Vrednost je število po- javitev besednega n-grama qi v dokumentu d.  k1 je parameter s privzeto vrednostjo k1 = 1.2. [Manning, Christopher D. and Raghavan, Prab- hakar and Schütze, H  idf (qi) je utež idf za besedni n-gram qi. Vrednost je število pojavitev besednega n-grama qi v celot- nem korpusu D. Izračun uteži idf (qi) je podan z enačbo 2 kjer je ||D|| število vseh dokumentov v korpusu D, n(qi) pa število dokumentov, ki vsebujejo besedni n-gram qi.  B je normalizacijski faktor dan z enačbo 3 kjer ld predstavlja dolžino dokumenta d, avgdl pa povprečno dolžino dokumenta glede na celoten kor- pus D. Dolžina dokumenta je izražena s šte- vilom besed v dokumentu. Parameter b ima pri- vzeto vre- dnost b = 0.75 [Manning, Christopher D. and Raghavan, Prabhakar and Schütze, Hinri- ch, 2008]. Ključno vlogo imata parametra k1 in b, ki urav- navata težo uteži tf in težo dolžine dokumentov v končnem izračunu. Dolžina dokumentov se meri s številom besednih n-gramov. Parametra upoštevata dve predpostavki o značilnostih, ki se pojavljajo pri pisanju dokumentov [He & Ounis, 2003]. Predpo- stavka o širini vsebine dokumenta (angl. verbosity hypothesis) govori o tem, da je lahko dokument daljši zaradi uporabe nepomembnih ali redundantnih be- sed, medtem ko predpostavka o obsegu dokumenta (angl. scope hypothesis) govori o daljših dokumen- tih zaradi uporabe več besed s kontekstom, ki tvori- jo vsebino dokumenta. V praksi gre za kombinacijo teh dveh predpostavk, zato potrebujemo ustrezno normalizacijo. Dolžino vsakega dokumenta lahko normaliziramo s povprečno dolžino dokumentov. Nadalje lahko to normalizacijo reguliramo s parame- trom b, kot kaže enačba 3, v enačbi 1 pa vidimo, da uporabimo funkcijo normalizacije B za normalizacijo uteži tf v navezi s parametrom k1. Parameter k1 uravnava pomembnost uteži tf , parameter b pa pomembnost dolžine dokumentov. V interesu nam je, da sestavimo takšno funkcijo, ki bo delovala najbolje na različnih dokumentih v zbir- ki. To pomeni, da je treba ugotoviti katere vrednosti parametrov k1 in b so najboljše za dano zbirko [He & Ounis, 2005]. Vrednosti teh dveh parametrov niso strogo definirane, navadno pa se uporabijo vrednosti k1 [1.2, 2.0] in b = [0, 1] [Manning, Christopher D. and Raghavan, Prabhakar and Schütze, Hinrich, 2008]. Nad izbranim korpusom dokumentov smo iz- računali uteži tf in idf ter za vsak par dokumentov idf (qi) = log ||D|| − n(q1) + 0,5 n(q1) + 0,5 (2) B = 1 − b + b ∙ ld avgdl (3) U P O R A B N A I N F O R M A T I K A20 2020 - πtevilka 1 - letnik XXVIII Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije izračunali vrednosti BM25 z upoštevanjem privzetih vrednosti za parametra k1 in b. Z metodo BM25 nato poiščemo vhodnemu besedilu najbolj podobne do- kumente, vzamemo njihove izraze UDK in z razpo- znavalnikom pridobimo vrstilce UDK. Vrstilce nato uredimo v seznam po frekvenci pojavljanja in vrne- mo prvih k elementov tega seznama (enačbi 4 in 5). 5.2 Naivni bayesov klasifikator Naivni Bayesov klasifikator smo naučili nad polnim besedilom s podatkom o enoličnem identifikatorju dokumenta in pripadajočih vrstilcih UDK. Izbran korpus, opisan v poglavju 4, smo naključno razdelili na učno množico, ki je obsegala 7.000 gradiv in testno množico, ki je obsegala 3.000 gradiv. Učna in testna množica sta imeli obliko trojic (identifikator, vrstilec, besedni n-gram). Vrstilci UDK predstavljajo razrede za klasifikacijo, saj želimo klasificirati nove primerke v vrstilce UDK. Pri izračunu verjetnosti uporabljamo metodo MLE (angl. maximum likelihood estimati- on) in Laplaceovo (znano tudi kot Add-one) glajenje (enačbi 6 in 7). Nc predstavlja število dokumentov, ki spadajo v razred c, N je število vseh dokumentov, Tct predstavlja število pojavljanj besednega n-grama t v dokumentih iz razreda c, V predstavlja množico vseh besednih n-gramov, m pa število vseh besednih n-gramov, ki se pojavijo v vhodnem nizu. Na koncu s pomočjo naučenega modela pridobimo seznam k najbolj verjetnih vrstilcev za dan vhod (enačba 8). 5.3 Priporočanje z mešano hibridizacijo V našem pristopu hibridnega priporočanja smo se odločili za tip mešane hibridizacije, ki združi re- zultate dveh tehnik vsebinskega filtriranja (slika 3). Pristop mešane hibridizacije smo uporabili zato, ker želimo v končnem seznamu pridobiti čim več rele- vantnih vrstilcev UDK. ČCˇ e v skladu s pristopom mešane hibridizacije združujemo rezultate večih tehnik vsebinskega filtriranja, lahko v končnem se- znamu pričakujemo vrstilce UDK, ki bi jih izpustili z uporabo zgolj ene metode vsebinskega filtriranja. Gre torej za povečanje nabora priporočenih vrstil- cev UDK v končnem seznamu priporočenih vrstilcev UDK. Seznama vrstilcev UDK, pridobljena z meto- dama BM25 in naivnim Bayesovim klasifikatorjem, združimo v končni seznam z združevalno funkcijo M , ki jo definiramo s psevdokodom 1. Slika 3: Shematika procesa priporočanja z mešano hibridizacijo. Rx = RBM25 = {udk[r]}, ∀ r ∈ R (4) P̂ (c) = Nc N P̂ (t|c) = Tct + 1 Σt' ∈ VTct' +1 Ry = RBayes = arg max {log P̂ (c) + Σ log P̂ (ti|c)}k i = 1 m (6) (8) (7) (5) R = arg max {s(dj, Q)}, j ∈ [1...||D||]k U P O R A B N A I N F O R M A T I K A 212020 - πtevilka 1 - letnik XXVIII Ko sta na voljo seznama RX in RY , ki sta rezul- tat obeh metod vsebinskega filtriranja, ju je potreb- no združiti z združevalno funkcijo M . Združeval- na funkcija, ki jo uporabljamo, deluje na principu povprečnega ranga. V obeh seznamih iščemo enake vrstilce UDK in povprečimo njihove pozicije. Če se vrstilec pojavi v enem seznamu, v drugem pa ne, je njegov rang enak vsoti dolžin seznamov RX in RY. Takšna združevalna funkcija daje prednost tistim vrstilcem, ki so bili pridobljeni z obema metodama. Dodatno omogočimo tudi uteževanje kazenskih vre- dnosti na rang v primeru, da ena metoda vrne ele- ment, ki ga druga ne. Uteži kazenskih vrednosti wX in wY imata vrednosti med 0 in 1, kjer 0 ponazar- ja uteževanje brez vrednosti kazni, 1 pa uteževanje s polno vrednostjo kazni. Končno uteževanje lahko popolnoma spremenimo s spreminjanjem združeval- ne funkcije M . 6 eVALVAcIJA IN RezULTATI Merjenja uspešnosti priporočilnih sistemov se lahko lotimo na veliko načinov, saj ima vsak priporočilni sistem različen namen. Obstaja kar nekaj metod za evalvacijo priporočilnih sistemov [Pu et al., 2011], [Shani & Gunawardana, 2011], [Monti et al., 2019], [Bogaert et al., 2019], [Krauss et al., 2019]. Pred eval- vacijo se moramo vprašati po rezultatu, ki ga želimo s priporočilnim sistemom doseči [Rendle et al., 2019]. Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije U P O R A B N A I N F O R M A T I K A22 2020 - πtevilka 1 - letnik XXVIII V našem primeru gre za vsebinsko priporočanje, saj uporabljamo korpus besedil s katerim poskušamo najti vhodu podobne vrstilce UDK. Intuitivno lahko uporabljamo metrike kot sta natančnost in priklic, ki sta zelo znani na področjih iskalnikov in iskanju in- formacij [Hand & Christen, 2018], [Derczynski, 2016]. Čeprav ti dve metodi ocenjujeta uspešnost iskalnega sistema, vendarle nista zmožni oceniti uporabniške izkušnje, ki se pri priporočilnih sistemih ponavadi ocenjuje. Glavni problem knjižničarjev pri katalogi- ziranju je v tem, da je vrstilcev UDK veliko, hkrati pa je potrebno izbrati ustreznega. V veliki množici vrstilcev UDK je to lahko zahtevno in časovno po- tratno. Tako so knjižničarji zadovoljni že, če dobijo manjšo množico relevantnih vrstilcev UDK. Izmed vseh možnih vrstilcev UDK si želijo pridobiti torej samo najbolj ustrezne vrstilce UDK v pomoč, da ka- sneje ročno med njimi izberejo ustrezne. Zadovoljivo je tudi že, če dobijo na voljo vrhnje področje, od ko- der nato dalje samostojno določajo vrstilce UDK. Z vidika področja iskanja informacij gre pravzaprav za metriko priklica, ki v našem primeru meri razmer- je moči množice preseka ustreznih vrstilcev UDK U in vseh vrnjenih vrstilcev UDK V , z močjo množice ustreznih vrstilcev UDK. V našem primeru je torej metrika priklica po- membnejša od metrike natančnosti, saj gre za pripo- ročilni sistem, ki nudi podporo pri polavtomatskem določanju vrstilcev UDK. Metrike, ki jih uporablja- mo, zajemajo priklic (enačba 9), natančnost (enačba 10) in Fβ metriko (enačba 11) za vrednosti β = 1 in β = 50. Pri vrednosti β = 1 sta natančnost in priklic ena- kovredno uteženi, pri vrednosti β = 50 pa ima priklic 50-krat večjo težo kot natančnost. vzeli tista besedila, ki so bila v množici besedil, ki smo jih uporabili za učenje naivnega Bayesovega klasifikatorja in izračun uteži tf in idf . Meritve smo opravili za metodo BM25, naivni Bayesov klasifika- tor in hibridno metodo, ki združuje obe prej omenje- ni metodi. Meritve smo ponovili pri različnih vre- dnostih za parameter kmax, ki predstavlja število vr- njenih vrstilcev. Pri tem smo se omejili na vrednosti kmax = [5, 10, 15]. V kombinaciji s parametrom kmax smo meritve ponovili tudi pri različnih vrednostih za globino hierarhije vrstilcev UDK. Globino hierarhije vrstilcev UDK udcp smo koračno po 2 znaka spremi- njali na intervalu od 1 do 11 znakov. Dodatno smo v hibridni metodi spreminjali utež kazenskih vredno- sti metode BM25 med 0.25 in 1 po koraku 0.25. Tabele 5, 6 in 7 vsebujejo rezultate meritev. S hibridno metodo smo želeli povečati priklic ob predpostavki, da v našem scenariju uporabe metri- ka natanč- nosti ni pomembna za končnega upo- rabnika. Iz meritev je razvidno, da hibridna meto- da v večini primerov dosega enake oziroma boljše vrednosti za metriko priklica in metriko Fβ=50 kot posamično uporabljeni metodi BM25 in Bayesov klasifikator. Opazimo, da je metoda BM25 tista, ki zagotavlja hkrati dobro natančnost in dober priklic, neodvisno od vseh preverjenih parametrov. Baye- sov klasifikator je za vse preverjene vrednosti pa- rametra kmax uporaben samo za vrhnja področja UDK (udcp = 1). V scenariju, kadar vrnemo 5 priporočenih vrstil- cev UDK (kmax = 5), hibridna metoda po metriki Fβ=50 dosega boljše vrednosti, kar je najbolj razvi- dno v primeru vrhnjih področij UDK (udcp = 1), za vse ostale preverjene globine hierarhije UDK pa je enakovredna metodi BM25. Največja izboljšava je pri vrhnjih področjih UDK. Kadar vrnemo 10 priporo- čenih vrstilcev UDK (kmax = 10) se hibridna meto- da po metriki Fβ=50 znova obnese bolje kot metoda BM25. Izboljšava je vidna za vse preverjene globine hierarhije UDK, največja izboljšava pa je znova pri vrhnjih področjih UDK (udcp = 1). Kadar vrnemo 15 priporočenih vrstilcev UDK (kmax = 15), se po me- triki Fβ=50 najbolje izkaže hibridna metoda na vseh globinah hierarhije UDK. Za vrhnja področja (udcp = 1) se tudi Bayesov klasifikator izkaže podobno dobro kot hibridna metoda. Primerjali smo tudi delovanje hibridne metode ob različnih utežeh kazenskih vrednosti. V meritve in primerjavo smo vključili samo variante, kjer manj- R = |U| ∩ |V| |U| P = |U| ∩ |V| |V| F (β) = (1 + β2) (PR) (β2P) + R (9) (10) (11 ) Evalvacijo priporočanja vrstilcev UDK smo izve- dli nad korpusom 10.000 besedil v slovenskem jeziku iz nacionalne infrastrukture odprtega dostopa, ki so imela podatek o klasifikaciji UDK. Pri tem smo iz- Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije U P O R A B N A I N F O R M A T I K A 232020 - πtevilka 1 - letnik XXVIII Tabela 5: Rezultati meritev za uporabljene metode pri kmax = 5. Najvišje vrednosti so označene s krepko pisavo. kmax = 5 metoda P r Fß=1 Fß=50 udcp = 1 BM25 0.882 0.852 0.842 0.852 Bayes 0.248 0.836 0.371 0.835 Hybrid wBM25 = 1.0, wBayes = 1.0 0.267 0.891 0.399 0.890 Hybrid wBM25 = 0.75, wBayes = 1.0 0.267 0.891 0.399 0.890 Hybrid wBM25 = 0.5, wBayes = 1.0 0.267 0.891 0.399 0.890 Hybrid wBM25 = 0.25, wBayes = 1.0 0.267 0.891 0.399 0.890 udcp = 3 BM25 0.859 0.908 0.863 0.908 Bayes 0.097 0.343 0.147 0.343 Hybrid wBM25 = 1.0, wBayes = 1.0 0.281 0.912 0.416 0.911 Hybrid wBM25 = 0.75, wBayes = 1.0 0.284 0.916 0.420 0.915 Hybrid wBM25 = 0.5, wBayes = 1.0 0.286 0.921 0.422 0.920 Hybrid wBM25 = 0.25, wBayes = 1.0 0.286 0.921 0.422 0.920 udcp = 5 BM25 0.853 0.919 0.865 0.919 Bayes 0.032 0.105 0.048 0.105 Hybrid wBM25 = 1.0, wBayes = 1.0 0.277 0.903 0.411 0.902 Hybrid wBM25 = 0.75, wBayes = 1.0 0.286 0.918 0.423 0.917 Hybrid wBM25 = 0.5, wBayes = 1.0 0.287 0.919 0.424 0.918 Hybrid wBM25 = 0.25, wBayes = 1.0 0.287 0.919 0.424 0.918 udcp = 7 BM25 0.844 0.922 0.864 0.922 Bayes 0.049 0.154 0.072 0.154 Hybrid wBM25 = 1.0, wBayes = 1.0 0.279 0.904 0.414 0.903 Hybrid wBM25 = 0.75, wBayes = 1.0 0.289 0.922 0.426 0.921 Hybrid wBM25 = 0.5, wBayes = 1.0 0.289 0.922 0.426 0.921 Hybrid wBM25 = 0.25, wBayes = 1.0 0.289 0.922 0.426 0.921 udcp = 9 BM25 0.844 0.922 0.864 0.922 Bayes 0.051 0.161 0.075 0.161 Hybrid wBM25 = 1.0, wBayes = 1.0 0.281 0.906 0.416 0.905 Hybrid wBM25 = 0.75, wBayes = 1.0 0.290 0.926 0.427 0.925 Hybrid wBM25 = 0.5, wBayes = 1.0 0.290 0.926 0.427 0.925 Hybrid wBM25 = 0.25, wBayes = 1.0 0.290 0.926 0.427 0.925 udcp = 11 BM25 0.844 0.922 0.864 0.922 Bayes 0.050 0.156 0.073 0.156 Hybrid wBM25 = 1.0, wBayes = 1.0 0.280 0.905 0.415 0.904 Hybrid wBM25 = 0.75, wBayes = 1.0 0.290 0.926 0.427 0.925 Hybrid wBM25 = 0.5, wBayes = 1.0 0.290 0.926 0.427 0.925 Hybrid wBM25 = 0.25, wBayes = 1.0 0.290 0.926 0.427 0.925 šamo kazensko utež metodi BM25, ne pa tudi Baye- sovemu klasifikatorju. Tako smo se odločili zato, ker manjšanje kazenskih uteži Bayesovemu klasifikator- ju ne vodi v izboljšanje rezultatov metrik natančno- sti, priklica, Fβ=1 in Fβ=50. Iz rezultatov meritev vi- dimo, da se manjšanje kazenskih uteži metodi BM25 splača vsaj do polovične vrednosti kazenske uteži (wBM25 = 0.5) za 5 vrnjenih zadetkov in vsaj do tri- četrt vrednosti kazenske uteži (wBM25 = 0.75) za 10 in 15 vrnjenih zadetkov. Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije U P O R A B N A I N F O R M A T I K A24 2020 - πtevilka 1 - letnik XXVIII Tabela 6: Rezultati meritev za uporabljene metode pri kmax = 10. Najvišje vrednosti so označene s krepko pisavo. kmax = 10 metoda P r Fß=1 Fß=50 udcp = 1 BM25 0.880 0.852 0.840 0.852 Bayes 0.146 0.902 0.245 0.900 Hybrid wBM25 = 1.0, wBayes = 1.0 0.147 0.906 0.247 0.904 Hybrid wBM25 = 0.75, wBayes = 1.0 0.147 0.906 0.247 0.904 Hybrid wBM25 = 0.5, wBayes = 1.0 0.147 0.906 0.247 0.904 Hybrid wBM25 = 0.25, wBayes = 1.0 0.147 0.906 0.247 0.904 udcp = 3 BM25 0.855 0.914 0.859 0.914 Bayes 0.062 0.439 0.107 0.438 Hybrid wBM25 = 1.0, wBayes = 1.0 0.134 0.921 0.242 0.919 Hybrid wBM25 = 0.75, wBayes = 1.0 0.144 0.923 0.243 0.921 Hybrid wBM25 = 0.5, wBayes = 1.0 0.144 0.927 0.244 0.925 Hybrid wBM25 = 0.25, wBayes = 1.0 0.144 0.927 0.244 0.925 udcp = 5 BM25 0.848 0.920 0.859 0.920 Bayes 0.032 0.212 0.055 0.212 Hybrid wBM25 = 1.0, wBayes = 1.0 0.144 0.925 0.411 0.902 Hybrid wBM25 = 0.75, wBayes = 1.0 0.145 0.926 0.245 0.923 Hybrid wBM25 = 0.5, wBayes = 1.0 0.145 0.926 0.245 0.924 Hybrid wBM25 = 0.25, wBayes = 1.0 0.145 0.926 0.245 0.924 udcp = 7 BM25 0.841 0.925 0.859 0.925 Bayes 0.035 0.217 0.059 0.217 Hybrid wBM25 = 1.0, wBayes = 1.0 0.145 0.930 0.246 0.928 Hybrid wBM25 = 0.75, wBayes = 1.0 0.146 0.932 0.247 0.930 Hybrid wBM25 = 0.5, wBayes = 1.0 0.146 0.933 0.248 0.931 Hybrid wBM25 = 0.25, wBayes = 1.0 0.146 0.933 0.248 0.931 udcp = 9 BM25 0.840 0.925 0.859 0.925 Bayes 0.033 0.209 0.056 0.209 Hybrid wBM25 = 1.0, wBayes = 1.0 0.146 0.932 0.247 0.905 Hybrid wBM25 = 0.75, wBayes = 1.0 0.128 0.824 0.217 0.822 Hybrid wBM25 = 0.5, wBayes = 1.0 0.146 0.933 0.248 0.931 Hybrid wBM25 = 0.25, wBayes = 1.0 0.146 0.933 0.248 0.931 udcp = 11 BM25 0.840 0.925 0.858 0.925 Bayes 0.032 0.203 0.055 0.203 Hybrid wBM25 = 1.0, wBayes = 1.0 0.146 0.932 0.247 0.930 Hybrid wBM25 = 0.75, wBayes = 1.0 0.146 0.932 0.247 0.930 Hybrid wBM25 = 0.5, wBayes = 1.0 0.146 0.933 0.248 0.931 Hybrid wBM25 = 0.25, wBayes = 1.0 0.146 0.933 0.248 0.931 Glede na porazdelitev razpoznanih izrazov UDK na hierarhično globino UDK (slika 2) smo ugotovili, da v primeru manjšega števila vrnjenih zadetkov ni bistvene razlike med uporabo BM25 in predlagane hibridne metode, kadar govorimo o odstotkovno naj- večji pokritosti izbranega korpusa besedil, ki nastopi pri vrednostih parametra udcp = 5 in udcp = 7 ter metrikah priklica in Fβ=50. V splošnem smo ugotovi- li, da so vrednosti izbranih metrik približno enake za hierarhično globino UDK nad 7 znakov. Kadar pa se Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije U P O R A B N A I N F O R M A T I K A 252020 - πtevilka 1 - letnik XXVIII Tabela 7: Rezultati meritev za uporabljene metode pri kmax = 15. Najvišje vrednosti so označene s krepko pisavo. kmax = 15 metoda P r Fß=1 Fß=50 udcp = 1 BM25 0.880 0.852 0.840 0.852 Bayes 0.146 0.902 0.245 0.900 Hybrid wBM25 = 1.0, wBayes = 1.0 0.146 0.906 0.247 0.904 Hybrid wBM25 = 0.75, wBayes = 1.0 0.146 0.906 0.247 0.904 Hybrid wBM25 = 0.5, wBayes = 1.0 0.146 0.906 0.247 0.904 Hybrid wBM25 = 0.25, wBayes = 1.0 0.146 0.906 0.247 0.904 udcp = 3 BM25 0.854 0.916 0.857 0.916 Bayes 0.047 0.485 0.084 0.483 Hybrid wBM25 = 1.0, wBayes = 1.0 0.096 0.930 0.172 0.927 Hybrid wBM25 = 0.75, wBayes = 1.0 0.097 0.931 0.172 0.928 Hybrid wBM25 = 0.5, wBayes = 1.0 0.097 0.931 0.172 0.928 Hybrid wBM25 = 0.25, wBayes = 1.0 0.097 0.931 0.172 0.928 udcp = 5 BM25 0.846 0.921 0.857 0.921 Bayes 0.038 0.361 0.067 0.360 Hybrid wBM25 = 1.0, wBayes = 1.0 0.097 0.936 0.174 0.933 Hybrid wBM25 = 0.75, wBayes = 1.0 0.098 0.938 0.174 0.935 Hybrid wBM25 = 0.5, wBayes = 1.0 0.098 0.938 0.174 0.935 Hybrid wBM25 = 0.25, wBayes = 1.0 0.098 0.938 0.174 0.935 udcp = 7 BM25 0.839 0.929 0.857 0.929 Bayes 0.025 0.231 0.044 0.230 Hybrid wBM25 = 1.0, wBayes = 1.0 0.098 0.936 0.174 0.933 Hybrid wBM25 = 0.75, wBayes = 1.0 0.098 0.935 0.174 0.932 Hybrid wBM25 = 0.5, wBayes = 1.0 0.098 0.939 0.175 0.936 Hybrid wBM25 = 0.25, wBayes = 1.0 0.098 0.939 0.175 0.936 udcp = 9 BM25 0.838 0.925 0.856 0.925 Bayes 0.024 0.223 0.042 0.222 Hybrid wBM25 = 1.0, wBayes = 1.0 0.098 0.936 0.174 0.933 Hybrid wBM25 = 0.75, wBayes = 1.0 0.098 0.936 0.174 0.933 Hybrid wBM25 = 0.5, wBayes = 1.0 0.098 0.936 0.174 0.933 Hybrid wBM25 = 0.25, wBayes = 1.0 0.098 0.936 0.174 0.933 udcp = 11 BM25 0.838 0.925 0.856 0.925 Bayes 0.023 0.217 0.041 0.216 Hybrid wBM25 = 1.0, wBayes = 1.0 0.098 0.936 0.174 0.933 Hybrid wBM25 = 0.75, wBayes = 1.0 0.098 0.936 0.174 0.933 Hybrid wBM25 = 0.5, wBayes = 1.0 0.098 0.936 0.174 0.933 Hybrid wBM25 = 0.25, wBayes = 1.0 0.098 0.936 0.174 0.933 število vrnjenih zadetkov poveča, predlagana hibri- dna metoda konstantno vrača višje vrednosti izbra- nih metrik neodvisno od izbrane hierarhične globine UDK. Zaključujemo torej, da je uporaba predlagane hibridne metode ustrezna za polavtomatsko določa- nje vrstilcev UDK v obliki priporočilnega sistema, kjer knjižničarji dobijo predlagane vrstilce UDK na podlagi vhodnega besedila, med katerimi nato ročno izberejo ustrezne. Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije U P O R A B N A I N F O R M A T I K A26 2020 - πtevilka 1 - letnik XXVIII 7 SKleP V članku smo predstavili hibridni pristop za pripo- ročanje vrstilcev univerzalne decimalne klasifikacije. Opisali smo izbran korpus in predobdelavo besedil za uporabo v predlagani hibridni metodi. Prikazali smo kako z mešano hibridizacijo uporabimo metodi BM25 in naivni Bayesov klasifikator ter opisali pre- prosto združevalno funkcijo, ki oblikuje končni re- zultat. Izvedli smo evalvacijo hibridne metode, meto- de BM25 in naivnega Bayesovega klasifikatorja, kjer smo ugotovili, da se hibridna metoda obnese bolje za metriki priklica in Fβ=50, ki sta bolj relevantni kot metrika natančnosti za scenarij uporabe sistema kot orodja za knjižničarje. Predstavljen hibridni pristop lahko spreminja- mo na več načinov in na več mestih. Ena izmed mo- žnosti izboljšave je uporaba licenčne različice UDK vrstilcev, saj bi tako uspešno razpoznali večji delež izrazov UDK, še posebej na višji hierarhični globini UDK. Prav tako bi lahko izvedli optimizacijo metode BM25 za korpus, ki smo ga uporabljali, kjer bi z op- timiziranjem parametrov k1 in b lahko iskali manjše izboljšave. Podobno bi lahko optimizirali vrednosti uteži kazenskih vrednosti. Hibridni pristop je vedno možno izboljšati s spreminjanjem združevalne funk- cije M glede na potrebe končnega uporabnika ali pa z različnim načinom hibridizacije. Pri tem bi bila zani- miva predvsem utežni in kaskadni tip hibridizacije. Predstavljen hibridni pristop je prav tako ustrezen za uporabo pri določanju kandidatov dokumentov za podrobnejše preverjanje v sistemu za detekcijo podobnih vsebin. Nazadnje bi bilo zanimivo videti tudi, kako se na tem področju obnesejo nevronske mreže s povratno zanko, ki so v zadnjem obdobju zelo napredovale na področjih besedilnega rudarje- nja in obdelave naravnega jezika. LITeRATURA [1] Bai, X., Wang, M., Lee, I., Yang, Z., Kong, X., & Xia, F. (2019). Scientific Paper Recommendation: A Survey. IEEE Access, 7, 9324–9339. [2] Beel, J., Aizawa, A., Breitinger, C., & Gipp, B. (2017). Mr. DLib: Recommendations-as-a-Service (RaaS) for Acade- mia. In 2017 ACM/IEEE Joint Conference on Digital Libraries (JCDL) (pp. 1–2). [3] Bogaert, M., Lootens, J., den Poel, D. V., & Ballings, M. (2019). Evaluating multi-label classifiers and recommender systems in the financial service sector. European Journal of Operational Research, 279(2), 620 – 634. [4] Burke, R. (2002). Hybrid Recommender Systems: Survey and Experiments. User Modeling and User-Adapted Interaction, 12(4), 331–370. [5] Derczynski, L. (2016). Complementarity, F-score, and NLP Evaluation. In Proceedings of the Tenth International Confe- rence on Language Resources and Evaluation (LREC 2016) (pp. 261–266). Portorož, Slovenia: European Language Reso- urces Association (ELRA). [6] Frank, E. & Paynter, G. W. (2004). Predicting Library of Con- gress Classifications from Library of Congress Subject Hea- dings. J. Am. Soc. Inf. Sci. Technol., 55(3), 214–227. [7] Godby, C. J. & Stuler, J. (2003). The Library of Congress Clas- sification as a Knowledge Base for Automatic Subject Cate- gorization. In Subject Retrieval in a Networked Environment: Proceedings of the IFLA Satellite Meeting held in Dublin, OH,14-16 August 2001 and sponsored by the IFLA Classifi- cation and Indexing Section, the IFLA Information Technolo- gy Section and OCLC (pp. 163–169). [8] Hand, D. & Christen, P. (2018). A note on using the F-measure for evaluating record linkage algorithms. Statistics and Com- puting, 28(3), 539–547. [9] He, B. & Ounis, I. (2003). A Study of Parameter Tuning for Term Frequency Normalization. In Proceedings of the Twelfth International Conference on Information and Knowledge Ma- nagement, CIKM ’03 (pp. 10–16). New York, NY, USA: ACM. [10] He, B. & Ounis, I. (2005). Term Frequency Normalisation Tu- ning for BM25 and DFR Models. In D. E. Losada & J. M. Fer- nández-Luna (Eds.), Advances in Information Retrieval (pp. 200–214). Berlin, Heidelberg: Springer Berlin Heidelberg. [11] Krauss, C., Merceron, A., & Arbanowski, S. (2019). The Time- liness Deviation: A Novel Approach to Evaluate Educational Recommender Systems for Closed-Courses. In Proceedings of the 9th International Conference on Learning Analytics & Knowledge, LAK19 (pp. 195–204). New York, NY, USA: ACM. [12] Lops, P., de Gemmis, M., & Semeraro, G. (2011). Content- -based Recommender Systems: State of the Art and Trends, (pp. 73–105). Springer US: Boston, MA. [13] Lv, Y. & Zhai, C. (2011a). Adaptive Term Frequency Normali- zation for BM25. In Proceedings of the 20th ACM Internatio- nal Conference on Information and Knowledge Management, CIKM ’11 (pp. 1985–1988). New York, NY, USA: ACM. [14] Lv, Y. & Zhai, C. (2011b). Lower-bounding Term Frequency Normalization. In Proceedings of the 20th ACM International Conference on Information and Knowledge Management, CIKM ’11 (pp. 7–16). New York, NY, USA: ACM. [15] Manning, Christopher D. and Raghavan, Prabhakar and Schütze, Hinrich (2008). Introduction to Information Retrieval. New York, NY, USA: Cambridge University Press. [16] Melville, P. & Sindhwani, V. (2017). Recommender Systems, (pp. 1056–1066). Springer US: Boston, MA. [17] Monti, D., Palumbo, E., Rizzo, G., & Morisio, M. (2019). Sequeval: An Offline Evaluation Framework for Sequence- -Based Recommender Systems. Information, 10, 174. [18] Ojsteršek, M., Brezovnik, J., Kotar, M., Ferme, M., Hrovat, G., Bregant, A., & Borovič, M. (2014). Establishing of a Slo- venian open access infrastructure: a technical point of view. Program, 48(4), 394–412. [19] Porcel, C., Moreno, J., & Herrera-Viedma, E. (2009). A multi- -disciplinar recommender system to advice research resour- ces in University Digital Libraries. Expert Systems with Appli- cations, 36(10), 12520–12528. [20] Pu, P., Chen, L., & Hu, R. (2011). A User-centric Evaluation Framework for Recommender Systems. In Proceedings of the Fifth ACM Conference on Recommender Systems, RecSys ’11 (pp. 157–164). New York, NY, USA: ACM. [21] Rendle, S., Zhang, L., & Koren, Y. (2019). On the Difficulty of Evaluating Baselines: A Study on Recommender Systems. ArXiv, abs/1905.01395. Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije U P O R A B N A I N F O R M A T I K A 272020 - πtevilka 1 - letnik XXVIII [22] Robertson, S. & Zaragoza, H. (2009). The Probabilistic Rele- vance Framework. now. [23] Shani, G. & Gunawardana, A. (2011). Evaluating Recommen- dation Systems, (pp. 257–297). Springer US: Boston, MA. [24] Slavic, A. (2004). UDC implementation: From library shelves to a structured indexing language. In International Catalogu- ing and Bibliographic Control., volume 33.3 (pp. 60–65). [25] Trotman, A., Puurula, A., & Burgess, B. (2014). Improvements to BM25 and Language Models Examined. In Proceedings of the 2014 Australasian Document Computing Symposium, ADCS ’14 (pp. 58:58–58:65). New York, NY, USA: ACM. [26] UDC Consortium (UDCC) (2012). Multilingual Universal Deci- mal Classifi- cation Summary (UDCC Publication No. 088).  mladen borovič je doktorski študent in asistent na Fakulteti za elektrotehniko, računalništvo in informatiko na Univerzi v Mariboru. Njegovo raziskovalno delo obsega področja priporočilnih sistemov, iskalnih sistemov, porazdeljenih računalniških sistemov, odkrivanja podobnih vsebin, besedilnega rudarjenja in obdelave naravnega jezika. Še posebej se ukvarja s hibridnimi priporočilnimi sistemi in uporabo metod umetne inteligence v besedilnem rudarjenju.  Sandi majninger je doktorski študent in asistent na Fakulteti za elektrotehniko, računalništvo in informatiko na Univerzi v Mariboru. Raziskovalno je aktiven na področju obdelave naravnega jezika, odkrivanja podobnih vsebin ter ugotavljanju pomena iz besedil. Med drugim se ukvarja tudi z avtomatskim ocenjevanjem pomenske pravilnosti odgovorov na vprašanja odprtega tipa in avtomatskim ocenjevanjem daljših pisnih sestavkov ter esejev.  Jani Dugonik je doktorski študent in asistent na Fakulteti za elektrotehniko, računalništvo in informatiko. Nje- gova raziskovalna področja vključu- jejo evolucijsko računanje, optimizacijske metode, procesiranje naravnega jezika in globoko učenje. Marko Ferme je raziskovalec na Fakulteti za elektrotehniko, računalništvo in informatiko na Univerzi v Mariboru. Njegova raziskovalna področja obsegajo procesiranje naravnega jezika, sisteme za odgovarjanje na vprašanja v naravnem jeziku, ontologije in semantični splet, aktiven pa je tudi na več raziskovalnih in komercialnih projektih na področju digitalnih knjižnic.ziskovalnih projektih s področja strateškega planiranja, metodologij razvoja informacijskih sistemov, uporabe inteligentnih sistemov, avtomatizacije poslovnih procesov in obvladovanja ter porazdelitve velike količine podatkov.  milan Ojsteršek je raziskovalec na Fakulteti za elektrotehniko, računalništvo in informatiko na Univerzi v Mariboru. Njegova raziskovalna področja zajemajo heterogene računalniške sisteme, digitalne knjižnice, semantični splet in storitveno usmerjene arhitekture.Marko Ferme je razisko- valec na Fakulteti za elektrotehniko, računalništvo in informatiko na Univerzi v Mariboru. Njegova raziskovalna področja obsegajo procesiranje naravnega jezika, sisteme za odgovarjanje na vprašanja v naravnem jeziku, ontologije in semantični splet, aktiven pa je tudi na več raziskovalnih in komercialnih projektih na področju digitalnih knjižnic.ziskovalnih projektih s področja strateškega planiranja, metodologij razvoja informacijskih sistemov, uporabe inteligentnih sistemov, avtomatizacije poslovnih procesov in obvladovanja ter porazdelitve velike količine podatkov. [27] Vargas, S., Hristakeva, M., & Jack, K. (2016). Mendeley: Re- commendations for Researchers. In RecSys ’16 Proceedings of the 10th ACM Conference on Recommender Systems (pp. 365–365). Boston, MA, USA. [28] Wang, J. (2009). An extensive study on automated Dewey Decimal Classification. Journal of the American Society for Information Science and Technology, 60(11), 2269–2286. [29] Zalokar, Matjaž (2002a). Spletni splošni slovenski geslovnik. http://old.nuk.uni-lj.si/ssg/geslovnik.html. [30] Zalokar, Matjaž (2002b). Splošni slovenski geslovnik. Organi- zacija znanja, 7, 3–4. Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop za priporočanje vrstilcev univerzalne decimalne klasifikacije U P O R A B N A I N F O R M A T I K A28 2020 - πtevilka 1 - letnik XXVIII Jan Meznarič, Matjaž B. Jurič Univerza v Ljubljani, Fakulteta za računalništvo in informatiko, Večna pot 113, 1000 Ljubljana {jan.meznaric, matjaz.juric}@fri.uni-lj.si Decentralizirano in odporno dinamično posodabljanje mikrostoritev Izvleček Za zagotavljanje neprekinjenega delovanja aplikacije je potrebno vpeljati dinamično posodabljanje programske opreme, ki med proce- som posodobitve ne povzroča izpada storitev. V arhitekturi mikrostoritev za dinamično posodabljanje običajno uporabimo centralizi- rana orodja za orkestracijo vsebnikov. Članek opisuje izsledke raziskovalnega dela, v katerem razvijamo decentralizirano metodo za dinamično posodabljanje mikrostoritev. Predlagana metoda definira koordinatorje posodobitve za decentralizirano upravljanje proce- sa posodobitve, ki z mehanizmi za izboljšanje odpornosti na napake izvedejo evalvacijo nove verzije mikrostoritve. Z evalvacijo pre- prečimo namestitev nedelujoče verzije mikrostoritve, s čimer se izognemo izpadu delovanja aplikacije, posledično pa izboljšamo proces razvoja programske opreme. Ključne besede: mikrostoritve, dinamično posodabljanje, odpornost na napake, decentralizacija. Abstract Applications that require a high availability are updated with dynamic software updating methods, which do not result in any down- time during the update process. Dynamic updates in the microservice architecture are typically coordinated by a centralised con- tainer orchestrator. This paper describes the results of the work in progress in which we are developing a decentralised method for dynamic updates of microservices. The proposed method defines update coordinators for the decentralised coordination of the updates process. Update coordinators use fault-tolerance mechanisms to evaluate the newly deployed microservice version. The evaluation prevents the deployment of a faulty microservice version and consequent service outage, all of which improve the soft- ware development process. Keywords: Microservices, dynamic software updating, fault tolerance, decentralisation. 1 UvoD Sodobne aplikacije morajo zagotavljati visoko sto- pnjo razpoložljivosti, prav tako pa jih je potrebno stalno posodabljati, na primer zaradi nadgrajevanja funkcionalnosti ali odprave napak. Z uporabo me- tod dinamičnega posodabljanja lahko dosežemo ničelni čas izpada storitev aplikacije med njenim posodabljanjem, vendar je metode potrebno prila- goditi sistemu in arhitekturi aplikacije. V arhitekturi mikrostoritev za dinamično posodabljanje običajno uporabljamo orodja za orkestracijo vsebnikov, ki so centralizirana in med procesom posodabljanja ne zagotavljajo naprednih mehanizmov za odpornost na napake. V članku opišemo povzetke izvirnega raziskovalnega dela, ki je še v teku, v katerem raz- vijamo metodo za dinamično posodabljanje mik- rostoritev, s katero želimo izboljšati pomanjkljivosti obstoječih pristopov. Cilj raziskovalnega dela je raz- viti metodo, ki bo postopek dinamičnega posoda- bljanja koordinirala decentralizirano brez central- nega orodja za orkestracijo in pri tem evalvirala novo verzijo mikrostoritve, s čimer bo preprečila names- krAtkI zNANStVENI prISpEVkI U P O R A B N A I N F O R M A T I K A 292020 - πtevilka 1 - letnik XXVIII Jan Meznarič, Matjaž B. Jurič: Decentralizirano in odporno dinamično posodabljanje mikrostoritev titev nedelujoče verzije in posledično izpad delovan- ja celotne aplikacije. 2 SODObNI PRISTOPI K RAzVOJU PROgRAmSKe OPReme Popularizacija računalništva v oblaku in selitev pro- gramske opreme v oblak sta vplivali na način razvoja in arhitekturo programske opreme. S ciljem boljše izkoriščenosti virov in uporabe podpornih oblačnih mehanizmov, kot so samodejno skaliranje, prever- janje vitalnosti in odpornost na napake, so razvili nove arhitekturne pristope, optimizirane za izvajan- je v oblaku (Kratzke & Quint, 2017). Posledično so se razvili tudi novi pristopi k razvoju, testiranju in nameščanju programske opreme. Najbolj razširjen pristop k razvoju programske opreme za izvajanje v oblaku je arhitektura mikro- storitev, v kateri je posamezna aplikacija sestavljena iz večjega števila neodvisnih storitev – mikrostoritev. Razbitje aplikacije na mikrostoritve sledi poslovnim domenam, pri čemer je posamezna mikrostoritev od- govorna za implementacijo ene funkcionalnosti. Posa- mezna mikrostoritev je pakirana kot vsebnik in name- ščena v večjem številu instanc, kar zagotavlja visoko odzivnost in razpoložljivost. Mikrostoritve med sabo komunicirajo preko jasno definiranih vmesnikov na standardnih omrežnih protokolih. Omrežni naslovi instanc mikrostoritev so shranjeni v registru storitev, iz katerega se pridobivajo za potrebe komunikacije med mikrostoritvami. Mikrostoritvene aplikacije so torej distribuirane, njihova modularna zasnova pa omogo- ča učinkovito skaliranje, pri čemer je posamezne dele aplikacije možno skalirati glede na njihovo obremenje- nost (Esposito, Castiglione & Choo, 2016). Vsaka mikrostoritev ima jasno določeno ekipo, ki je odgovorna za celoten življenjski cikel mikrostori- tve, od razvoja in testiranja do nameščanja in vzdr- ževanja mikrostoritve v vseh okoljih (Zhu, Bass & Champlin-Scharff, 2016). Zaradi neodvisnosti med posameznimi mikrostoritvami, majhnih razvojnih ekip in odgovornosti ekip za celoten življenjski cikel mikrostoritve razvijalci pogosto uporabljajo kratke razvojne cikle s pogostimi namestitvami novih ver- zij v produkcijsko okolje. Razvojni cikli so podprti z orodji za avtomatizacijo, ki zagotavljajo zvezno inte- gracijo in nameščanje, pri čemer se za nameščanje no- vih verzij uporablja koncept dinamičnega posodab- ljanja, ki med prehodom na novo verzijo zagotavlja neprekinjeno delovanje mikrostoritve (O’Connor, Elger & Clarke, 2017). Razbitje aplikacije na mikrostoritve, njihov neod- visen razvoj in uporaba kratkih razvojnih ciklov z manj celovitega testiranja povečajo potencial za vnos nepredvidenih napak. Slednje se lahko pojavijo zara- di nepravilnih sprememb vmesnikov ali izpada de- lovanja mikrostoritve zaradi nepravilne konfiguracije izvajalnega okolja. Posledica so napake pri komuni- kaciji med mikrostoritvami, ki morajo delovati kot celota in zagotavljati kompozitne funkcionalnosti, sestavljene iz funkcionalnosti posameznih mikrosto- ritev. Mikrostoritve morajo posledično imeti visoko stopnjo odpornosti na napake, ki nemoteno delovanje aplikacije zagotavlja tudi v primeru pojava nepred- videnih napak. Na primer, neuspešen klic mikro- storitve ne sme povzročiti izpada delovanja celotne aplikacije (Killalea, 2016). Mehanizmi za povečanje odpornosti na napake vključujejo preverjanje vitalno- sti mikrostoritev, samodejne ponovne klice zunanjih odvisnosti, vpeljavo maksimalnega odzivnega časa, prekinjevalce toka, pregrade in določanje alternativ- nih operacij, ki se izvedejo v primeru napak. Dotični mehanizmi so tako eden izmed ključnih gradnikov arhitekture mikrostoritev, saj predstavljajo protiutež povečanemu potencialu za napake, ki ga vpelje raz- bitje aplikacije na več neodvisnih izvajalnih enot (Tof- fetti, Brunner, Blöchlinger, Spillner & Bohnert, 2017). 3 IzzIVI DINAmIčNegA POSODAbLJANJA miKroStoritev Dinamično posodabljanje programske opreme je proces, v katerem namestimo novo verzijo aplikacije, ne da bi s tem prekinili zagotavljanje njenih storitev (Hicks & Nettles, 2005). V arhitekturi mikrostoritev posodabljamo posamezne mikrostoritve, in sicer tako, da obstoječo verzijo mikrostoritve nadomesti- mo z novo verzijo. Obstoječi načini dinamičnega posodabljanja mi- krostoritev temeljijo na orodjih za orkestracijo vseb- nikov. Ta tipično upravljajo elastičnost aplikacije in zagotavljajo kakovost storitev, lahko pa so zadolže- na tudi za dinamično posodabljanje. V našem delu nas zanima izključno vloga orodij za orkestracijo kot upravljalcev dinamičnega posodabljanja. V procesu dinamičnega posodabljanja skrbnik naloži novo ver- zijo mikrostoritve, orodje za orkestracijo pa zažene vsebnik z novo verzijo, preveri njegovo delovanje, nanj preusmeri omrežni promet ter odstrani vsebni- ke s prejšnjo verzijo. Orodja za orkestracijo vsebni- U P O R A B N A I N F O R M A T I K A30 2020 - πtevilka 1 - letnik XXVIII Jan Meznarič, Matjaž B. Jurič: Decentralizirano in odporno dinamično posodabljanje mikrostoritev kov predstavljajo centralizirano rešitev za dinamič- no posodabljanje, pri čemer je nemoteno delovanje sistema odvisno od nemotenega delovanja orodja za orkestracijo. Prvi cilj našega raziskovalnega dela se osredotoča na razvoj metode za decentralizirano ko- ordinacijo dinamičnega posodabljanja mikrostoritev, s katero želimo nadomestiti centralizirane posodobi- tvene metode orodij za orkestracijo. Visoke zahteve po odpornosti na napake v arhi- tekturi mikrostoritev veljajo tudi za proces dinamič- nega posodabljanja, za katerega želimo, da je od- poren na napake, ki se lahko pojavijo kot posledica namestitve neustrezne ali nekompatibilne verzije mikrostoritve. Z ustreznimi mehanizmi za povečanje odpornosti na napake želimo preprečiti izpad delo- vanja aplikacije med posodobitvijo. S tem posledično izboljšamo proces razvoja programske opreme, saj razvijalcem omogočimo, da uporabljajo kratke ra- zvojne cikle s pogostimi namestitvami brez tveganja za izpad delovanja aplikacije zaradi napake v novi verziji. Drugi cilj našega raziskovalnega dela je raz- viti mehanizme za povečanje odpornosti na napake pri uporabi decentralizirane metode za dinamično posodabljanje mikrostoritev. 4 PReDLOg meTODe zA DeceNTRALIzIRANO IN ODPORNO DINAmIčNO POSODAbLJANJe miKroStoritev Za izpolnitev zastavljenih raziskovalnih ciljev pre- dlagamo metodo za decentralizirano in odporno dinamično posodabljanje mikrostoritev. Predlaga- na metoda je namenjena posodobitvam z manjšimi spremembami mikrostoritev, ki so pogoste v sodob- nih razvojnih ciklih. Sem spadajo odprava napak, manjše spremembe ali dopolnitve poslovne logike in dopolnitve vmesnikov, ki ne porušijo združljivosti s prejšnjimi verzijami. Za decentralizacijo dinamičnega posodabljanja predlagamo vpeljavo komponente za koordinacijo, ki postane sestavni del vsake mikrostoritve. S tem odgovornost za dinamično posodabljanje iz centrali- ziranih orodij za orkestracijo vsebnikov prestavimo na mikrostoritve. Namesto potrebe po centralnem upravljanju dinamičnega posodabljanja se obstoje- ča in nova verzija mikrostoritve sami dogovorita o postopku posodobitve, pri čemer posodobitev koor- dinirajo instance obstoječe verzije, ki jih imenujemo koordinatorji posodobitve. Ker je obstoječa verzija mikrostoritve nameščena v večjem številu instanc, je zagotovljena visoka odpornost na napake, saj se postopek dinamičnega posodabljanja uspešno za- ključi tudi ob izpadu enega ali več koordinatorjev posodobitve. Za povečanje odpornosti na napake v procesu di- namičnega posodabljanja definiramo fazo evalvacije nove verzije. V fazi evalvacije so zahtevki odjemalcev mikrostoritve še naprej usmerjani na instance obsto- ječe verzije, nova verzija pa je aktivno evalvirana s strani koordinatorjev posodobitve. Ti s klici API-ja za preverjanje vitalnosti testirajo odzivnost nove verzije Slika 1: Shema predlagane metode za decentralizirano dinamično posodabljanje z evalvacijo nove verzije mikrostoritve. U P O R A B N A I N F O R M A T I K A 312020 - πtevilka 1 - letnik XXVIII Jan Meznarič, Matjaž B. Jurič: Decentralizirano in odporno dinamično posodabljanje mikrostoritev in preverijo rezultate kontrol vitalnosti, ki predsta- vljajo teste funkcionalnosti mikrostoritve. V primeru pozitivne evalvacije je nova verzija sprejeta, v prime- ru negativne evalvacije pa zavrnjena brez negativne- ga vpliva na delovanje celotne aplikacije. Shema na sliki Slika 1 povzema štiri glavne ko- rake predlagane metode. Pred posodobitvijo so zahtevki odjemalcev mikrostoritve M posredovani instancam verzije v1.1, saj so te vpisane v registru storitev. Cilj posodobitve je zamenjati instance mik- rostoritve M verzije v1.1 z instancami verzije v1.2. Instance verzije v1.1 implementirajo predlagano komponento za koordinacijo, zato lahko prevzamejo vlogo koordinatorjev posodobitve – obstoj instanc s komponento za koordinacijo je predpogoj za začetek procesa dinamičnega posodabljanja s predlagano metodo. V prvem koraku (a) razvijalec v izvajalno okolje namesti vsebnik z novo verzijo mikrostoritve M verzije v1.2. Instanca verzije v1.2 ni vpisana v reg- ister storitev, zato ne dobiva zahtevkov odjemalcev. V drugem koraku (b) verzija v1.2 iz registra storitev pridobi naslove instanc mikrostoritve M verzije v1.1 in za koordinatorje posodobitve izbere najbolj odzivne instance. V tretjem koraku (c) izbrani koor- dinatorji posodobitve s pomočjo API-ja za preverjan- je vitalnosti evalvirajo verzijo v1.2. Za uspešno eval- vacijo mora verzija v1.2 v določenem času odgovoriti s pozitivnimi statusi posameznih kontrol vitalnosti. Glede na rezultate evalvacije je nova verzija v1.2 bo- disi zavrnjena bodisi sprejeta. Četrti korak (d) prika- zuje pozitivno evalvacijo in sprejetje verzije v1.2. V primeru pozitivne evalvacije se instance verzije v1.2 registrirajo v register storitev in posledično začnejo prejemati zahtevke odjemalcev. Instance verzije v1.1 se iz registra odstranijo in prekinejo svoje izvajanje, njeni vsebniki pa so posledično samodejno ustav- ljeni. V primeru negativne evalvacije je nova verzija zavrnjena, njene instance prekinejo svoje izvajanje, njeni vsebniki pa so posledično ustavljeni. Predlagana metoda ne zahteva sprememb obsto- ječe infrastrukture, mikrostoritve pa ni potrebno izvajati v priviligiranem načinu, saj že imajo vse potrebne pravice za izvajanje metode – pisanje v register storitev, prekinitev lastnega izvajanja in ko- munikacija z ostalimi instancami iste mikrostoritve, ki je ustrezno zaščitena z mehanizmi avtentikacije. V predlaganem procesu dinamičnega posodabljanja vsaka mikrostoritev tako manipulira le z lastnimi in- stancami, nasprotno pa imajo orodja za orkestracijo pregled in privilegij upravljanja vseh mikrostoritev v izvajalnem okolju. Predlagana metoda je definirana v obliki speci- fikacije, ki jo lahko implementira poljubna mikros- toritev, pri čemer je metoda tipično implementirana kot razširitev mikrostoritvenega ogrodja. Z uporabo razširjenega ogrodja lahko nato razvijalci brez dodat- nega dela razvijajo mikrostoritve, ki že vsebujejo im- plementacijo komponente za koordinacijo in so same sposobne izvajati decentralizirano dinamično posoda- bljanje z evalvacijo novih verzij. Z razširitvijo obstoječih mikrostoritvenih ogrodij razvijalcem omogočimo enostavno uporabo razvite metode brez potrebe po dodatnem programiranju ali uporabi namenskih cen- traliziranih orodij za orkestracijo vsebnikov. 5 NAčRT eVALVAcIJe IN PReDVIDeNI RezULTATI Predlagano metodo za decentralizirano in odporno dinamično posodabljanje mikrostoritev bomo eval- virali s prototipno implementacijo v obliki razširitve izbranega odprtokodnega ogrodja za razvoj mik- rostoritev. Razširjeno ogrodje bomo nato uporabili za izdelavo testne aplikacije, ki jo bomo evalvirali s simulacijami procesa dinamičnega posodabljanja. V preliminarni evalvaciji smo pripravili prvo pro- totipno implementacijo predlagane metode ter jo evalvirali s simulacijami dinamičnega posodabljanja preproste mikrostoritvene aplikacije. Pokazali smo, da predlagana metoda uspešno izvede proces dina- mičnega posodabljanja brez centraliziranega orodja za orkestracijo. V nadaljnji evalvaciji bomo izboljšali prototipno implementacijo predlagane metode ter definirali več kompleksnejših simulacij. Simulirali bomo nedelujoče koordinatorje posodobitve, s čimer želimo pokazati, da metoda deluje tudi v primeru enega ali več nedelujočih koordinatorjev. Dokazati želimo, da predlagana metoda izboljša robustnost dinamičnega posodabljanja mikrostoritev, zato bomo simulirali namestitve neustreznih verzij mikrostori- tev in merili pravilnost evalvacije ter sprejetja ali za- vrnitve nove verzije. Želimo se prepričati še, da pre- dlagana metoda nima negativnih vplivov na učinko- vitost izvajanja dinamičnih posodobitev, zato bomo merili čas, potreben za vzpostavitev koordinatorjev posodobitve, čas, potreben za izvedbo evalvacije nove verzije, in celoten čas izvedbe posodobitvene- ga procesa. Pričakujemo, da se proces posodobitve zaključi v enakem ali krajšem času kot pri uporabi centraliziranih orodij za orkestracijo, torej v rangu U P O R A B N A I N F O R M A T I K A32 2020 - πtevilka 1 - letnik XXVIII Jan Meznarič, Matjaž B. Jurič: Decentralizirano in odporno dinamično posodabljanje mikrostoritev LITeRATURA [1] Esposito, C., Castiglione, A., & Choo, K. K. R. (2016). Chal- lenges in delivering software in the cloud as microservices. IEEE Cloud Computing, 3(5), 10–14. https://doi.org/10.1109/ MCC.2016.105 [2] Hicks, M., & Nettles, S. (2005). Dynamic software up- dating. ACM Transactions on Programming Languages and Systems (TOPLAS), 27(6), 1049-1096. https://doi. org/10.1145/1108970.1108971 [3] Killalea, T. (2016). The hidden dividends of microservices. Communications of the ACM, 59(8), 42–45. https://doi. org/10.1145/2948985 [4] Kratzke, N., & Quint, P. C. (2017). Understanding cloud-native applications after 10 years of cloud computing-a systematic mapping study. Journal of Systems and Software, 126, 1–16. https://doi.org/10.1016/j.jss.2017.01.001 [5] O’Connor, R. V., Elger, P., & Clarke, P. M. (2017). Continuo- us software engineering—A microservices architecture per- spective. Journal of Software: Evolution and Process, 29(11), e1866. https://doi.org/10.1002/smr.1866 [6] Toffetti, G., Brunner, S., Blöchlinger, M., Spillner, J., & Boh- nert, T. M. (2017). Self-managing cloud-native applications: Design, implementation, and experience. Future Generation Computer Systems, 72, 165–179. https://doi.org/10.1016/j. future.2016.09.002 [7] Zhu, L., Bass, L., & Champlin-Scharff, G. (2016). DevOps and its practices. IEEE Software, 33(3), 32–34. https://doi. org/10.1109/MS.2016.81 nekaj sekund, pri tem pa znatno izboljša odpornost na napake, saj proces posodobitve deluje tudi v pri- meru izpada koordinatorjev posodobitve ali name- stitve neustrezne verzije mikrostoritve. 6 SKleP V članku smo povzeli izsledke raziskovalnega dela, v katerem razvijamo metodo za dinamično posoda- bljanje mikrostoritev, ki deluje brez potrebe po cen- traliziranem orodju za orkestracijo vsebnikov in izboljšuje odpornost na napake v fazi dinamičnega posodabljanja. Predlagana metoda razbremenjuje razvijalce programske opreme, saj jim omogoča upo- rabo kratkih razvojnih ciklov s pogostimi names- titvami v produkcijsko okolje, pri čemer morebitna namestitev nekompatibilne ali nedelujoče verzije mikrostoritve ne more povzročiti izpada delovanja celotne aplikacije. V nadaljevanju raziskave nameravamo definirati vse podrobnosti predlagane metode ter jo evalvira- ti s pomočjo prototipne implementacije in simulacij. Pričakujemo, da bo razvita metoda pozitivno vpliva- la na odpornost na napake v procesu dinamičnega posodabljanja mikrostoritev.  Jan meznarič je asistent in raziskovalec na UL FRI. Raziskovalno se ukvarja z mikrostoritvami in ostalimi koncepti cloud-native arhitekture, s poudarkom na zvezni integraciji, odpornosti na napake, centralni konfiguraciji, odkrivanju storitev in zbiranju metrik. Raziskovalno in aplikativno sodeluje pri večjem številu projektov in je aktivno udeležen pri razvoju odprtokodnega ogrodja za razvoj mikrostoritev KumuluzEE.  matjaž b. Jurič je predstojnik Laboratorija za integracijo informacijskih sistemov na UL FRI in mentor start-up podjetij. Je avtor 17 knjig, izdanih pri mednarodnih založbah ter več kot 600 drugih publikacij. Vodil je številne raziskovalne in aplikativne projekte, ponaša pa se tudi s prestižnimi nazivi Java Champion, IBM Champion in Oracle ACE Director. Prejel je več mednarodnih nagrad, med drugim nagrado za najboljšo SOA knjigo (New York), nagrado za najboljši SOA projekt v telekomunikacijah (Las Vegas), nagrado Java Duke‘s Choice Award Winner (San Francisco) za najboljšo inovacijo v Javi, nagrado za najboljši znanstveni članek s področja storitev, nagrado za najboljšega raziskovalca po mnenju industrije in Zlato plaketo za izjemne zasluge pri razvijanju znanstvenega ustvarjanja. U P O R A B N A I N F O R M A T I K A 332020 - πtevilka 1 - letnik XXVIII StrOkOVNI prISpEVEk Inna Pavlova1, Alenka Kavčič2 1North-Caucasus Federal University, 355017, Stavropol, Pushkin street 1 2University of Ljubljana, UL FRI, Večna pot 113, 1000 Ljubljana shinnessa@mail.ru, alenka.kavcic@fri.uni-lj.si Resource saving technologies in education: A step towards a green society Izvleček Članek obravnava aktualne probleme moderne družbe – degradacijo okolja in neučinkovito rabo virov, kot tudi možne načine ohranja- nja virov – z vidika izobraževanja. V prvem delu na kratko predstavimo pregled literature s področja zelenih tehnologij v izobraževanju. Sledi opis didaktičnega modula za usposabljanje bodočih učiteljev informatike v aktivnostih varčevanja z viri. Namen modula je spod- bujanje njihove pripravljenosti za uporabo novih izobraževalnih metod v šolah, s posebnim poudarkom na zelenih informacijskih teh- nologijah, kot tudi razvoj splošne kulture varčevanja z viri. Ključne besede: IKT v izobraževanju, usposabljanje bodočih učiteljev, varčevanje z viri, zelena informacijska tehnologija. Abstract This article discusses the actual problems of modern society – environmental degradation and inefficient use of resources, as well as possible ways of resource conservation – from the educational perspective. A brief literature review of green technologies in education is presented in the first part. Next, we describe a didactic module for training future informatics teachers in resource- -saving activities. The module aims to form their readiness to use novel educational methods in schools with a special focus on green information technologies as well as to develop a general resource-saving culture. Keywords: Green computing, ICT in education, resource saving, training future teachers. 1 introDUction Considering the existing environmental degradati- on, improving environmental performance, comba- ting global warming and improving the efficiency of resource management are priorities on the list of glo- bal problems that need to be addressed very quickly. One of the main tasks of the governments around the world is to control and reduce the negative im- pact of harmful substances on the environment, and balance consumption of natural resources. Howe- ver, because of rapid technological progress, just the opposite is happening: more people are using more devices, increasing the energy consumption, and more resources are required to perform any te- chnical action, as they have become more complex. Many governmental programs and initiatives have been prepared all around the world with the main objective of more efficient use of energy and con- sequently reducing its total costs, which should also have a positive impact on the world economy and society as a whole. Information and communication technologies (ICT) that are already interweaved into all our every- day activities also represent a major source of enviro- nmental pollution. Thus, the new trends are moving towards using eco-technologies or green computing, with the main purpose of creating environmentally friendly and sustainable computer technology. Inte- rest in green information technologies has recently increased in all countries, including Europe and Rus- sia (Dastbaz, Pattinson, & Akhgar, 2015). U P O R A B N A I N F O R M A T I K A34 2020 - πtevilka 1 - letnik XXVIII Inna Pavlova, Alenka Kavčič: Resource saving technologies in education: A step towards a green society 2 LITeRATURe ON gReeN IT IN ScHOOLS Green information technology (green IT) as a practice of environmentally sustainable computing is becom- ing an important issue and the problems associated with it raise growing concerns about the negative im- pact of digital society on the environment. The prob- lem of environmentally sustainable computing and resource saving is still poorly studied, and there is a limited number of sources in the literature, confer- ences and seminars on this topic. Green or sustainable computing helps reduce energy consumption and losses to the environment when using computer equipment, extends the servi- ce life of the product, and makes it more energy ef- ficient, while the production waste is easily recycled or biodegradable, with a lower content of hazardous substances. Thus, the sustainable development of in- formation technology (IT) plays an important role in protecting our future. Recently, more attention to the “greening” of information technology and informati- on systems (IS) has become apparent worldwide. 3 cOURSeS TAcKLINg THe SUSTAINAbILITy iSSUeS In response to growing environmental concerns, more and more organizations are adopting environ- mental initiatives. In particular, many higher educa- tion institutions (HEIs) have implemented various security initiatives on campus through policies as well as teaching and learning. Master’s and post- graduate programs provide training in a wide range of information technologies along with sustainable strategies to teach students how to create and main- tain systems while reducing their harm to the envi- ronment. Universities such as Australian National University, Athabasca University in Canada, and Leeds Beckett University in the UK offer engineer- ing programs Sustainable ICT development, Green ICT strategies, MSc Sustainable Computing in full and par- tial access (Dastbaz, Pattinson, & Akhgar, 2015). In Sweden, the University of Chalmers has crea- ted a special course (Chalmers, 2017), which aims to inspire and encourage students to think about how they can contribute to sustainable development, in everyday and professional life. A basic understan- ding of the concept of sustainable development is needed, and knowledge of how the current use of natural resources and ecosystem services by humans is unsustainable, as well as possible strategies and solutions to enhance sustainability. Thus, this course should arouse great interest in sustainability issues, and provide the student with the knowledge and tools necessary to address the complex sustainability issues in their future professional lives. 4 gReeN eDUcATION The review of the literature on the green IT research reveals the fact that ensuring the implementation of the necessary requirements should begin with the formation of human needs for the rational use of resources at the initial stage of education. That is, school education should enable the students to de- velop the type of thinking, which will be aimed at re- source saving and respect for nature, while based on modern teaching methods. The authors of the book Green Teaching and Learning in Schools (Blendinger, Hailey, & Shea, 2015) justify the importance of creat- ing a culture of teaching and learning in the school to achieve a strong impact on students in relation to the preservation of the environment. They present successful and practical examples, “teaching green” in action, which have been provided to practicing teachers in primary and secondary schools. In their study on Green Education, Aithal and Rao (2016) show that educational institutions are also working to achieve sustainability. They discuss that growth or learning should only take place in an en- vironment that promotes development in children’s lives. Teachers and students need to be aware of and apply environmentally sound practices in their lear- ning, and a culture of preservation should be an inte- gral part of the curriculum. In the article on green IT at HEI, researchers Su- ryawanshi and Narkhede (2014) argue that green information and communication technologies are an innovative approach to the use of ICT related to environmental protection and ICT sustainability in the future, and represent a practice of achieving cor- porate social responsibility by minimizing carbon fo- otprint, ICT waste and energy savings. The rational use of green ICT in education is also analysed, and critical success factors of their implementation are identified based on a survey of individual educati- onal institutions and interviews with the key acade- mic experts in India. The study identify seven critical success factors that are important for the sustaina- bility of ICT in the future: optimal use of resources, stakeholder participation, renewable energy, energy U P O R A B N A I N F O R M A T I K A 352020 - πtevilka 1 - letnik XXVIII Inna Pavlova, Alenka Kavčič: Resource saving technologies in education: A step towards a green society conservation, institutional policies, green ICT Com- mittee activities, and legislation. Against the background of the global deve- lopment of green technologies, also China made the environmental protection a key state policy and in- cluded it in the strategy of national sustainable de- velopment (Ximing & Chunzhao, 2011). The study of Ximing and Chunzhao (2011) shows that students at universities contribute to environmental awareness, but they are not motivated to participate in enviro- nmental programs and activities. They conclude that HEIs need to combine theory with practice to make the process of learning more interesting. To improve the quality of environmental education, universities should also update and improve the philosophy of teaching, personnel training plan, contents and me- thods of teaching, and teachers training. More needs to be done to explore effective methods and ways of introducing green education and highly skilled staff in the new environment. Another researcher Lu Chen (2017) discusses in his paper on resource saving higher education deve- lopment that the thorough exploration of the concept of resource saving and a comprehensive study of its internal meaning and intrinsic value are the key to the optimization and integration of higher education resources. In order to save resources, it is possible to effectively optimize the concept of industrialization and integration of higher education resources, and promote the integration and optimization of regional industrialization resources, thereby forming a signi- ficant impact on the diversity and multi-channel of the development of higher education resources. With the aim of better understanding the rese- arch area of green IT, Asadi, Hussin, & Dahlan (2017) conducted a literature review from 2007 to 2016 on the green IT research. They note that current rese- arch covers numerous topics within green IT, espe- cially initiation, approaches and strategies, adoption frameworks and benefits, but other topics receive insufficient attention. By asking research questions, they help scientists identify rigorous research areas for further study. The results of their research provi- de a roadmap to guide future research on green IT and highlight areas for successful implementation of green IT. Researchers Singh and Sidhu (2016) conclude in their review article that green computing seeks to re- duce the unwanted and harmful effects of computers on the environment by reducing air, water and soil pollution. With ever-increasing research in science and technology, it is possible to overcome obstacles. They also argue that each of us has to take small steps towards taking green computing measures in order to enable a healthy growth of our environment. 5 ReSOURce SAVINg AND eDUcATIONAL moDelS Information and communication technologies incor- porated into the modern teaching methods have sig- nificantly changed the educational system, but have not reduced the value of traditional learning. The best part of digital education in the 21st century is that it combines two aspects: traditional classroom learning and learning with innovative technologies. Both ap- proaches are complementary and support each oth- er. The use of ICT in education is also a way to save resources. For example, a platform for online train- ing restricts frivolous use of paper, directly reducing the felling of trees, while a free software might save material resources of users. Cloud storage and intel- ligent search engines make it easier for students to access a wider range of information sources, without time (and money) consuming browsing through a large number of books to find specific information. However, data centres are vast consumers of elec- tricity and therefore under an increasing pressure to reduce carbon dioxide emissions. In response, cloud service providers have begun to set sustainable de- velopment goals by using renewable sources in their services (Mann, 2016). 6 ReSOURce-SAVINg eDUcATION We can argue that the resource saving is a modern stage of evolution in the context of transformation of the education model. Based on the universal princi- ples, it is currently possible to form a comprehensive resource-saving education. The innovative task of resource saving is a professionally- and problem- oriented educational task of saving and optimizing costs and reserves. It contributes to the formation of relevant components of the resource saving compe- tencies. Its result also determines a set of measures for introducing new technologies to improve the ef- ficiency of education. Innovative tasks of resource saving can be a means of literacy formation of future graduates. The profes- sional education, based on the competences, should U P O R A B N A I N F O R M A T I K A36 2020 - πtevilka 1 - letnik XXVIII Inna Pavlova, Alenka Kavčič: Resource saving technologies in education: A step towards a green society approach the complexity of resource saving tasks by focusing on updating the resource values and rising awareness of the need for reducing their consumption. An efficient solution to these problems can be ob- tained only through information and methodologi- cal readiness of teachers for the use of new resour- ce-saving forms of education (e.g. distance, electro- nic, mobile, co-education), the creation of electronic educational resources, and providing access to these resources to a wide range of students, consequently improving the availability and quality of education (Konopko & Pankratova, 2017). 7 A mODULe FOR TRAININg TeAcHeRS ON ReSOURce SAVINg TecHNOLOgIeS The North Caucasus Federal University (NCFU) in Russia introduced key concepts and ideas of green IT in the educational process of undergraduate students majoring in Computer Science. A distance-learning module, available on a learning management system of NCFU training (https://el.ncfu.ru), allows lectur- ers to apply the practice of e-learning and blended learning in the classroom. The educational module titled European resource saving trends in Computer Sci- ence teacher training was developed within the Eras- mus+ Jean Monnet project. The module implements an individual approach in the formation of various components of readiness for resource-saving activities of students (i.e. future teachers of computer science). At the theoretical le- vel, axiological and cognitive components of readi- ness are formed via video lectures, webinars and on- -line discussions, while the activity and management components of readiness are formed at the practical level. Axiological components of readiness relate to the system of values of the individual, motivating the student for resource-saving activities, consequently forming a positive attitude to it and grow the desire to spread the experience of resource saving. Cogniti- ve components of readiness represent the necessary competencies on the theoretical and methodological foundations of resource saving. Activity components of readiness relate to formation of skills and resour- ce-saving activities, while management components of readiness refer to the development of student skills to predict, plan, organize, control, analyse and reflect resource-saving activities. Practical work (in the form of project activities, debates, discussions or round tables, organized with the use of remote technologies) contributes to the acquisition of students’ skills of resource-saving acti- vities. In addition, the methodological novelty of the project is the partnership of lecturers and students in the form of project activities, forums, online discussi- ons, webinars, blogs, scientific consultations and jo- int publications. The virtual platform of the module allows students to have unlimited online access to all educational and methodical materials of the module. Besides, it provides an opportunity to share the re- sults of applied research and experimental educatio- nal work to students and lecturers. The actual effects of the module can be assessed only after the practical application of acquired kno- wledge and competences, with the new generation of teachers of Informatics in secondary schools (Ko- nopko & Pankratova, 2017). 8 conclUSion Applying green IT leads to lower energy consump- tion, carbon emissions and environmental impacts, as well as lower costs for organizations on the long run. The ultimate goal of going green is sustainabil- ity and addressing adverse environmental impacts. However, using green technology should be the mo- tivation from the point of view of social responsibili- ty. By combining traditional learning with green IT, it is possible to use the best of what green and human- driven education has to offer, creating a learning experience that keeps pace with technology while minimizing the consumption of various resources. It is important to remember the role that the hu- man teacher will always play in the classroom. After all, teachers have unique and personal information about each student’s progress, act as role models and local experts, and provide inspiration in ways that technology cannot. ReFeReNceS [1] Aithal, P. S., & Rao, P. (2016). Green Education Concepts & Strategies in Higher Education Model. International Journal of Scientific Research and Modern Education (IJSRME) ISSN (Online): 2455 – 563, 1(1), 793-802. [2] Asadi, S., Hussin, A. R. C., & Dahlan, H. M. (2017). Organiza- tional research in the field of Green IT: A systematic literature review from 2007 to 2016. Telematics and Informatics, 34(7), 1191-1249. [3] Blendinger, J., Hailey, L. A., & Shea, D. (2015). “Green” Teaching and Learning in Schools. Marketing the Green School: Form, Function, and the Future, 183-193. [4] Chalmers (2017). Our role in sustainable development. Re- trieved from https://www.chalmers.se/en/about-chalmers/ U P O R A B N A I N F O R M A T I K A 372020 - πtevilka 1 - letnik XXVIII Inna Pavlova, Alenka Kavčič: Resource saving technologies in education: A step towards a green society Chalmers-for-a-sustainable-future/Pages/Sustainability-at- Chalmers.aspx [5] Chen, L. (2017). Idea of Resource Saving Higher Education Development on the Integration and Optimization of Educa- tional Resources. Eurasia Journal of Mathematics, Science and Technology Education, 13(10), 7071-7076. [6] Dastbaz, M., Pattinson, C., & Akhgar B. (2015). Green infor- mation technology. A sustainable approach. Amsterdam: El- sevier Morgan Kaufmann. [7] Konopko, E. A., & Pankratova, O. P. (2017). Modeling the process of preparing future informatics teachers for resource- saving activities based on European experience. International Journal of Modern Information Technologies and IT Educa- tion, 13(4), 134140. [8] Mann, S. (2016). A Rethink for Computing Education for Sus- tainability. Paper presented at the International Conferences on Internet Technologies & Society (ITS), Education Tech- nologies (ICEduTECH), and Sustainability, Technology and Education (STE), pp. 221-228. [9] Singh, M., & Sidhu, A. S. (2016). Green Computing. Interna- tional Journal of Advanced Research in Computer Science, 7(6), 195–197. [10] Suryawanshi, K., & Narkhede, S. (2014). Green ICT at Higher Education Institution: Solution for Sustenance of ICT in Fu- ture. International Journal of Computer Applications, 107(14), 35-38. [11] Ximing, S., & Chunzhao, L. (2011). Survey of environmental education (EE): case study of higher education institutions in Ningbo. Energy Procedia, 5, 1820–1826.  Inna Pavlova is a second year master’s student at the Department of Informatics, North Caucasus Federal University, Russia. Her research interests are in the field of information and communication technologies in education, cloud technologies, virtual reality, and resource-saving technologies.  Alenka Kavčič, Ph.D. is a senior lecturer at the Faculty of Computer and Information Science, University of Ljubljana. Beside her pedagogical responsibilities, she is involved in a number of research projects related to multimedia and internet technologies, human-computer interaction, and computer-based education and learning, especially the innovative use of information technologies in education. She has co-organized several Summer Schools for high school teachers and students. U P O R A B N A I N F O R M A T I K A38 2020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko, Koroška cesta 46, 2000 Maribor ales.cep@um.si, damijan.novak@um.si, jani.dugonik@um.si Samodejno preverjanje pravilnosti študentskih nalog iz programiranja Izvleček Fakultete se lahko soočijo s problematiko preverjanja pravilnosti delovanja velikega števila oddanih nalog, predvsem pri predmetih iz programiranja. Predlagan sistem za avtomatizacijo preverjanja oddanih nalog lahko čas testiranja nalog bistveno skrajša in s tem razbremeni pedagoško osebje. Povratne informacije o točnosti oddane naloge so deležni tudi študenti, ki jim sistem poda opis na- pake, ki jo lahko v ponovnem poskusu oddaje odpravijo. Sistem omogoča preverjanje nalog v dveh programskih jezikih (C# in C++), komunikacija med pedagogom in študentom pa spada v kategorijo e-učenja. Prednost uporabe predlaganega sistema je popolna nepristranost ocenjevalca, slabost pa se kaže v večjem začetnem časovnem vložku, potrebnem za sestavo naloge. V članku bo po- drobneje predstavljena notranja zgradba sistema za preverjanje pravilnosti delovanja nalog iz programiranja. Ključne besede: Docker, e-učenje, Moss, ocenjevanje študentskih nalog, testiranje enot, testno voden razvoj. Abstract Faculties may face the problem of verification of many submitted assignments, especially in subjects with programming assi- gnments. The proposed system for verification automation of submitted assignments can significantly reduce the testing times and relieve the teaching staff. Feedback about the submitted assignments’ correctness is also given to the students, as well as descrip- tions of the errors so that they can correct the assignments and submit them again. The system supports the verification for two different programming languages (C# and C++). The communication between the teacher and the student puts the proposed sy- stem into the E-learning category. The advantage of using the proposed system is the complete impartiality of the assessor while the disadvantage is that more time is needed to compose an assignment. This paper presents the detailed internal structure of the assignment verification system. Keywords: Docker, e-learning, grading of the student assignments, Moss, Test Driven Development, Unit testing. 1 UvoD Pri predmetih iz programiranja se študente seznani s pravilno sintakso in uporabo specifičnih program- skih jezikov, s pristopi sestavljanja postopkov oz. al- goritmov ter s predstavitvijo podatkov in podatko- vnih struktur. Na fakultetah pri predmetih z večjim številom štu- dentov (več kot 100) predstavlja preverjanje oddanih nalog velik izziv tako z vidika zagotavljanja enakega kriterija ocenjevanja kot tudi časovne obremenitve pedagoškega osebja. Zaradi teh razlogov smo se od- ločili za avtomatizacijo postopka preverjanja študent- skih nalog, ki se že nekaj let uporablja na Fakulteti za elektrotehniko, računalništvo in informatiko. Sistem se uporablja pri predmetu Podatkovne strukture v 1. letniku visokošolskega študija, na dveh študijskih smereh (računalništvo in informatika), kjer je v po- sameznem študijskem letu skupno vpisanih več kot 200 študentov. Študentje lahko izbirajo med dvema programskima jezikoma: C# in C++. Pri vsaki nalogi so na voljo navodila in predloga programa, ki vsebuje vnaprej deklarirane razrede, programske strukture ter metode. Metode, ki jih morajo implementirati študenti na osnovi podanih navodil, so podane samo s prototipi in komentarji z razlago. Od samega začetka je bil sistem zasnovan z mis- lijo na vpetost študentov v učni proces in na njihovo uporabniško izkušnjo. Če študent pri implement- StrOkOVNI prISpEVEk U P O R A B N A I N F O R M A T I K A 392020 - πtevilka 1 - letnik XXVIII aciji sledi navodilom naloge, mu sistem ob morebitni storjeni napaki pri osvajanju zahtevane snovi ozi- roma opravljanju naloge poda jasen povraten odziv. Pedagog in študent sta tako aktivno vključena v pre- pletenost učnega procesa in Informacijsko-Komu- nikacijske Tehnologije (IKT) sistema, kar na kratko imenujemo e-učenje. Predlagan sistem nadaljuje razvoj sistema za preverjanje pravilnosti študentskih nalog (Zeml- jak, Novak, Čep, & Verber, 2016). Glavni napredek je storjen v stopnji avtomatizacije s prenosom nalog s spletne učilnice in pri sestavljanju razpredelnice z odzivi, kar pohitri objavo rezultatov. Prav tako smo v sistem dodali zabojnike Docker, s čimer smo poskr- beli za dodatno izolacijo med izvajanjem testov. Za preverjanje podobnosti izvorne kode smo dodali up- orabo sistema Moss. Preostanek članka je organiziran na naslednji način. Poglavje 2 opiše področja in orodja, uporablje- na v našem sistemu. Poglavje 3 predstavi sorodne sis- teme s področja računalniškega popravljanja nalog. Predlagan sistem je opisan v poglavju 4. Poglavje 5 vsebuje predstavitev primera ogrodja in testne me- tode. Poglavje 6 vsebuje zaključek članka. 2 PReDSTAVITeV PODROčJA V tem poglavju predstavljamo področja, ki so ključna za razumevanje delovanja sistema in so pomembna za njegovo gradnjo oziroma izvajanje. Najprej opre- delimo definicijo e-učenja kot ključno kategorijo, v katero se umešča ta sistem. Nato opišemo testno voden razvoj in testiranje enot, ki imata ključno vlogo pri gradnji nalog in njihovem preverjanju. V sistemu platforma Docker poskrbi za izolacijo tes- tov med izvajanjem, sistem Moss pa je uporabljen za preverjanje podobnosti programske kode z na- menom preprečevanja plagiatorstva. 2.1 e-učenje Zgodovinsko gledano ima e-učenje oziroma e-izobraževanje (angl. E-Learning) korenine v učenju na daljavo. Z nastankom interneta je namreč postalo mogoče, da sta pedagog in učenec ločena krajevno in prostorsko, med njima pa poteka komunikacija (E-izobraževanje - Wikipedija, prosta enciklopedi- ja, 2019). Pri tem ne gre samo za deljenje gradiv v elektronski obliki, v smislu izmenjave preprostih elektronskih sporočil, ampak se e-učenje definira kot pedagogika (umetnost in znanost učinkovitega učenja), ki je še dodatno obogatena s sodobno IKT. E-učenje je tako povezava med IKT in učenjem, vodilno mesto v tej povezavi pa pripada pedagogiki. IKT mora biti zanesljiva in dovolj preprosta za upo- rabo, da ne moti učnega procesa (Nichols, 2007). Dandanes se v pojem e-učenja vključujejo:  učenje na daljavo (ni samo v spletni obliki, npr. DVD z naloženo vsebino za učenje),  mešani načini deljenja virov (npr. spletni viri do- polnjujejo učenje v učilnici),  spletno učenje (celotna komunikacija poteka iz- ključno preko spleta),  interaktivnost vsebin (od preprostih povezav na spletne strani do učnih okolij, ki so popolnoma prilagojena uporabniku),  sistemi za nadzor učenja (z vključenimi možnost- mi ocenjevanja) in  pedagogika. 2.2. Testno voden razvoj Testno voden razvoj (angl. Test-Driven Development − TDD) je metodologija, ki s pomočjo zelo kratkih raz- vojnih ciklov omogoča razvoj programskih in infor- macijskih rešitev, kar jo uvršča med agilno-iterativne procese. Razvoj poteka tako, da se v posameznem ciklu najprej napiše specifična testna metoda (oz. test), šele nato se izvede implementacija funkcional- nosti (oz. dela specifikacij sistema, ki ga razvijamo). Testna metoda tako vodi proces razvoja implemen- tacije funkcionalnosti. Cikel je zaključen, ko se test izvede pravilno, implementacija funkcionalnosti pa je ustrezno vključena v rešitev. Za posamezno funk- cionalnost se lahko ponovi več ciklov. Testi morajo biti spisani tako, da jih odlikujejo lastnosti, kot so: neodvisnost, razumljivost in hitrost. 2.3. Testiranje enot Testiranje enot (angl. Unit testing) (Myers, Sandler, & Badgett, 2011) je metoda testiranja programske kode, pri kateri se testi izvajajo na nivoju posamezne enote (npr. metode, funkcije ali razreda) v progra- mu. Pri pisanju testov je najpogosteje v uporabi t. i. AAA (angl. Arrange-Act-Assert) vzorec, ki predlaga razdelitev testne metode na tri stopnje:  urejanje (angl. Arrange) – začetna stopnja, kjer se pripravijo vhodni podatki za testirano enoto in določi pričakovan izhod,  izvajanje (angl. Act) – klic testirane enote s pripra- vljenimi vhodnimi podatki, Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja U P O R A B N A I N F O R M A T I K A40 2020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja  potrjevanje (angl. Assert) – končna stopnja, kjer se izvede primerjava med dobljenim izhodom iz te- stirane enote ter predvidenim izhodom iz začetne stopnje. 2.4. Platforma Docker Platforma Docker (Docker Inc., 2019; Gradišnik & Ma- jer, 2016) je odprtokodna platforma za razvoj aplikacij, njihovo distribucijo in zagon na različnih infrastruktu- rah z uporabo t. i. zabojnikov. Zabojnik Docker (angl. Docker container) temelji na tehnologiji zabojnikov iz operacijskega sistema Linux in predstavlja nivo abstrakcije na aplikacijskem nivoju. Njegov namen je izolacija programske opreme od izvajalnega sis- tema. Znotraj zabojnika se zažene slika Docker (angl. Docker image), ki je izvedljiv paket z vsem potrebnim za zagon aplikacije − izvajalno kodo, datotečnim sist- emom in vsemi potrebnimi knjižnicami. 2.5. Sistem moss Kot pomoč pri odkrivanju plagiatov uporabljamo sistem za določanje podobnosti programske kode, imenovan Moss (Aiken, 2018) (angl. Measure Of Software Similarity). Algoritem, uporabljen za odkri- vanje prevar v sistemu Moss, v primerjavi z drugimi podobnimi algoritmi dosega veliko boljše rezultate (Bowyer & Hall, 1999). Sistemu posredujemo seznam programskih kod, ki jih želimo medsebojno primer- jati, ta pa nam kot rezultat vrne datoteko HTML s poudarjenimi deli programskih kod, ki nakazujejo podobnost, in odstotke podobnosti. Dodatna funkcionalnost sistema je možnost od- stranjevanja t. i. lažnih ujemanj, saj se iz primerjave odstrani t. i. skupna programska koda (npr. knji- žnice, že napisana programska koda itd.). Sistem Moss trenutno podpira več programskih jezikov: C, C++, Java, C#, Python, Visual Basic, Javascript, FOR- TRAN, ML, Haskell, Lisp, Scheme, Pascal, Modula2, Ada, Perl, TCL, Matlab, VHDL, Verilog, Spice, MIPS assembly, a8086 assembly, a8086 assembly in HCL2. Ker sistem Moss poda zgolj odstotek ujemanja posameznih programskih kod, ni namenjen popol- noma avtomatiziranemu odkrivanju plagiatorstva, temveč pregledovalcu služi zgolj kot pripomoček. 3 SoroDne iDeje Računalniško preverjanje, vrednotenje in ocenje- vanje nalog iz programiranja je staro skoraj toliko kot programiranje samo. Sisteme preverjanja nalog iz programiranja delimo glede na (Ihantola, Aho- niemi, Karavirta, & Seppälä, 2010; Romli, Sulaiman, & Zamli, 2010): stopnjo sposobnosti samodejnega preverjanja, število podprtih programskih jezikov, izvajalno okolje preverjanih programov itd. Upora- bljeni so na različnih institucijah (Auffarth, López- -Sánchez, Campos i Miralles, & Puig, 2008; Edwards, 2003), kamor moramo prišteti tudi aktualne spletne akademije (Massive open online course - Wikipedia, 2019). Primer takšnih so Coursera (Coursera Inc., 2019), edX (edX Inc., 2019), Udemy (Udemy, Inc., 2019), LinkedIn Business (LinkedIn Learning, 2019), Udacity (Udacity, Inc., 2019) itd., ki so namenjene skoraj neomejenim številom udeležencem. Večina spletnih akademij poleg tradicionalnih gradiv (pos- neta predavanja, branje, množica problemov) ponuja interaktivne tečaje z uporabniškimi forumi, ki pod- pirajo interakcijo med študenti, učitelji in asistenti, omogočajo pa tudi takojšne povratne informacije za kvize in naloge. Za podrobnejši pregled orodij za samodejno preverjanje nalog vestnemu bralcu svetu- jemo ogled dodatne literature (Douce, Livingstone, & Orwell, 2005). V literaturi (Zeller, 2000) je predstavljen sistem Praktomat, ki študentom omogoča medsebojno pregledovanje in ocenjevanje programov z namenom izboljšanja kakovosti ter sloga programske kode. Študent ima po oddani svoji nalogi možnost prido- biti nalogo drugega študenta, ki jo nato pregleda. Po pregledu študent dobi povratno informacijo o oddaji svoje naloge in možnost ponovne, popravljene odda- je. Sistem pregledovanja je neodvisen od ocenjevanja. Možnost plagiatorstva je zmanjšana s poosebljenimi nalogami in samodejnim testiranjem oddanih nalog. 4 PReDSTAVITeV NAŠegA SISTemA Predstavljen sistem nadaljuje delo predstavljeno v (Zemljak, Novak, Čep, & Verber, 2016). Omogo- ča preverjanje oddaj študentskih nalog z namenom dviga kakovosti študijskega procesa, saj gre za ne- pristranost (objektivnost preverjanja pravilnosti pro- gramske kode), hitrejše preverjanje študentskega razumevanja učne snovi ter poenotene odzive, ki jih študentje dobijo po oddaji naloge. Poenoteni odzivi študentom ponudijo večjo jasnost pri razumevanju lastnih lukenj v znanju, hkrati pa se jim zagotovi hi- trejša in bolj strukturirana pomoč pri odpravi more- bitnih napak. Prednost sistema je tudi razbremenitev pedagoškega osebja, saj čas preverjanja nalog ne ra- U P O R A B N A I N F O R M A T I K A 412020 - πtevilka 1 - letnik XXVIII ste več linearno s količino oddaj. Treba je pa vzeti v zakup, da je začetna priprava naloge za samodejno preverjanje časovno daljša in je potreben razmislek, ali je uporaba takšnega sistema časovno upravičena pri manjšem številu oddanih nalog. Delovanje sistema za preverjanje študentskih oddaj je razdeljeno v šest faz: 1. začetna priprava naloge, 2. izdelava in objava predloge, vključno z navodili, 3. prenos in razvrščanje oddanih nalog, 4. preverjanje plagiatorstva, 5. obdelava in testiranje nalog, 6. objava rezultatov. Prva faza je opravljena s strani upravljavcev siste- ma in vključuje beleženje funkcionalnih zahtev, im- plementacijo rešitve s pomočjo TDD, ki bo ustrezala zapisanim zahtevam, ter sestavo besedila naloge. V prvi fazi se tekom ciklov TDD-ja (poglavje 4.1): a) ustvari množica testov, ki služijo kot specifikacija na- loge, b) tekom preoblikovanj formira končna arhitek- tura naloge. Pomemben poudarek pri razumevanju pomena prve faze je, da se testi tekom razvoja v tej fazi ne pišejo z namenom validacije oz. preverjanja pravilnosti delovanja sistema, ampak samo kot spe- cifikacija zahtev. Ko je razvoj zaključen in končna arhitektura naloge z vsemi funkcionalnostmi imple- mentirana, se te iste teste (lahko) prekvalificira po uporabi in se jih s pridom uporabi še za validacijo pravilnosti delovanja študentskih oddaj (tako kot je to v našem sistemu − peta faza). Še en pomemben poudarek: testi so namenjeni samo razvijalcem ter jih študentje pri reševanju naloge ne pišejo (razen, če je to njihova želja, oz. opazijo potrebo po testih za na- men validacije lastne rešitve). Rešitev je treba implementirati v dveh program- skih jezikih, saj se mora pri opravljanju vaj zaradi dveh različnih študijskih smeri študentom omogočiti možnost izbire programskega jezika (C# ali C++). V praksi to poteka tako, da se najprej s TDD ustvari re- šitev v enem programskem jeziku, nato pa sledi roč- na preslikava kode še za drugi programski jezik. Pri tem skrbimo za ohranitev strukture razredov, metod, testov in notranjih implementacij. Druga faza je namenjena pripravi predloge, ki jo dobijo študentje kot osnovo in vsebuje prototipe me- tod, ki jih morajo implementirati. Predlogi (za vsak programski jezik ena) se vključno z navodili naloge objavita študentom v spletni učilnici. Sledi čas, na- menjen reševanju naloge s strani študentov. Tretja faza je izpeljana po pretečenem roku za oddajo naloge. Sistem iz spletne učilnice samodejno prenese oddane naloge in jih razdeli v ločene mape (vsak študent ima svojo mapo). Četrta faza je namenjena preverjanju podobnosti oddanih nalog pred testiranjem. V ta namen se upo- rabi skripta (Algoritem 4.4), ki za preverjanje upora- bi sistem Moss. Odziv je datoteka HTML, ki vsebuje seznam parov datotek z odstotki ujemanja podobno- sti. Pare datotek s (pre)velikim odstotkom ujemanja pedagoško osebje ročno preveri. Peta faza je namenjena obdelavi in testiranju na- log. Pred začetkom testiranja se v vsako študentsko mapo dodata dve datoteki: prva vsebuje teste, dru- ga pa je namenjena gradnji sistema (angl. Makefi- le). Za vsakega študenta se zažene zabojnik Docker (poglavje 4.3), ki ima dostop samo do študentske mape. Znotraj zabojnika se izvede še zadnji korak predpriprave, kjer se oddana naloga prilagodi z da- toteko za gradnjo sistema (poglavje 4.4). Sledi zače- tek testiranja, ki se izvede po principu črne škatle, in sicer po metodi testiranja enot. Enote so metode, ki jih implementirajo študenti. Za posamezno enoto je zapisanih več testov (poglavje 5), katerih povratne informacije se shranijo v t. i. datoteki odzivov. Testi- ranje se ovrednoti kot uspešno samo v primeru, če je testirana rešitev uspešno prestala vse teste. Sistem ima za izvajanje testov predvideno tudi časovno omejitev, znotraj katere se morajo testi zaključiti. V nasprotnem primeru se testiranje prekine in test se ovrednoti kot neuspešen. Šesta faza je objava rezultatov. Uporabi se ocenje- valna razpredelnica, katere prenos je mogoč iz sple- tne učilnice. Razpredelnica vsebuje podatke za vse študente, ki so bili vključeni v nalogo. Za vsakega študenta z oddano nalogo se izpolnita dva podatka: komentar in ocena. Podatka pridobimo iz datoteke odzivov. S komentarjem se študentu podajo povra- tne informacije testov. Samo ocenjevanje pa poteka binarno – študent lahko pridobi vse točke ali nič točk. Ocena se določi glede na to, ali je študentova rešitev uspešno prestala vse teste ali ne. Dopolnjeno razpre- delnico upravljavci sistema na koncu naložijo v sple- tno učilnico, s čimer se zaključi ocenjevanje naloge. 4.1. Funkcionalne zahteve in priprava testov Naloge pri posameznih snoveh iz programiranja morajo biti sestavljene z namenom osvajanja točno določenih konceptov. Na primer preverjanje znanja Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja U P O R A B N A I N F O R M A T I K A42 2020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja uporabe podatkovnih struktur (implementiranih v programerskih knjižnicah) zajema tako preverjanje njihovih metod kot tudi širši pomen uporabe le-teh znotraj algoritmov. Ko je znanje, ki ga mora študent osvojiti, dobro opredeljeno, pa se lahko oblikujejo specifikacije naloge ter funkcionalne zahteve, ki jih mora naloga vsebovati. Seznam funkcionalnih zahtev nato uporabimo kot osnovo za pisanje testov s pomočjo TDD. Celoten postopek (Beck, 2003) razvoja program- ske kode po TDD zajema naslednje korake: 1. Zapiše se test, namenjen preverjanju majhnega koščka funkcionalnosti naloge, in se ga požene. 2. Test pade. 3. Zapiše se najmanjša možna koda, ki zadošča te- stu. 4. Izvedejo se vsi do takrat napisani testi (čemur pravimo tudi regresijsko testiranje), ki morajo biti zdaj uspešni. 5. Izvede se preoblikovanje programske kode (angl. Refactoring), ki izboljša njeno notranjo strukturo, vendar ne spremeni obnašanja navzven. Ponovno se izvedejo vsi testi. 6. Če niso izpolnjene vse na začetku zapisane funk- cionalne zahteve, ponovimo vse do zdaj zapisane korake s pisanjem novega testa za neimplementi- rano funkcionalnost. Sicer je razvoj zaključen. Na tem mestu podajmo praktičen primer testa za implementacijo ene izmed funkcionalnosti naloge: Študent mora osvojiti znanje uporabe statične podat- kovne strukture Tabela. Ena izmed njenih osnovnih metod je metoda pripravi(velikost), ki poskrbi za začetno inicia- li-zacijo tabele s podano celoštevilsko vrednostjo velikost, ki jo metoda prejme kot argument. Funkcionalnost na se- znamu zahtev za implementacijo je naslednja: »Metoda pripravi(velikost) mora pri prejetju vrednosti velikosti, ki je manjša ali enaka 0, uvodno nastaviti ter vrniti celo-šte- vilsko polje ničelne velikosti.« Test, ki bo izpolnjeval preverjanje te funkcional- nosti, po izvedbi prvih dveh korakov vsebuje nasle- dnjo kodo: Ker imamo do zdaj napisan samo en test, lahko četrti korak preskočimo (pri dodanih novih testih pa Algoritem 4.1: Test za preverjanje pravilnosti implementacije metode pripravi(velikost). Implementacija metode pripravi(velikost) z izpolnjeno opisano funkcionalno zahtevo po izvedbi tretjega ko- raka TDD cikla vsebuje: se bo ta korak vedno izvedel). Sledi peti korak cikla TDD, kjer izvedemo preoblikovanje napisane kode − Algoritem 4.2: Del kode, s katero bo metoda pripravi(velikost) izpolnjevala funkcionalno zahtevo. U P O R A B N A I N F O R M A T I K A 432020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja spremenljivke pri nespremenjenem delovanju) − ter izvedemo vse teste. Peti korak cikla (preoblikovanje) je v osnovi iz- redno pomemben gradnik TDD-razvoja. Na danem primeru je zaradi preprostosti sicer prišlo samo do odstranitev spremenljivke, vendar bi z nadaljeva- njem šestega koraka (dodajanje novih zahtev) hitro prišlo do kompleksnejših preoblikovanj, ki bi imele pomemben vpliv na strukturo končne naloge (npr. pripravi(velikost) bi postala razredna metoda, spreme- nila bi se vidnost metode, metoda bi se lahko razdeli- la na več delov itd.). Algoritem 4.3: Del kode, s katerim bo metoda pripravi(velikost) izpolnjevala funkcionalno zahtevo. 4.2. Preverjanje plagiatorstva Skripta za preverjanje plagiatorstva kot vhod prejme absolutno pot do mape študentskih oddaj, ločenih po programskih jezikih. Za vsak jezik se ustvari seznam nalog, ki se posreduje na strežnik Moss s pomočjo datoteke moss.pl (del sistema Moss). Odgovor siste- ma Moss je datoteka HTML z rezultati. Algoritem 4.4: Skripta za preverjanje plagiatorstva s sistemom moss. odstranitev nepotrebne spremenljivke polje (zmanj- ša se število vrstic kode, sprostila se je deklaracija 4.3. zabojnik Docker Zabojnik Docker je v sistemu uporabljen z namenom izolacije testov, zmanjševanja zunanjih vplivov na testiranje ter za varovanje računalnika upravljavca sistema pred morebitnimi zlorabami. Za zagon zabojnika je bilo treba ustvariti sliko Dock- er (Algoritem 4.5), kjer je bila kot osnova uporabljena uradna slika okolja Mono (Docker Inc, 2019). Okolje Mono je odprtokodna implementacija .Net ogrod- ja in omogoča razvoj aplikacij, napisanih v jeziku U P O R A B N A I N F O R M A T I K A44 2020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja C# na operacijskem sistemu Linux. Uradna slika je razširjena z razvojnimi orodji (angl. build-essential). Gradnja slike (dodatne informacije o tem koraku naj- dete na (Docker Inc., 2019)) se izvede enkrat in objavi na središču Docker (Docker Inc., 2019). Algoritem 4.5: Izdelava slike Docker. zabojnik se zažene ločeno za vsakega študenta z ukazom: Zabojnik se zažene ločeno za vsakega študentra z ukazom: kjer se s parametrom name poda ime zabojnika (v našem primeru je to Naziv). Parameter v pritrdi mapo s študentsko oddajo (parameter pot) na pot / app/ znotraj zabojnika. S tem se aplikaciji znotraj zabojnika omogoči dostop do vseh datotek v mapi s študentsko oddajo. Parameter slika vsebuje povezavo do slike Docker na središču Docker. Na koncu je po- dan še skriptni ukaz, ki se izvede ob zagonu zabo- jnika. Ob izvedbi ukaza pride do premika v mapo app in zagona skripte za gradnjo sistema. Zabojnik je po koncu uporabe treba vedno odstraniti, čemur je namenjen ukaz: 4.4. Datoteki za gradnjo sistema Za zagon testov se uporabljata skripti za gradnjo sistema: C# (Algoritem 4.6) in C++ (Algoritem 4.7). Skripti najprej iz študentskih nalog odstranita vse nepotrebne knjižnice. Sledi zamenjava imena glavne- ga podprograma iz main v xmain (podprogram main je namreč že vključen v testih). Po zamenjavah se združita datoteka s testi in študentska naloga. Združena programska koda se prevede v izvajalno datoteko, ki se nato zažene. Odzivi testov se shranijo v datoteko output. Algoritem 4.6: Datoteka za gradnjo sistema za c#. U P O R A B N A I N F O R M A T I K A 452020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja Algoritem 4.7: Datoteka za gradnjo sistema za c++. 4.5. Namizna aplikacija Za lažjo uporabo sistema je bila s programskim ogrodjem Electron (Electron, 2019) razvita prenosljiva namizna aplikacija, ki deluje kot vodič skozi opisan postopek. Aplikacija izvede samodejen prenos nalog, razvrstitev oddaj v ločene mape ter zgoraj opisane skripte. 5 PReDSTAVITeV OgRODJA IN PRImeRA Preverjanje pravilnosti študentskih oddaj poteka na osnovi vnaprej pripravljenih testov enot. Enote so v našem sistemu metode, ki jih študenti v predlogi im- plementirajo v skladu s podanimi navodili. Pri upo- rabi našega testnega ogrodja študentu ni treba doda- ti niti ene vrstice kode, vendar pa ogrodje študentu vseeno omogoča implementacijo lastnih metod in razredov. Osnovno ogrodje za testiranje je skupno vsem na- logam in je implementirano v obeh jezikih: C# (Al- goritem 5.1) in C++ (Algoritem 5.2). Koda je pri obeh jezikih zelo podobna, s čimer se olajšata sestavljanje nalog in pisanje testov. Glavne komponente ogrodja so: razred Scenarij (od sedaj naprej scenarij), metodi za zagon testov in testne metode. V ogrodju je Sce- narij razred, ki vsebuje podatek o nazivu testirane enote, kratek opis scenarija ter referenco na testno metodo, ki se bo izvedla. V metodi za zagon testov (metoda test_vse) se najprej deklarirajo vsi scenariji, ki se dodajo na seznam. Sledijo zaporedni klici meto- de zazeni_test_scenarij. U P O R A B N A I N F O R M A T I K A46 2020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja Metoda zazeni_test_scenarij (Algoritem 5.3) je del osnovnega ogrodja, njena naloga je izvedba testa s klicem implementirane testne metode. Metoda vrne informacijo o uspešnosti izvedenega testa. Zaradi možnosti napak med izvajanjem (angl. run time er- rors) je klic metode obdan s prestreznim delom kode (angl. try…catch), ki v primeru napake v datoteko odzivov zapiše poročilo o napaki, ime testirane eno- te ter opis scenarija, celoten test pa se tudi označi kot neuspešen. Algoritem 5.3: Funkcija za zagon posameznega testa. U P O R A B N A I N F O R M A T I K A 472020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja Testna metoda (angl. test case) vsebuje imple- mentacijo testa in se drži vzorca AAA. Najprej se pri- pravijo vhodni podatki, sledi izvedba testirane enote in na koncu še preverjanje, ali se rezultati enote uje- majo s pričakovanimi rezultati. Vsaka testna metoda Algoritem 5.4: Primer testne metode. sprejme dva parametra: opis scenarija in naziv te- stirane enote. Ta podatka se v primeru neuspešno iz- vedenega testa skupaj z razlago zapišeta v datoteko odzivov. Metoda vrne informacijo o uspešnosti testa. Primer testne metode je predstavljen v Algoritem 5.4. U P O R A B N A I N F O R M A T I K A48 2020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja 6 DISKUSIJA Predstavljen sistem se od sorodnih razlikuje pred- vsem v sočasni uporabi dveh programskih jezikov (C# in C++), kar je tudi največja prednost našega sis- tema. Omogoča objektivno ocenjevanje, kar pa je pri ročnem pregledovanju in testiranju nalog pri več kot 100 študentih in več članih pedagoškega osebja zelo težko doseči. Prav tako se skrajšata čas pregledovan- ja in testiranja nalog (Tabela 1) ter čas objave rezulta- tov, ki vsebujejo poenotene odzive o morebitnih na- pakah. Odzivi študentom povedo, v kateri metodi in pri katerem testu je prišlo do morebitne napake, s či- mer lahko pedagoško osebje oziroma študenti hitreje najdejo mesto napake. To jim je v pomoč pri popravl- janju naloge pred ponovno oddajo iste naloge. Slabosti uporabe sistema so: a) podaljšanje ča- sovnega vložka, potrebnega za pripravo naloge, saj mora pedagoško osebje spisati funkcionalne zahte- ve, implementirati rešitev s pomočjo TDD in sesta- viti predlogo, b) testov se ne objavi, tako da morajo študenti testirati lastno kodo, c) binarno ocenjevanje, kjer že en neuspešen test pomeni nič točk pri nalogi in d) sistem je bolj koristen pri predmetih z večjim številom študentov. Pri ročnem pregledovanju in testiranju nalog je treba poudariti, da se naloge razlikujejo po težavno- sti (Tabela 1), s čimer se čas testiranja poveča. Iz tega razloga smo v Slika 1 za ročni pregled in testiranje nalog uporabili povprečen čas. Za ročni pregled in testiranje ene oddane naloge se glede na naše izku- šnje v povprečju porabi približno 10 minut, medtem ko se za samodejni pregled in testiranje ene oddane naloge potrebuje največ 30 sekund. Slika 1 prikazuje razliko v času med ročnim ter samodejnim pregledovanjem in testiranjem nalog glede na število oddanih nalog, kjer se v povprečju odda 650 nalog na semester. Slika 1 prikazuje potre- ben čas za pregledovanje in testiranje oddane naloge za enega pedagoškega delavca. Pri samodejnem pre- gledovanju in testiranju oddane naloge se čas z več pedagoškimi delavci ne bi spremenil, bi se pa poraz- delil pri ročnem. Med študenti smo izvedli tudi krajšo anketo o uporabi našega sistema. Večjih pripomb glede se- stave in razumevanj nalog niso imeli. Podali pa so željo, da bi imeli dostop do testov, s čimer bi lahko naloge osebno testirali, preden jih oddajo v ocenjeva- nje. Kritika sistema je bila izrečena glede poenotenih odzivov o nepravilno delujoči nalogi, saj se študentje niso znali orientirati, kako odpraviti napako (mne- nje/utemeljitev avtorjev članka: študentom je v odzi- vu podana informacija o metodi in krajši opis testa, pri katerem je prišlo do napake, ne pa točna lokacija napake v programski kodi). Slika 1: Primerjava časov ročnega in samodejnega pregledovanja in testiranja oddanih nalog Vrstilec Stopnja težavnosti čas ročnega pregledovanja in testiranja [min] Naloga 1 4 5 Naloga 2 3 5 Naloga 3 7 10 Naloga 4 8 10 Pregledna naloga 10 20 Povprečje 6,4 10 Tabela 1: Prikaz težavnosti in časa ročnega pregledovanja in testiranja ene oddaje naloge U P O R A B N A I N F O R M A T I K A 492020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja 7 SKleP Za razvoj lastnega ogrodja za testiranje enot smo se odločili, ker smo želeli imeti sistem, ki bo notranje podpiral dva programska jezika (C# in C++), nav- zven pa ponudil identične funkcionalnosti ter upo- rabniško izkušnjo. S tem se je dosegla lažja integra- cija implementiranega sistema v študijski proces, po- hitrilo pa se je tudi pregledovanje in testiranje nalog. Ena izmed primarnih zahtev, ki smo si jo zadali pri implementaciji sistema, je bila tudi ta, da študentom ne dvignemo kognitivne obremenitve pri osvajanju novega znanja še s prilagajanjem na naše ogrodje. To nam je uspelo, saj študentje ni treba prilagajati svoje- ga stila programiranja predlogi, če tega ne želijo. Jim pa je vseeno prepuščena svoboda v primeru, če želijo dodati novi razredi, strukture, metode itd. V prihodnosti želimo v sistem dodati tudi funk- cionalnosti, ki bi študentom omogočile samostojno rabo celotnega sistema, vendar v okrnjeni obliki (brez vseh testov), kot tudi dodati možnosti za predtestira- nja lastnih rešitev za bolj splošne napake (neveljavna sprememba strukture predloge; metoda vsebuje ne- dovoljene klice iz programskih knjižnic, kot je npr. Array.Sort(); …). LITeRATURA [1] Aiken, A. (15. 12 2018). A System for Detecting Software Similarity. Pridobljeno 9. 9 2019 iz https://theory.stanford. edu/~aiken/moss/ [2] Auffarth, B., López-Sánchez, M., Campos i Miralles, J., & Puig, A. (2008). System for automated assistance in correc- tion of programming exercises (sac). Proceedings of CIDUI 2008, (str. 104-113). Lleida. [3] Beck, K. (2003). Test-driven development: by example. Addi- son-Wesley Professional. [4] Bowyer, K. W., & Hall, L. O. (1999). Experience using „MOSS“ to detect cheating on programming assignments. FIE‘99 Frontiers in Education. 29th Annual Frontiers in Education Conference. Designing the Future of Science and Engine- ering Education. Conference Proceedings (IEEE Cat. No. 99CH37011) (str. 13B3-18). IEEE. [5] Coursera Inc. (1. 09 2019). Coursera. Pridobljeno iz https:// www.coursera.org/ [6] Docker Inc. (25. 8 2019). Mono Docker slika. Pridobljeno 25. 8 2019 iz Spletna mesto uradne Mono slike: https://hub.doc- ker.com/_/mono/ [7] Docker Inc. (02. 09 2019). Docker izgradnja slike. Pridobljeno iz https://docs.docker.com/engine/reference/commandline/ image_build/ [8] Docker Inc. (20. 8 2019). Docker središče. Pridobljeno 20. 08 2019 iz https://hub.docker.com/ [9] Docker Inc. (10. 9 2019). Enterprise Container Platform | Doc- ker. Pridobljeno 25. 8 2019 iz https://www.docker.com/ [10] Douce, C., Livingstone, D., & Orwell, J. (2005). Automatic test-based assessment of programming: A review. Journal on Educational Resources in Computing (JERIC), 3. [11] Edwards, S. H. (2003). Using test-driven development in the classroom: Providing students with automatic, concrete feed- back on performance. Proceedings of the international con- ference on education and information systems: technologies and applications EISTA. 3. Citeseer. [12] edX Inc. (1. 9 2019). edX | Free Online Courses by Harvard, MIT, & more. Pridobljeno 1. 9 2019 iz https://www.edx.org/ [13] E-izobraževanje - Wikipedija, prosta enciklopedija. (28. 8 2019). Pridobljeno 1. 9 2019 iz https://sl.wikipedia.org/wiki/E- izobra%C5%BEevanje [14] Electron. (1. 9 2019). ElectronJS. Pridobljeno iz https://elec- tronjs.org/ [15] Gradišnik, M., & Majer, Č. (2016). Mikrostoritve in zabojniki Docker. V M. Heričko, & K. Kous (Ured.), OTS 2016 Sodobne tehnologije in storitve, (str. 10-20). Maribor. [16] Ihantola, P., Ahoniemi, T., Karavirta, V., & Seppälä, O. (2010). Review of recent systems for automatic assessment of pro- gramming assignments. Proceedings of the 10th Koli Calling International Conference on Computing Education Research (str. 86-93). Koli: ACM. [17] LinkedIn Learning. (1. 9 2019). Pridobljeno 1. 09 2019 iz https://www.linkedin.com/learning/topics/business [18] Massive open online course - Wikipedia. (1. 9 2019). Prido- bljeno 1. 09 2019 iz https://en.wikipedia.org/wiki/Massive_ open_online_course [19] Myers, G. J., Sandler, C., & Badgett, T. (2011). The art of soft- ware testing. John Wiley & Sons. [20] Nichols, M. (2007). No. 1: E-Learning in context. E-Primer Se- ries, 27. [21] Romli, R., Sulaiman, S., & Zamli, K. (2010). Automatic pro- gramming assessment and test data generation a review on its approaches. 2010 International Symposium on Information Technology (str. 1186-1192). IEEE. [22] Udacity, Inc. (1. 9 2019). Learn the Latest Tech Skills; Advan- ce Your Career | Udacity. Pridobljeno 1. 09 2019 iz https:// www.udacity.com/ [23] Udemy, Inc. (1. 9 2019). Online Courses - Learn Anything, On Your Schedule | Udemy. Pridobljeno 1. 9 2019 iz https:// www.udemy.com/ [24] Zeller, A. (2000). Making students read and review code. ACM SIGCSE Bulletin (str. 89-92). ACM. [25] Zemljak, A., Novak, D., Čep, A., & Verber, D. (2016). Preverja- nje pravilnosti študentskih nalog programiranja s testiranjem enot. V M. Orel (Ured.), Sodobni pristopi poučevanja prihaja- jočih generacij (str. 556-564). Ljubljana: Polhov Gradec : Edu- vision. Pridobljeno iz http://www.eduvision.si/Content/Docs/ Zbornik%20prispevkov%20EDUvision_2016_SLO.pdf U P O R A B N A I N F O R M A T I K A50 2020 - πtevilka 1 - letnik XXVIII Aleš Čep, Damijan Novak, Jani Dugonik: Samodejno preverjanje pravilnosti študentskih nalog IZ programiranja  Aleš čep je asistent in doktorski študent na Fakulteti za elektrotehniko, računalništvo in informatiko Univerze v Mariboru. Njegova raziskovalna področja vključujejo umetno inteligenco v igrah ter evolucijsko računanje.  Damijan Novak je leta 2011 diplomiral na Fakulteti za elektrotehniko, računalništvo in informatiko Univerze v Mariboru. Trenutno je asistent in doktorski študent z večjim številom znanstvenih člankov in prispevkov. Njegova raziskovalna področja obsegajo računsko kompleksnost v igralnih svetovih, umetno inteligenco v igrah ter vzpodbujevalno učenje (veja strojnega učenja). Na mednarodni znanstveni konferenci CGAT 2017 mu je bilo za članek “An aspect-based classification of real-time strategy game worlds” podeljeno tudi priznanje za najboljši študentski znanstveni prispevek.  Jani Dugonik je leta 2010 diplomiral in leta 2013 magistriral na Fakulteti za elektrotehniko, računalništvo in informatiko, ki je članica Univerze v Mariboru. Trenutno je doktorski študent in asistent na fakulteti za elektrotehniko, računalništvo in informatiko. Njegova raziskovalna področja vključujejo evolucijsko računanje, optimizacijo, procesiranje naravnega jezika in globoko učenje. 52 Izpitni centri ECDL LJUDSKA UNIVERZA MURSKA SOBOTA ECDL (European Computer Driving License), ki ga v Sloveniji imenujemo evropsko raËunalniπko spriËevalo, je standardni program usposabljanja uporabnikov, ki da zaposlenim potrebno znanje za delo s standardnimi raËunalniπkimi programi na informatiziranem delovnem mestu, delodajalcem pa pomeni dokazilo o usposobljenosti. V Evropi je za uvajanje, usposabljanje in nadzor izvajanja ECDL pooblaπËena ustanova ECDL Fundation, v Sloveniji pa je kot Ëlan CEPIS (Council of European Professional Informatics) to pravico pridobilo Slovensko druπtvo INFORMATIKA. V dræavah Evropske unije so pri uvajanju ECDL moËno angaæirane srednje in visoke πole, aktivni pa so tudi razliËni vladni resorji. Posebno pomembno je, da velja spriËevalo v 148 dræavah, ki so vkljuËene v program ECDL. Doslej je bilo v svetu izdanih æe veË kot 11,6 milijona indeksov, v Sloveniji veË kot 17.000, in podeljenih veË kot 11.000 spriËeval. Za izpitne centre v Sloveniji je usposobljenih osem organizacij, katerih logotipe objavljamo. Znanstveni prispevki Iztok Bitenc, Borut Werber, Marko Urh: Kombinirano učenje – iZKušnje in rešitve Mladen Borovič, Sandi Majninger, Jani Dugonik, Marko Ferme, Milan Ojsteršek: Hibridni pristop Za priporočanje vrstilcev univerZalne decimalne KlasifiKacije Kratki znanstveni prispevki Jan Meznarič, Matjaž Branko Jurič: decentraliZirano in odporno dinamično posodabljanje miKrostoritev strokovni prispevki Inna Pavlova, Alenka Kavčič: resource saving tecHnologies in education: a step towards a green society Aleš Čep, Damijan Novak, Jani Dugonik: samodejno preverjanje pravilnosti študentsKiH nalog iZ programiranja 20 20 ‹ š te v il K a 1 ‹ ja n . f eb . m a r . ‹ l et n iK X Xv iii ‹ is sn 1 31 8 -1 8 8 2 01