Univerza v Ljubljani Fakulteta za računalništvo in informatiko Fakulteta za matematiko in fiziko Martin Jakomin Sistem za avtomatsko ocenjevanje algor
|
|
- Ervin Leban
- pred 4 leti
- Pregledov:
Transkripcija
1 Univerza v Ljubljani Fakulteta za računalništvo in informatiko Fakulteta za matematiko in fiziko Martin Jakomin Sistem za avtomatsko ocenjevanje algoritmov DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN MATEMATIKA Mentor: doc. dr. Tomaž Dobravec Ljubljana 2012
2
3 Rezultati diplomskega dela so intelektualna lastnina avtorja in Fakultete za računalništvo in informatiko Univerze v Ljubljani. Za objavljanje ali izkoriščanje rezultatov diplomskega dela je potrebno pisno soglasje avtorja, Fakultete za računalništvo in informatiko ter mentorja.
4 Namesto te strani vstavite original izdane teme diplomskega dela s podpisom mentorja in dekana ter žigom fakultete.
5 Izjava o avtorstvu diplomskega dela Spodaj podpisani Martin Jakomin, z vpisno številko , sem avtor diplomskega dela z naslovom: Sistem za avtomatsko ocenjevanje algoritmov S svojim podpisom zagotavljam, da: sem diplomsko delo izdelal samostojno pod mentorstvom doc. dr. Tomaža Dobravca so elektronska oblika diplomskega dela, naslov (slov., angl.), povzetek (slov., angl.) ter ključne besede (slov., angl.) identični s tiskano obliko diplomskega dela soglašam z javno objavo elektronske oblike diplomskega dela v zbirki Dela FRI. V Ljubljani, dne 21. septembra 2012 Podpis avtorja:
6 Kazalo POVZETEK ABSTRACT 1 UVOD Kaj je algoritem Kako predstaviti algoritem Kako oceniti algoritem O aplikaciji NAVODILA ZA NAMESTITEV SISTEMA Potrebna programska oprema za delovanje sistema Namestitev potrebne programske opreme Nastavitev Nastavitev podatkovne baze Nastavitev datoteke settings.dat Primer datoteke settings.dat Testni zagon na lokalnem strežniku Zagon aplikacije s strežnikom Apache NAVODILA ZA UPORABO SISTEMA Uporabniška navodila Registracija Prijava
7 KAZALO Odjava Profil Osnovni meni Domov O sistemu Pregled skupin algoritmov Oddaja algoritmov Zahteve za oddane algoritme Stran algoritma Navodila za administratorje Dodajanje uporabniških in administratorskih računov Administratorjeva plošča Pregled uporabnikov Pregled algoritmov Pregled skupin algoritmov Dodajanje nove skupine algoritmov Datoteka meta.dat Program za testiranje algoritmov Testne datoteke Vmesnik Ponovno testiranje vseh algoritmov Oddaja algoritmov z administratorskim računom OCENJEVANJE KAKOVOSTI ALGORITMOV Postopek testiranja algoritmov Zahteve programa za testiranje algoritmov Zahteve za oddane algoritme IMPLEMENTACIJA Splošno o aplikaciji O Djangu Podatkovna baza
8 KAZALO Algoritem Skupina algoritmov Implementacija strežnika Implementacija testiranja algoritmov Abstraktni razred Tester program ZipTest SKLEPNE UGOTOVITVE 45 7 PRILOGE Program ZipTest Kazalo slik LITERATURA 53
9
10 POVZETEK Glavni cilj diplomske naloge je bil ustvariti učinkovit sistem za avtomatsko ocenjevanje algoritmov. Sistem, ki je dovolj robusten in prilagodljiv, hkrati pa učinkovit ne glede na izbrani algoritem. Pri izdelavi sistema je bila ključnega pomena enostavnost uporabe tako za uporabnike, kot tudi za administratorje sistema. Še prej pa je bilo potrebno definirati, kako je v sistemu dejansko predstavljen algoritem. Potrebna je bila poenostavitev in abstrakcija algoritma. V uvodu so na kratko predstavljeni cilji in motivacija, naša predstavitev algoritma v aplikaciji, ter kratek opis same aplikacije. Sledijo navodila za namestitev sistema, ter navodila za uporabnike in administratorje. V četrtem poglavju so opisani postopki ocenjevanja kakovosti algoritmov ter zahteve, ki jih morajo izpolnjevati oddani algoritmi. Nato so predstavljene uporabljene tehnologije in orodja. Sledi sama implementacija sistema, ter sklepne ugotovitve in priloge. Na priloženi zgoščenki se nahaja spletna aplikacija, program za testiranje algoritmov za brezizgubno stiskanje podatkov ZipTest in enostavni primer takšnega algoritma MyZip.
11
12 ABSTRACT The main goal of this diploma thesis was to create efficient system for automatic evaluation of algorithms. The system, which is sufficiently robust and flexible and at same time efficient regardless of the chosen algorithm. When making this system, it was essential to create system, that is easy to use for both users as well as system administrators. But first it was necessary to define how is algorithm actually presented in the system. It took a simplification and abstraction of algorithm. In the introduction, there is a brief presentation of the goals and motivation, representation of algorithm, and a short presentation of application. Following up, are the instructions for installation, and instructions for users and administrators. The fourth chapter gives a description of the procedures for quality evaluation of algorithms, and requirements that must be met by submited algorithms. Then there is a presentantion of the technology and tools used. Following up is the implementation of the system itself. Last but not least there is conclusion and annexes. The included CD-ROM contains web application, testing program for lossless data compression algorithms ZipTest, and simple example of such an algorithm MyZip.
13
14 Poglavje 1 UVOD V življenju se soočamo z vrsto problemov, ki jih lahko rešujemo na najrazličnejše načine. Izdelujemo tako enostavne, kot tudi zapletene algoritme. Vendar ali nam zapletenost algoritma zagotavlja tudi boljšo rešitev od drugih? Kako lahko sploh nepristransko primerjamo dva ali več različnih algoritmov za nek isti problem? Kako lahko na koncu ocenimo algoritme in izberemo najboljšega? Izbrati najboljši algoritem še zdaleč ni tako trivialno kakor se zdi na prvi pogled, še posebej zato, ker obstaja veliko različnih problemov. Lahko pa za različne vrste (kasneje v delu omenjene kot skupine ) algoritmov razvijemo različne ocenjevalne tehnike, ter ocenimo algoritme na podlagi le teh. Prav to je bil tudi namen diplomske naloge, zato smo razvili sistem oziroma spletno aplikacijo, ki omogoča ocenjevanje najrazličnejših vrst algoritmov. Pri tem nam je bila dodatna motivacija tudi dejstvo, da podobni sistemi zaenkrat ne obstajajo. 1.1 Kaj je algoritem Na začetku moramo definirati, kaj algoritem sploh je, oziroma kako ga predstavimo v računalniškem svetu. Pojem algoritem lahko formalno opišemo kot končno, deterministično in učinkovito metodo za reševanje problemov, 1
15 2 POGLAVJE 1. UVOD ki se jo da implementirati kot računalniški program [2]. Drugi način opisa algoritma pa pravi, da je algoritem zaporedje računskih korakov, ki pretvorijo vhodne podatke v izhodne [1]. Algoritem je torej lahko karkoli, kar zadošča tem pogojem. Za lažjo predstavitev v našem sistemu bomo morali definirati pojem abstraktnega algoritma. 1.2 Kako predstaviti algoritem Algoritem lahko definiramo s tem, da mu natančno opišemo postopke oziroma korake za rešitev nekega problema. Natančnost definicije algoritma lahko zagotovimo s tem, da algoritem predstavimo v obliki računalniškega programa, saj je tako lažje preveriti ali je algoritem končen, determinističen in učinkovit. Kako torej predstaviti algoritem v našem sistemu? Kakšno definicijo je treba uporabiti, da bomo zajeli, kar največ različnih vrst algoritmov? V ta namen bomo najprej definirali vrsto oziroma skupino algoritmov. Vsaka skupina algoritmov je objekt s svojim unikatnim imenom, z do deset različnih merljivih kriterijev, kateri lahko ocenijo primere algoritmov teh skupin in s programom, ki avtomatsko oceni te kriterije. Za definicijo samega algoritma potrebuje vsaka skupina tudi svoj vmesnik, kateri natančno predpisuje metode, ki jih mora definirati vsak primer dane skupine. Vmesnik natančno določi tudi vhodne in izhodne podatke. S tem lahko definiramo algoritem kot vsak program, ki pravilno implementira vse metode, ki jih predpisuje nek vmesnik, ki je del neke skupine algoritmov v našem sistemu. Definiramo tudi objekt algoritem z unikatnim imenom in z do deset različnih številskih polj za rezultate. Z vpeljavo teh dveh objektov, bomo v nadaljevanju lahko med seboj primerjali in ocenjevali algoritme istih skupin.
16 1.3. KAKO OCENITI ALGORITEM Kako oceniti algoritem Kateri algoritem je najboljši pri danem problemu je težko določiti. Na to vpliva zelo veliko dejavnikov. Osredotočili se bomo na učinkovitost algoritma pri porabljanju računalniških virov, kot sta na primer poraba pomnilnika ali čas izvajanja. Teoretični pristop testiranja te učinkovitosti bi bil s pomočjo matematičnih modelov in napovedovanjem same učinkovitosti algoritmov. Na primer asimptotično ocenjevanje računske zahtevnosti. Mi pa bomo uporabili bolj praktični pristop. S pomočjo našega sistema in posebnimi programi za testiranje in ocenjevanje bomo testirali vse algoritme. Za vsako skupino algoritmov bomo uporabili različne programe, ter s tem zajeli kar največ različnih načinov ocenjevanja različnih vrst algoritmov. Samo oceno kakovosti algoritma lahko potem ocenimo s pomočjo do deset rezultatov oziroma kriterijev, katere vrne program za testiranje. Rezultate lahko nato primerjamo tudi z rezultati drugih algoritmov iste skupine s pomočjo razpredelnic in grafov. 1.4 O aplikaciji Razvita aplikacija omogoča uporabnikom, da se prijavijo v sistem in preko spleta pošiljajo svoje algoritme na strežnik, kjer se nepristransko ocenijo. Uporabnik lahko nato preveri svoje rezultate in jih s pomočjo preglednic in grafov tudi primerja s standardnimi algoritmi (algoritmi, ki so že shranjeni v aplikaciji in predstavljajo neko mejo za ostale algoritme) in z algoritmi, ki so jih oddali drugi uporabniki. Uporabniki lahko oddajajo le algoritme za probleme, za katere tisti trenutek obstaja podpora v sistemu. Nove probleme oziroma nove skupine algoritmov lahko dodaja skrbnik sistema oziroma administrator. Njegova naloga je tudi, da pri vsaki skupini algoritmov natančno določi zahteve, katere morajo izpolnjevati oddani algoritmi. Administrator lahko kadarkoli izvrši ponovno testiranje vseh algoritmov.
17 4 POGLAVJE 1. UVOD S tem poskrbi, da imajo vsi algoritmi ob morebitni posodobitvi strojne opreme ali menjavi strežnika enake in nepristranske pogoje testiranja.
18 Poglavje 2 NAVODILA ZA NAMESTITEV SISTEMA Navodila in postopki opisani v tem predelu se nanašajo na delo z operacijskim sistemom Ubuntu, ter strežnikoma Apache in MySQL. Sistem deluje tudi na drugih operacijskih sistemih, kot na primer Windows Potrebna programska oprema za delovanje sistema Python 2.7 Java Jdk MySQL Apache 2 Apache WSGI Pip Django 1.4 5
19 6 POGLAVJE 2. NAVODILA ZA NAMESTITEV SISTEMA MySQL-python MySQL Connector J 2.2 Namestitev potrebne programske opreme Python: Python verzije 2.7 je dostopen na spletnem naslovu: Java: Potrebna orodja za delovanje z Javo (JDK - Java Development Kit) so dostopna na naslovu: javase/downloads/index.html MySQL: Strežnik SQL je dostopen na spletnem naslovu mysql.com/downloads/ Apache: strežnik Apache je dostopen na spletnem naslovu: httpd.apache.org/download.cgi Apache WSGI: Modul WSGI za Apache namestimo z naslednjim ukazom: $ sudo apt-get install apache2 libapache2-mod-wsgi Pip: Orodje Pip namestimo z naslednjimi ukazi: $ sudo su $ apt-get install curl $ curl -O $ python distribute_setup.py $ curl -O $ python get-pip.py
20 2.3. NASTAVITEV 7 MySQLPython: Django in MySQLPython namestimo tako, da se pomaknemo v mapo Alg. Nato je potrebno pognati naslednji ukaz: $ pip install -r requirements.txt MySQL Connector J: Knjižnica je dostopna na spletnem naslovu: http: // Namestitev knjižnice MySQL Connector J ni potrebna, saj se ta že nahaja v mapi Alg/additional resources/lib. 2.3 Nastavitev Nastavitev podatkovne baze Potrebno je zagnati strežnik SQL in ustvariti novo podatkovno bazo. izvršimo z ukazom: To CREATE DATABASE <ime podatkovne baze>; Za ustvaritev potrebnih tabel v podatkovni bazi in normalno delovanje sistema je potrebno pognati program manage.py. To izvedemo s premikom v mapo Alg in z zagonom ukaza: $ python manage.py syncdb Program nam pri tem ponudi možnost, da ustvarimo administratorski račun (slika 2.1). Potrebno je vnesti uporabniško ime, elektronski naslov in geslo. V primeru da se za ta korak ne odločimo bomo morali kasneje sami ustvariti administratorski račun Nastavitev datoteke settings.dat Datoteka settings.dat se nahaja v mapi Alg/additional resources, v katero je potrebno zapisati podatke o podatkovni bazi, ter nekatere druge podatke, ki omogočajo pravilno delovanje sistema. Vsi podatki morajo biti zapisani ločeno v novih vrsticah.
21 8 POGLAVJE 2. NAVODILA ZA NAMESTITEV SISTEMA Slika 2.1: Ustvaritev tabel in administratorskega računa V datoteko moramo vpisati ime podatkovne baze (katera je bila ustvarjena v prejšnjem koraku) skupaj s ključno besedo name=, uporabniško ime in geslo za dostop do baze (pred njima je potrebno zapisati user= in password= ), ter ime gostitelja in vrata s ključnima besedama host= in port=. Za pravilno delovanje prevajalnika je potrebno navesti tudi pot do mape, kjer se nahaja Java JDK. Pred potjo je treba navesti path to jdk=. Pot, kjer se med testiranjem ustvari mapa (in po končanju tudi izbriše), v kateri poteka samo testiranje algoritmov, je privzeto nastavljena na Alg/testing env. Za spremembo poti je potrebno v datoteko zapisati path to test env= in želeno pot. Na koncu je potrebno zapisati še količino maksimalne dovoljene velikosti prenesenih datotek, izraženih v bajtih, s ključno besedo max size=. Primer datoteke settings.dat
22 2.3. NASTAVITEV 9 //Database data: databasename, username, password, host, port name=alg user=root password=e2ff4wb host=localhost port=3306 //Path to java jdk path_to_jdk=c:/program Files/Java/jdk1.7.0_05 //Path to testing environment directory (directory must not yet //exist, it will be created at start and delete itself at the end) //If left blank, "ROOT_DIR"/testing_env/ will be used path_to_test_env= // maximum upload size (in bytes) max_size= Testni zagon na lokalnem strežniku Za testni zagon aplikacije na lokalnem strežniku je potrebno pognati ukaz: $ python manage.py runserver [vrata ali naslov:vrata] Če izpustimo naslov in vrata, se avtomatsko privzame naslov in vrata Hkrati mora biti zagnan tudi strežnik SQL Zagon aplikacije s strežnikom Apache Za zagon aplikacije na strežniku Apache je potrebno v mapi, kjer je nameščen Apache, odpreti datoteko httpd.conf in v njo dodati: WSGIScriptAlias / <pot do mape Alg>/alg/wsgi.py WSGIPythonPath <pot do mape Alg> Alias /static <pot do mape Alg>/alg/frontend/static
23 10 POGLAVJE 2. NAVODILA ZA NAMESTITEV SISTEMA
24 Poglavje 3 NAVODILA ZA UPORABO SISTEMA 3.1 Uporabniška navodila Registracija Preden se lahko uporabnik prijavi v spletno aplikacijo, se mora najprej registrirati. To lahko naredi s klikom na gumb Register v desnem zgornjem kotu (slika 3.1). Prikaže se spletni obrazec (slika 3.2), v katerem je potrebno izpolniti vsa njegova polja: uporabniško ime, ki mora biti enolično in sestavljeno le iz črk, številk ali geslo, geslo (ponovno), ime, priimek in elektronska pošta. Registracija se zaključi s pritiskom na gumb Register na obrazcu spodaj. Slika 3.1: Prijava in registracija v zgornjem desnem kotu 11
25 12 POGLAVJE 3. NAVODILA ZA UPORABO SISTEMA Prijava Slika 3.2: Obrazec za registracijo V aplikacijo se lahko uporabnik prijavi s klikom na gumb Login v zgornjem desnem kotu. Za prijavo sta potrebna uporabniško ime in geslo (slika 3.3). S prijavo imajo uporabniki (glede na dodeljene pravice) možnost dostopa do nekaterih delov aplikacij, ki so drugače nedostopni. Na primer možnost oddaje svojih algoritmov Odjava Po končanem delu v spletni aplikaciji je priporočeno, da se uporabnik odjavi iz aplikacije. To lahko naredi s klikom na gumb Logout v desnem zgornjem kotu Profil Do lastne strani s profilom lahko uporabnik dostopa s klikom na svoje uporabniško ime v zgornjem desnem kotu. Odpre se stran s podatki o uporabniku
26 3.1. UPORABNIŠKA NAVODILA 13 Slika 3.3: Obrazec za prijavo in povezavo do njegovih oddanih algoritmov (slika 3.4). Slika 3.4: Profil uporabnika Osnovni meni Osnovni meni (slika 3.5) aplikacije je sestavljen iz naslednjih komponent: domov, o sistemu, pregled skupin algoritmov in oddaja algoritmov. Privile-
27 14 POGLAVJE 3. NAVODILA ZA UPORABO SISTEMA girani uporabniki oziroma administratorji imajo v osnovnem meniju dostop tudi do administratorjeve plošče. Slika 3.5: Osnovni meni Domov S klikom na gumb Domov se uporabniku odpre domača stran (slika 3.6) O sistemu S klikom na gumb About se uporabniku odpre stran z informacijami o sistemu. Stran vsebuje kratek opis sistema z njegovimi osnovnimi podatki. Slika 3.6: Domača stran
28 3.1. UPORABNIŠKA NAVODILA Pregled skupin algoritmov Do seznama skupin algoritmov lahko pride uporabnik s klikom na gumb Algorithms. Odpre se stran s seznamom vseh skupin algoritmov urejenih v padajočem abecednem redu (slika 3.7). S klikom na ime skupine algoritmov se odpre nova stran (slika 3.8) z osnovnimi podatki in opisom, ter s tremi povezavami: primeri, vmesnik in oddaja algoritma. Povezava primeri ( Examples ) nudi dostop do vseh oddanih algoritmov, ki pripadajo tej skupini, povezava oddaja algoritma ( Submit algorithm ) pa dostop do spletnega obrazca za oddajo algoritma (obrazec ima polje skupina že nastavljeno). S klikom na povezavo Interface se prenese vmesnik, ki ga določa skupina algoritmov. Slika 3.7: Pregled skupin algoritmov Slika 3.8: Skupina algoritmov
29 16 POGLAVJE 3. NAVODILA ZA UPORABO SISTEMA Oddaja algoritmov Oddaja algoritmov je možna na več načinov. S klikom na povezavo na strani izbrane skupine algoritmov (kot je opisano v prejšnjem odstavku) ali pa s klikom na gumb Submit algorithm. Oba načina sta dostopna le prijavljenim uporabnikom. Pri obeh načinih se odpre spletna stran z istim obrazcem (slika 3.9), le da je pri dostopu s povezavo s strani algoritma že izpolnjeno obvezno polje skupina z imenom izbrane skupine algoritmov. Poleg tega ima obrazec še dva obvezna polja: ime algoritma (ki mora biti enolično in sestavljeno le iz črk, številk ali podčrtajev ter polje za dodajanje datotek, kjer s klikom na gumb Izberi datoteko izberemo algoritem, ki ga želimo oddati. Obrazec ima nato še dve neobvezni polji, ki jih ni potrebno izpolniti za uspešno oddajo algoritma. To sta polji opis in kratek opis. Slika 3.9: Obrazec za oddajo algoritmov
30 3.1. UPORABNIŠKA NAVODILA 17 Zahteve za oddane algoritme Oddani algoritmi morajo zadostiti vsem zahtevam opisanim v odstavku 4.3 Zahteve za oddane algoritme Če oddani algoritem ne izpolnjuje danih zahtev (na primer ne implementira zahtevanih metod ali pa je sintaktično nepravilen), sistem avtomatsko javi napako. V tem primeru se oddani algoritem izbriše iz podatkovne baze, uporabniku pa se prikaže spletna stran z opisom napake (slika 3.10 in slika 3.11). Ob uspešni oddaji in testiranju algoritma spletna stran avtomatsko preusmeri uporabnika na stran algoritma, katerega je oddal. Slika 3.10: Napaka pri prevajanju programa Slika 3.11: Napaka pri izvajanju algoritma
31 18 POGLAVJE 3. NAVODILA ZA UPORABO SISTEMA Stran algoritma Do strani algoritma je možen dostop na več načinov. Prvi način je možen v pregledu skupin algoritmov, najprej s klikom na ime skupine, kateri želeni algoritem pripada, nato s klikom na povezavo Examples ter nazadnje s klikom na ime želenega algoritma. Drugi način zahteva klik na povezavo uporabnikovih oddanih algoritmov na strani s profilom uporabnika, ki je želeni algoritem oddal, ter klik na samo ime želenega algoritma. Tretji način predstavlja avtomatska preusmeritev ob uspešni oddaji algoritma, četrti pa kar direkten dostop preko naslova: /algorithms/<ime skupine algoritmov>/<id algoritma>/ Stran vsebuje osnovne podatke o algoritmu (slika 3.12 in slika 3.13) ter njegove rezultate pri testiranju. Spodaj se prikažeta tudi razpredelnica z rezultati ostalih algoritmov iste skupine, ki je urejena glede na vrednost prvega kriterija v naraščajočem vrstnem redu in stolpičasti graf vseh algoritmov z vrednostmi prvega kriterija. Slika 3.12: Stran algoritma
32 3.2. NAVODILA ZA ADMINISTRATORJE 19 Slika 3.13: Rezultati 3.2 Navodila za administratorje Dodajanje uporabniških in administratorskih računov Uporabnike se dodaja tako, da se jih registrira (glej odstavek Registracija ). Za dodajanje novih administratorskih računov je potrebno obstoječim uporabniškim računom v podatkovni bazi spremeniti vrednost polja is superuser na 1, kar se da storiti na več načinov. Najprej je potrebno zagnati strežnik SQL in nato izvršiti enega izmed naslednjih ukazov: V primeru da poznamo uporabnikov id: UPDATE <ime podatkovne baze>.auth_user SET is_superuser=1 WHERE id=<id uporabnika>; V primeru da poznamo uporabnikovo uporabniško ime: UPDATE <ime podatkovne baze>.auth_user SET is_superuser=1 WHERE username=<ime>;
33 20 POGLAVJE 3. NAVODILA ZA UPORABO SISTEMA Administratorjeva plošča Do administratorjeve plošče lahko dostopajo le privilegirani uporabniki. S prijavo v spletno aplikacijo z administratorskim računom se administratorju v osnovnem meniju pojavi gumb Admin. S klikom nanj se odpre administratorjeva plošča (slika 3.14). Sestavljajo jo naslednje povezave: uporabniki, algoritmi, skupine algoritmov, dodaj novo skupino algoritmov in ponovno testiranje vseh algoritmov. Slika 3.14: Administratorjeva plošča Pregled uporabnikov S klikom na povezavo Users se odpre spletna stran s seznamom vseh uporabnikov (slika 3.15). S klikom na uporabniško ime se odpre uporabnikova stran s profilom Pregled algoritmov S klikom na povezavo Algorithms se odpre spletna stran s seznamom vseh algoritmov (slika 3.16). Pri vsakem algoritmu so na voljo tri povezave: povezava do algoritma ter povezavi uredi in izbriši. Za urejanje algoritmov služi povezava Edit. S klikom nanjo se odpre nova stran s spletnim obrazcem,
34 3.2. NAVODILA ZA ADMINISTRATORJE 21 Slika 3.15: Pregled uporabnikov kjer je možno spremeniti polja kratek opis, opis in polje Default algorithm, ki označuje ali algoritem spada v skupino standardnih algoritmov. S klikom na povezavo Delete je možno izbrisati izbrani algoritem. Odpre se nova stran, kjer je potrebno potrditi izbris s klikom na gumb Delete. Slika 3.16: Pregled algoritmov
35 22 POGLAVJE 3. NAVODILA ZA UPORABO SISTEMA Pregled skupin algoritmov S klikom na povezavo Groups se odpre spletna stran Pregled skupin algoritmov (glej odstavek Pregled skupin algoritmov ). Administratorjem sta na voljo še dve dodatni povezavi: uredi in izbriši (slika 3.17). S klikom na povezavo Edit se odpre spletna stran z obrazcem, ki vsebuje enaka polja kot obrazec za dodajanje skupin algoritmov. Urejanje se zaključi s klikom na gumb Edit. Izbrano skupino algoritmov je možno izbrisati s klikom na povezavo Delete. Pred izbrisom je potrebno potrditi izbiro s klikom na gumb Delete. Pri izbrisu skupine algoritmov, se hkrati izbrišejo tudi vsi oddani algoritmi, ki pripadajo tej skupini algoritmov. Slika 3.17: Administratorski pregled skupin Dodajanje nove skupine algoritmov S klikom na povezavo Add new group na administratorjevi plošči se odpre stran s spletnim obrazcem za dodajanje novih skupin algoritmov (slika 3.18). Potrebno je izpolniti dve obvezni polji: ime skupine algoritmov in polje za dodajanje datotek. Polje opis ni obvezno. Pri vsakem dodajanju novih skupin algoritmov je potrebno oddati naslednje datoteke (primere vseh potrebnih datotek najdemo v mapi ZipTest ): datoteka meta.dat ; program za testiranje algoritmov;
36 3.2. NAVODILA ZA ADMINISTRATORJE 23 Slika 3.18: Dodajanje nove skupine algoritmov morebitne testne datoteke, ki so potrebne za delovanje programa za testiranje algoritmov; vmesnik za algoritme. Datoteka meta.dat Datoteka meta.dat vsebuje osnovne podatke o skupini algoritmov. V prvih vrsticah mora vsebovati opise rezultatov ločene z novimi vrsticami. Nato mora slediti prazna vrstica in ime programa za testiranje algoritmov, ter nova prazna vrstica in ime vmesnika. Primer datoteke meta.dat: Time (in milliseconds) Compress rate
37 24 POGLAVJE 3. NAVODILA ZA UPORABO SISTEMA ZipTest.jar Zip.java Program za testiranje algoritmov Program, ki testira in ocenjuje oddane algoritme ter nato vpiše rezultate testiranja v podatkovno bazo. Zahteve katere mora izpolniti vsak program za testiranje algoritmov najdemo v odstavku 4.2 Zahteve programa za testiranje algoritmov. Testne datoteke Oddati je potrebno vse datoteke, ki jih program za testiranje algoritmov morebiti potrebuje. Vmesnik Vmesnik, ki definira vse potrebne metode, katere mora implementirati vsak oddani algoritem Ponovno testiranje vseh algoritmov S klikom na povezavo Re-Test se odpre spletna stran za potrditev izbrane izbire. Administrator lahko potrdi izbiro s klikom na gumb Re-Test. Ponovno testiranje algoritmov lahko traja dlje časa. Čas izvajanja je odvisen od števila in zahtevnosti vseh algoritmov Oddaja algoritmov z administratorskim računom Uporabniki z administratorskimi pravicami oddajajo algoritme enako kot ostali uporabniki (glej odstavek Oddaja algoritmov ). Pri tem imajo še dodatno možnost, da oddani algoritem označijo za standardnega. To lahko storijo tako, da v spletnem obrazcu (slika 3.19) odkljukajo polje Default algorithm. Za administratorje prav tako veljajo enaka pravila glede priloženih datotek.
38 3.2. NAVODILA ZA ADMINISTRATORJE 25 Slika 3.19: Administratorsko dodajanje algoritmov
39 26 POGLAVJE 3. NAVODILA ZA UPORABO SISTEMA
40 Poglavje 4 OCENJEVANJE KAKOVOSTI ALGORITMOV 4.1 Postopek testiranja algoritmov Za ocenjevanje kakovosti algoritmov v spletni aplikaciji skrbi poseben program imenovan program za testiranje algoritmov. Za vsako skupino algoritmov se ta program razlikuje od ostalih. Na ta način lahko ocenjujemo zelo različne vrste oziroma skupine algoritmov. Vse te programe pa mora sprogramirati in dodati v sistem administrator sam. Da to ne bi bila prezahtevna naloga mu je v pomoč abstraktni razred Tester, ki definira vse potrebne metode za pripravo algoritma na testiranje. Samo testiranje oziroma ocenjevanje algoritmov poteka po vnaprej določenemu vrstnemu redu. Najprej uporabnik na spletni strani izpolni obrazec in doda svoj program oziroma algoritem ter klikne na gumb Submit. Spletna aplikacija nato preveri vsebino obrazca in če ne najde nobenih napak v podatkovno bazo shrani nov objekt tipa algoritem. Sledi kopiranje vseh potrebnih datotek za delovanje programa za testiranje algoritmov v novo mapo, katere pot je določena v nastavitvah sistema. V to mapo se kopirajo vse datoteke, ki se nahajajo v mapi skupine algoritmov, kateri novi objekt pripada, uporabnikov program, ter datoteke iz mape 27
41 28 POGLAVJE 4. OCENJEVANJE KAKOVOSTI ALGORITMOV additional resources. Nato strežnik zažene nov sistemski proces v katerem se izvede tisti program za testiranje algoritmov, ki ga določa skupina algoritmov. Programu doda še prvi argument, ki je enak id -ju algoritma. Program za ocenjevanje algoritmov iz podatkovne baze prebere ime uporabnikovega programa, katerega tudi prevede. Če med prevajanjem ne pride do nobenih napak program naloži vse razrede, ki jih uporabnikov algoritem potrebuje. Ti razredi oziroma njihovi objekti se nato uporabijo v samem ocenjevanju kakovosti algoritma. Do te stopnje, so bili vsi koraki enaki za vse programe različnih skupin algoritmov. Za vse te korake poskrbi že abstraktni razred Tester sam. Sledijo koraki, ki so lahko pri vsaki skupini algoritmov različni. Ti koraki predstavljajo samo testiranje algoritma, ki se odvija v posebni metodi test(), katero mora definirati vsak program za testiranje algoritmov. V tej metodi lahko skrbnik sistema implementira želeno testiranje. Testiranje je lahko kakršnokoli, edina omejitev je število kriterijev oziroma rezultatov, ki ocenjujejo nek algoritem. Na voljo ima največ deset številskih mest za rezultate. Vse načine testiranja pa mora opisati oziroma sprogramirati sam. Na koncu mora zapisati rezultate v pravilnem vrstnem redu, da ti sovpadajo z opisi rezultatov, ki so nastavljeni ob ustvaritvi skupine algoritmov. Primer takšne implementacije testiranja je program ZipTest (priloga 7.1). Program je namenjen testiranju algoritmov za brezizgubno stiskanje podatkov. Program najprej preusmeri vse podatkovne tokove v začasno datoteko. To stori zato, da na strežnikov standardni izhod ne prihajajo stvari iz uporabnikovega programa. Nato s pomočjo naloženega objekta algoritma katerega testira, pokliče njegovo metodo compress, katera predstavlja samo stiskanje podatkov. Kot argument doda vnaprej določeno testno datoteko, pred tem pa si še zabeleži čas. Prav tako si zabeleži čas ob koncu izvajanja metode in tako dobi čas izvajanja algoritmovega stiskanja podatkov. Nato preveri velikost izhodne datoteke uporabnikove metode compress in s tem izračuna stopnjo
42 4.2. ZAHTEVE PROGRAMA ZA TESTIRANJE ALGORITMOV 29 stiskanja. Potem pokliče še algoritmovo metodo uncompress, ter preveri če se izhodna datoteka ujema z originalno datoteko. Na koncu zapiše stanje in rezultate v podatkovno bazo. V polje status zapiše Done če se je izvajanje uspešno izvedlo in če algoritem ustreza vsem pogojem. V nasprotnem primeru v polje status zapiše napako do katere je prišlo med izvajanjem. Nato v polje result1 vpiše čas izvajanja stiskanja podatkov, v polje result2 pa stopnjo stiskanja. S tem se izvajanje programa za testiranje algoritmov zaključi. Zatem spletna aplikacija najprej preveri izhodno stanje, ki ga vrne podproces. Če je prišlo do notranje napake med izvajanjem samega programa, aplikacija izbriše objekt algoritem in vse njegove datoteke na strežniku, uporabniku pa prikaže spletno stran z obvestilom o napaki. Če pa je prišlo do napake med prevajanjem ali pa algoritem ni izpolnjeval vseh zahtev, aplikacija prav tako izbriše objekt in datoteke, ter prikaže spletno stran z opisom napake. Morebitno napako aplikacija odkrije z vpogledom v polje status v podatkovni bazi. V primeru, da se je izvajanje programa uspešno zaključilo in da je testirani algoritem izpolnil vse zahteve, se uporabniku prikaže stran z rezultati (odstavek Stran algoritma ). Aplikacija iz podatkovne baze prebere vsa polja z rezultati algoritmov, ki pripadajo isti skupini algoritmov kot oddani algoritem ter jih prikaže v razpredelnici. Rezultati so urejeni glede na vrednost prvega kriterija v naraščajočem vrstnem redu. Algoritmi, ki pripadajo zbirki standardnih algoritmov so obarvani rdeče. Spodaj pod razpredelnico se nahaja tudi stolpičasti graf, ki prikazuje vrednosti prvega kriterija vseh algoritmov, ki pripadajo isti skupini algoritmov. 4.2 Zahteve programa za testiranje algoritmov Program mora biti v napisan v programskem jeziku Java in oddan v formatu.jar. Program mora razširiti abstraktni razred Tester (datoteka Te-
43 30 POGLAVJE 4. OCENJEVANJE KAKOVOSTI ALGORITMOV ster.java je dostopna v mapi Alg/additional resources ) in mora definirati abstraktno metodo test(). Metoda test() je glavna metoda sistema saj v njej poteka testiranje in ocenjevanje drugih algoritmov. V tej metodi je potrebno klicati metode algoritmov, ki se testirajo in jih kasneje tudi natančno opisati v vmesniku, katerega je potrebno priložiti programu. Poskrbeti je potrebno za pravilno delovanje teh metod, ter ocenit samo kakovost izvajanja (na primer: čas izvajanja ali poraba pomnilnika). Na koncu je potrebno nastaviti atributa results in status. V pomoč metodi test() so na voljo naslednje metode abstraktnega razreda Tester: statuserror(), getid(), getcompileresult(), getstatus(), getalgclass(), getalgobject(), getrootdir(), setresults(string[] results) in set- Status(String[] status). Vse naštete metode so opisane v odstavku Abstraktni razred Tester. V programu je potrebno definirati tudi konstruktor, ki sprejme niz id, ter v njem kliče metodo super(id). Prav tako je potrebno definirati metodo main() v kateri mora program ustvariti objekt svojega tipa z atributom id katerega program dobi kot prvi argument metode main(). Preveriti je potrebno, če so vsi atributi pravilno nastavljeni. To se da preveriti s klicem metode t.statuserror(), ki vrne False, če ni prišlo do nobenih napak. Nato je potrebno poklicati metodi test() in writeresults(). Prav tako je v programu potrebno poskrbeti za vse možne izjeme in napake, ki bi lahko nastale med testiranjem algoritmov. Priporočljivo je, da v metodi test() nastavimo maksimalen čas izvajanja algoritma, katerega lahko potem tudi prekinemo če je to potrebno. Prav tako je tudi priporočljivo, da pred samim začetkom izvajanja programa preusmerimo podatkovne tokove, saj v nasprotnem primeru, če karkoli zaide na standardni izhod, sistem javi napako: Internal error. Primer programa za testiranje algoritmov, ki izpolnjuje vse dane zahteve najdemo v prilogi (priloga 7.1). Za pravilno delovanje razreda Tester je potrebno programu dodati
44 4.3. ZAHTEVE ZA ODDANE ALGORITME 31 knjižnico MYSQL Connector J, ki je dostopna v mapi Alg/additional resources/lib. 4.3 Zahteve za oddane algoritme Oddani program, ki definira uporabnikov algoritem mora biti napisan v programskem jeziku Java, ter mora biti oddan v eni sami datoteki tipa.java, ki ne sme biti večja od maksimalne predpisane veličine. Program mora implementirati vmesnik, ki je natančno določen pri vsaki skupini algoritmov in je dostopen ter natančno opisan na strani vsake skupine algoritmov. To pomeni, da mora uporabnik v svojem programu natančno definirati vse metode, katere predpisuje dani vmesnik. Te metode natančno opisujejo tudi vhodne in izhodne podatke algoritma. V teh metodah mora uporabnik implementirati vse korake svojega algoritma. Primer zelo preprostega algoritma za brezizgubno stiskanje podatkov, ki zadostuje vsem zahtevam, ki jih določa vmesnik te skupine algoritmov, najdemo v mapi MyZip (datoteka MyZip.java ).
45 32 POGLAVJE 4. OCENJEVANJE KAKOVOSTI ALGORITMOV
46 Poglavje 5 IMPLEMENTACIJA 5.1 Splošno o aplikaciji Spletna aplikacija je večinoma napisana v programskem jeziku Python in deloma v programskem jeziku Java. Strežniški del, ki skrbi za izmenjavo spletnih zahtev sloni na ogrodju Django in je v celoti napisan v programskem jeziku Python. Del, ki testira same algoritme pa je napisan v programskem jeziku Java. Oba dela sistema uporabljata relacijsko podatkovno bazo MySQL. 5.2 O Djangu Django je odprtokodno ogrodje za izdelovanje spletnih aplikacij napisano v programskem jeziku Python. Namenjen je poenostavitvi izdelovanja zapletenih spletnih aplikacij. Django zagovarja hiter razvoj, programiranje s čim manj programske kode in s čim manj ponavljanja, čim večjo abstrakcijo, ter popolno neodvisnost med posameznimi plastmi ogrodja. Ogrodje bazira na arhitekturi MVC (model-view-controller) oziroma modelpogled-krmilnik, vendar pa Django uporablja malce drugačno poimenovanje: MTV (model-template-view) oziroma model-predloga-pogled. 33
47 34 POGLAVJE 5. IMPLEMENTACIJA Pogled predstavlja povratno funkcijo, ki točno določenim naslovom URL preslika podatke. Ti podatki se potem prikažejo v obliki katero določi predloga. Model pa opisuje, kako so podatki shranjeni. Vse podatke lahko predstavimo kot objekte v programskem jeziku Python, saj Django avtomatsko nudi preslikavo med Pythonovimi objekti in relacijskimi bazami. 5.3 Podatkovna baza Program uporablja Djangove tabele za avtentikacijo in sejo. Glavni tabeli v sistemu pa predstavljata tabeli algoritem in skupina algoritmov. Shema baze je predstavljena v sliki Algoritem Tabela algoritem vsebuje polja: primarni ključ id ; časovno polje datum oddaje algoritma; ime algoritma; tuji ključ avtor algoritma (kaže na tabelo uporabnikov); tuji ključ skupina algoritma (kaže na tabelo skupine algoritmov); polje ki označuje standardne algoritme; kratek opis; opis; status; pot do naložene datoteke; deset številskih polj za rezultate.
48 5.4. IMPLEMENTACIJA STREŽNIKA Skupina algoritmov Tabela skupina algoritmov vsebuje polja: primarni ključ id ; ime skupine; opis; polje za naložene datoteke; ime testnega programa; ime vmesnika; deset črkovnih polj za opise rezultatov. 5.4 Implementacija strežnika Kot že omenjeno je strežniški del implementiran s pomočjo ogrodja Django. Programiranje sistema smo razdelili na štiri dele ( apps ): frontend, account, admin in algorithm. Front end mapa Alg/alg/frontend Skrbi za zunanjo podobo spletne aplikacije. Definira osnovni izgled strani ter vsebuje pogleda za domačo stran in stran o sistemu. Hrani tudi vse statične datoteke. Pogledi (datoteka views.py ): class HomeView - pogled za domačo stran; class AboutView - pogled za stran o sistemu. Predloge (mapa templates ): plain - osnovni izgled strani. Vse strani razširjajo to datoteko;
49 36 POGLAVJE 5. IMPLEMENTACIJA Slika 5.1: Shema baze
50 5.4. IMPLEMENTACIJA STREŽNIKA 37 forms - izgled spletnih obrazcev; home in about - izgled domače strani in strani o sistemu. Vsebuje tudi mapo static s statičnimi datotekami kjer se nahajajo mape: Slike, datoteke CSS, datoteke Javascript in mapa z vmesniki. Account mapa Alg/alg/account Skrbi za registracijo in uporabnikovo stran s profilom. Za prijavo in odjavo skrbi Django sam. Definira izglede uporabnikove strani, registracijo, prijavo in odjavo. Pogledi (datoteka views.py ): class RegistrationView - pogled, ki preverja spletne obrazce za registracijo in ustvarja nove uporabnike v podatkovni bazi; class ProfileView - pogled za uporabnikovo stran s profilom. Predloge (mapa templates ): user - izgled uporabnikove strani; registration, login - izgled strani registracija in prijava (razširja form). Datoteka forms.py : class RegistrationForm - razred, ki ustvari spletni obrazec za registracijo. Admin mapa Alg/alg/admin Skrbi za administracijo sistema. Vsebuje poglede administratorjeve plošče in skrbi za dodajanje novih skupin algoritmov. Pogledi (datoteka views.py ): class MainView - pogled za stran z administratorjevo ploščo; class UserListView - pogled, ki v podatkovni bazi poišče vse uporabnike;
51 38 POGLAVJE 5. IMPLEMENTACIJA class AlgorithmListView - pogled, ki v podatkovni bazi poišče vse algoritme; class AddGroupView - pogled, ki preverja spletne obrazce za dodajanje novih skupin algoritmov in ustvarja nove skupine; ReTestView - pogled za ponovno testiranje algoritmov. Kliče metodo retest(); setinterface(group,name) - metoda, ki ustvari novo mapo z vmesnikom skupine v mapi static/interfaces ; setadditionalinfo(id) - metoda, ki v podatkovni bazi nastavi ime programa za testiranje algoritmov in ime vmesnika; retest() - metoda, ki na novo testira vse algoritme. Predloge (mapa templates ): admin home - izgled strani z administratorjevo ploščo; add new group - izgled strani za dodajanje novih algoritmov (razširja file form). Datoteka forms.py : class AddGroupForm - razred, ki ustvari spletni obrazec za dodajanje novih skupin algoritmov. Algorithm mapa Alg/alg/algorithm Skrbi za delovanje aplikacije z algoritmi. Definira objekta algoritem in skupina algoritmov. Prav tako skrbi za klicanje programov za testiranje algoritmov. Definira izglede strani algoritmov in predstavo rezultatov v razpredelnicah in grafih. Modeli (datoteka models.py ):
52 5.4. IMPLEMENTACIJA STREŽNIKA 39 class Algorithm - model, ki predstavlja algoritem (vsebovana polja so opisana v pododstavku Algoritem odstavka 5.3 Podatkovna baza ); class AlgorithmGroup - model, ki predstavlja skupino algoritmov (vsebovana polja so opisana v pododstavku Skupina algoritmov odstavka 5.3 Podatkovna baza ); class RestrictedFileField - Polje za dodajanje datotek z omejitvami. Razred tudi definira vse omejitve; setdata() - metoda, ki pokliče program za testiranje algoritmov; get upload folder(instance, filename) - metoda, ki vrne pot do mape, kamor se shranjujejo naložene datoteke; copydata(path1, path2, path3, destination) - metoda, ki skopira vse datoteke v mapah path1, path2 in path 3 v mapo destination. Pogledi (datoteka views.py ): class MainView - pogled, ki v podatkovni bazi poišče vse skupine algoritmov; class groupview - pogled za skupino algoritmov; class grouplistview - pogled, ki v podatkovni bazi poišče vse algoritme, ki pripadajo določeni skupini algoritmov; class SubmitAlgorithmView - pogled, ki preverja spletne obrazce za dodajanje novih algoritmov in ustvarja nove algoritme; class UserAlgorithmsView - pogled, ki v podatkovni bazi poišče vse algoritme, ki pripadajo določenemu uporabniku; class AlgorithmView - pogled, ki v podatkovni bazi poišče vse algoritme, ki pripadajo isti skupini kot določeni algoritem;
53 40 POGLAVJE 5. IMPLEMENTACIJA class EditGroupView - pogled za urejanje skupin algoritmov (preverja spletne obrazce in ureja skupine); class EditAlgorithmView - pogled za urejanje algoritmov (preverja spletne obrazce in ureja algoritme); class DeleteAlgorithmView - pogled za izbris algoritmov; class DeleteGroupView - pogled za izbris skupin algoritmov; metoda get content() - metoda, ki iz datoteke error.log prebere napake in jih vrne; deletedirectory(name) - metoda, ki izbriše mapo algoritma z imenom podanim kot argument; rename(oldname, newname) - metoda, ki preimenuje mapo skupine algoritmov iz starega imena v novega, podanega kot drugi argument. Predloge (mapa templates ): algorithm - izgled strani algoritma, vključno s tabelami in grafi; group - izgled strani skupina algoritmov; error - izgled strani, ki prikazuje napake. Datoteka forms.py : class SubmitForm - razred, ki ustvari spletni obrazec za dodajanje novih algoritmov. Datoteka results.py (nahaja se v mapi templatetags ): getatributes(context) - metoda, ki vrne vse opise rezultatov določene skupine; get results(context) - metoda, ki vrne vse rezultate določenega algoritma;
54 5.5. IMPLEMENTACIJA TESTIRANJA ALGORITMOV 41 get table(context) - metoda, ki vrne tabelo z rezultati vseh algoritmov ; get algorithm url(name) - metoda, ki vrne povezavo do določenega algoritma. Poleg tega aplikacija vsebuje še datoteke: settings.py - datoteka z nastavitvami sistema; urls.py - datoteka, ki vsebuje spremenljivko urlpatterns, ki definira vse možne naslove URL; wsgi.py - konfiguracijska datoteka za delovanje s strežnikom Apache. 5.5 Implementacija testiranja algoritmov Za samo testiranje algoritmov skrbi poseben program napisan v programskem jeziku Java. Za vsako skupino algoritmov se ta program razlikuje od ostalih, vsi pa so podrazredi abstraktnega razreda Tester. Programi morajo implementirati abstraktno metodo test(), konstruktor in metodo main(), kot je zapisano v odstavku 4.2 Zahteve programa za testiranje algoritmov. Za vse ostalo poskrbi Tester sam Abstraktni razred Tester datoteka Tester.java (ki se nahaja v mapi Alg/additional resources ). Razred tester vsebuje atribute: id, scriptname, compileresult, status, algclass, algobject, results, rootdir, jdkpath, dbname, username, password in url. Razred Tester vsebuje javne metode: public Tester(String id)- konstruktor, ki iz datoteke setting.dat nastavi atribute potrebne za povezavo s podatkovno bazo. Nato glede na
55 42 POGLAVJE 5. IMPLEMENTACIJA dani id v podatkovni bazi poišče ime programa ter ga na koncu tudi prevede ter nastavi atribute algclass in algobject. Če med izvajanjem metode ni prišlo do napake na koncu zapiše v atribut status vrednost OK ; public boolean statuserror() - metoda, ki vrne True če je vrednost atributa status OK, če ni, vrne False ; public void writeresults() - metoda, ki zapiše vrednosti polja results in status v podatkovno bazo; public String getid() - metoda, ki vrne vrednost atributa id; public int getcompileresult() - metoda, ki vrne vrednost atributa compileresult, če je vrednost atributa 0 pomeni, da se je prevajanje zaključilo brez napak; public String getstatus() - metoda, ki vrne vrednost atributa status; public Class getalgclass() - metoda, ki vrne razred testirajočega algoritma; public Object getalgobject() - metoda, ki vrne objekt testirajočega algoritma; public String getrootdir() - metoda, ki vrne vrednost atributa rootdir; public void setstatus(string status) - metoda, ki nastavi vrednost atributa status glede na podani argument; public void setresults(string[] results)- metoda, ki nastavi vrednost atributa results glede na podani argument. privatne metode: private String getscriptname() - metoda, ki v bazi preveri ime algoritma, ki se trenutno testira in ga na koncu tudi vrne;
56 5.5. IMPLEMENTACIJA TESTIRANJA ALGORITMOV 43 private Connection connecttodb() - metoda, ki se poveže s podatkovno bazo in vrne povezavo; private int compilescript() - metoda, ki prevede program algoritma, ki se trenutno testira. Če se prevajanje zaključi brez napak vrne 0, sicer pa neničelno število, ter hkrati zapiše napako v datoteko error.log ; private Class getalgoclass() - metoda, ki naloži in vrne vse razrede testirajočega programa. Razrede najde preko metode findclasses() in jih naloži z uporaba razreda MyClassLoader; private List String findclasses() - metoda, ki poišče vse datoteke tipa.class. in abstraktno metodo: abstract void test() - abstraktna metoda, ki dejansko poskrbi za ocenjevanje algoritmov. Definirati jo morajo vsi podrazredi razreda Tester. Datoteka Tester.java prav tako vsebuje tudi razred MyClassLoader, ki je podrazred razreda java.lang.classloader. Vsebuje metodi: public MyClassLoader(String loadfolder, List String restrict) - konstruktor, ki nastavi atributa loadfolder in restrict; public Class loadclass(string name) - metoda, ki naloži razred z imenom podanim kot argument te metode program ZipTest datoteka ZipTest.java (ki se nahaja v mapi ZipTest ) ZipTest je podrazred razreda Tester, ki testira in ocenjuje algoritme za brezizgubno stiskanje podatkov. Med testiranjem preveri, če je izhodna datoteka razširjanja enaka originalni datoteki, ter nato poda hitrost (v mili sekundah) in stopnjo stiskanja. Program je priložen v prilogi 7.1. ZipTest vsebuje metode:
57 44 POGLAVJE 5. IMPLEMENTACIJA public ZipTest(String id) - konstruktor; public static void main(string[] args) - metoda main, ki ustvari objekt tipa ZipTest z atributom id podanim kot prvim argumentom. Nato spremeni podatkovne tokove za standardni izhod in standardni izhod za napake. Zatem pokliče metodo test(), ponastavi podatkovne tokove, ter na koncu pokliče metodo writeresults(), ki zapiše rezultate v podatkovno bazo; void test() - metoda, ki oceni dani algoritem za stiskanje (katerega program testira). Najprej pokliče algoritmovo metodo compress() in meri čas njenega izvajanja zatem pa še izmeri dolžino dobljene datoteke. Nato pokliče algoritmovo metodo uncompress(), ter preveri, če sta dobljena datoteka in originalna datoteka enaki. Če se postopek zaključi brez napak metoda nastavi atribut results z rezultati testiranja (čas izvajanja in stopnja stiskanja), ter atribut status na Done. Ob napaki (na primer če metoda uncompress ne obstaja, ali pa vrne napačno datoteko) pa metoda v atribut status zapiše opis napake; private static boolean samefile(file testfile, File outputfile) - metoda, ki vrne True če sta podani datoteki v argumentu enaki. Če nista metoda vrne False.
58 Poglavje 6 SKLEPNE UGOTOVITVE Definirali smo pojem algoritem, ter predstavili, kako smo ga poenostavili in implementirali v našem sistemu, ter ga nato uporabili pri samem testiranju in ocenjevanju. Ustvarili smo sistem, ki lahko testira najrazličnejše vrste algoritmov. Uspešno smo realizirali vse zastavljene cilje. Sistem je dovolj robusten in prilagodljiv, kar pa ne vpliva na zapletenost uporabe. Spletna aplikacija je tako enostavna in prijazna do uporabnikov. Sistem je zaradi zmožnosti ponovnega testiranja vseh algoritmov hkrati tudi prenosljiv. Implementirali smo program za testiranje in ocenjevanje kakovosti algoritmov za brezizgubno stiskanje podatkov in ga tudi uspešno umestili v sam sistem. 45
59 46 POGLAVJE 6. SKLEPNE UGOTOVITVE
60 Poglavje 7 PRILOGE 7.1 Program ZipTest Program ZipTest za testiranje brezizgubnih algoritmov za stiskanje. Priloga 7.1: ZipTest import java.io.file; import java.io.filenotfoundexception; import java.io.fileoutputstream; import java.io.printstream; import java.lang.reflect.invocationtargetexception; import java.lang.reflect.method; import java.util.nosuchelementexception; import java.util.scanner; import java.util.logging.level; import java.util.logging.logger; /** * Martin */ public class ZipTest extends Tester { 47
61 48 POGLAVJE 7. PRILOGE // Every program for algortihm testing must define constructor containing "super(id)" public ZipTest(String id) { super(id); } public static void main(string[] args) { // Every program for algortihm testing must create its own object and then check for status errors. If there are no errors, program must then call method test() and at the end method writeresults() // It is also advisable to redirect output streams ( Internal error will raise, if anything comes to output stream during the program execution). PrintStream origout = System.out; PrintStream origerr = System.err; ZipTest t = new ZipTest(args[0]); if (!t.statuserror()) { try { PrintStream stdout = new PrintStream(new FileOutputStream(t.getRootDir() + "output.log ")); PrintStream stderr = new PrintStream(new FileOutputStream(t.getRootDir() + "error.log ")); System.setOut(stdout); System.setErr(stderr); } catch (FileNotFoundException ex) { Logger.getLogger(ZipTest.class.getName()).log( Level.SEVERE, null, ex); } t.test(); System.setOut(origOut); System.setErr(origErr); } t.writeresults(); }
Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:
Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: 17.07.2013 Ver. 2.9.1.2 Spletni portal članov uporabniška navodila
Prikaži večVaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX Dodajanje uporabnikov vajexx v skupino Vaje
Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX 3.5 1. Dodajanje uporabnikov vajexx v skupino Vaje 2. Kopiranje Win2003 strežnika in registracija na
Prikaži večNavodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str
Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski naslov: podpora@coks.si
Prikaži večDocument ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov
ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov Gospodarski subjekti Definicija: V skladu z 2. členom Izvedbene uredbe Komisije (EU) 2018/574
Prikaži večNavodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte
Navodila za uporabo programske opreme OTRS verzija 2.2.3 Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski
Prikaži večPowerPointova predstavitev
INTRANET - DETEKTIV Detektivska zbornica Republike Slovenije Pozdravljeni, v kratki predstaviti in navodilih za delo z intranet sistemom Detektiv. Intranet članom Detektivske zbornice RS omogoča, da: -
Prikaži več1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk
1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatkov in njihov prenos med spletnimi mesti. Obrazec v
Prikaži večNEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in
NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: +386 1 729 6 460 Faks.: +386 1 729 6 466 www.nevtrin.si info@elektrina.si USB RFID READER Navodila za uporabo?
Prikaži večMicrosoft Word - M docx
Š i f r a k a n d i d a t a : Državni izpitni center *M17178111* SPOMLADANSKI IZPITNI ROK Izpitna pola 1 Četrtek, 1. junij 2017 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero
Prikaži večMicrosoft Word - M _mod..docx
Državni izpitni center *M17278113* JESENSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Ponedeljek, 28. avgust 2017 SPLOŠNA MATURA Državni izpitni center Vse pravice pridržane. M172-781-1-3 2 IZPITNA POLA 1 1
Prikaži večNameščanje Adopt Open Java Development Kit 8
Nameščanje Adopt Open Java Development Kit 8 za Windows x64 IZUM, 2019 IZUM, COBISS, COMARC, COBIB, COLIB, CONOR, SICRIS, E-CRIS so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod...
Prikaži večNameščanje Adopt Open Java Development Kit 8
Nameščanje Adopt Open Java Development Kit 8 za Windows x64 IZUM, 2019 IZUM, COBISS, COMARC, COBIB, COLIB, CONOR, SICRIS, E-CRIS so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod...
Prikaži večMicrosoft Word - CNR-BTU3_Bluetooth_vmesnik
CNR-BTU3 Bluetooth vmesnik A. Vsebina pakiranja Bluetooth USB Adapter Bluetooth programska oprema in CD z gonilniki Navodila za uporabo in CD 1. Namestitev Bluetooth programske opreme za Windowse 1. Vstavite
Prikaži večNETGEAR R6100 WiFi Router Installation Guide
Blagovne znamke NETGEAR, logotip NETGEAR in Connect with Innovation so blagovne znamke in/ali registrirane blagovne znamke družbe NETGEAR, Inc. in/ali njenih povezanih družb v ZDA in/ali drugih državah.
Prikaži večPowerPointova predstavitev
TIK terminal nima povezave s strežnikom Ob vpisu v TIK Admin se pojavi napis ni povezave s strežnikom Na terminalu je ikona 1. preverimo ali je pravilno nastavljen IP strežnika 1. Preverimo datoteko TIKSAdmin.INI
Prikaži več(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc)
1. Pogoji uporabe programske opreme Pred uporabo programske opreme iz programa MSDNAA morate prebrati in se strinjati s pogoji in določili Licenčne pogodbe za končnega uporabnika programske opreme MSDN
Prikaži večNAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta
NAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta 1.0 22.11.2013 Prva verzija dokumenta 1.1 15.04.2015 Dodana možnost
Prikaži večRAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni
RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje
Prikaži večPowerPoint Presentation
SAFE.SI VODIČ Nastavitve zasebnosti in varnosti na Instagramu 2017/1 Nastavitev zasebnega računa Račun na Instagramu je privzeto nastavljen tako, da lahko objave vidi vsakdo. Zato moramo nastavitve zasebnosti
Prikaži večNAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr
NAVODILA ZA UPORABO Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta in jih shranite za prihodnjo rabo Vsebina 1. Pregled 2. Sistem 3. Prednosti 4. Upravljanje
Prikaži večUrejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se
Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se velikokrat zmoti. Na srečo piše v programu Microsoft
Prikaži večAPS1
Algoritmi in podatkovne strukture 1 Visokošolski strokovni študij Računalništvo in informatika Abstraktni podatkovni tipi Jurij Mihelič, UniLj, FRI Podatkovni tipi Razvil Pascal, Oberon itd. Software is
Prikaži večUpravljanje sistema COBISS Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI
Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI IZUM, 2015 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Uporaba tiskalnika...
Prikaži večZadeva: Ponudba
Navodila za urejanje Spletne strani CTEK.si 1. Dodajanje novega polnilnika Za dodajanje novega polnilnika nikoli ne prepisujte že objavljenih vsebin, ampak sledite tem navodilom. Ta so zagotovilo, da bodo
Prikaži večNavodila Trgovina iCenter
Napredovanja v plačne razrede javnih uslužbencev 2019 S pomočjo SAOP programa Kadrovska evidenca lahko ob dokupljeni kodi vodimo napredovanja javnih uslužbencev. Za napredovanja v letu 2019 je potrebno
Prikaži večCODEKS IP KAMERA
CODEKS IP KAMERA uporabniška navodila Vse pravice pridržane. Noben del uporabniških navodil se ne sme reproducirati v kakršnikoli obliki ali na kakršen koli način - grafični, elektronski ali mehanski,
Prikaži večNETGEAR R6250 Smart WiFi Router Installation Guide
Blagovne znamke NETGEAR, logotip NETGEAR in Connect with Innovation so blagovne znamke in/ali registrirane blagovne znamke družbe NETGEAR, Inc. in/ali njenih povezanih družb v ZDA in/ali drugih državah.
Prikaži večStrojna oprema
Asistenta: Mira Trebar, Miha Moškon UIKTNT 2 Uvod v programiranje Začeti moramo razmišljati algoritmično sestaviti recept = napisati algoritem Algoritem za uporabo poljubnega okenskega programa. UIKTNT
Prikaži večMicrosoft Word - IPIN slovenska navodila za pridobitev
IPIN MEDNARODNA IDENTIFIKACIJSKA ŠTEVILKA IGRALCA Spoštovani igralec tenisa! Vsak, ki želi igrati na tekmovanjih pod okriljem mednarodne teniške zveze (ITF), mora pridobiti mednarodno identifikacijsko
Prikaži večNavodilo Telemach
Nastavitve za: MOJ TELEMACH Registracija: Na spletni strani Moj Telemach (http://moj.telemach.si) se pomaknite na spodnji del strani in pritisnite gumb REGISTRIRAJ SE. 1. korak Odpre se novo okence, kamor
Prikaži večDiapozitiv 1
9. Funkcije 1 9. 1. F U N K C I J A m a i n () 9.2. D E F I N I C I J A F U N K C I J E 9.3. S T A V E K r e t u r n 9.4. K L I C F U N K C I J E I N P R E N O S P A R A M E T R O V 9.5. P R E K R I V
Prikaži večNavodila za nastavitev mail odjemalca na ios in Android napravah TELEFONI iphone (ios 12) Predlagamo, da do svoje študentske e-pošte dostopate s pomoč
TELEFONI iphone (ios 12) Predlagamo, da do svoje študentske e-pošte dostopate s pomočjo aplikacije Outlook, katero lahko prenesete s pomočjo trgovine App Store. Ko aplikacijo zaženete se vam pojavi naslednje
Prikaži večVaja04_Ver02
Vaja 04 Varnost: Zaščita aplikacije, omejitev dostopa 1. Uredite prijavo in odjavo uporabnika brez uporabe menuja Special/Security. Nadgradite aplikacijo iz vaje 2. Kreirajte okno tipa Replace Začetno
Prikaži večMicrosoft Word - M docx
Š i f r a k a n d i d a t a : ržavni izpitni center *M15178112* SPOMLNSKI IZPITNI ROK Izpitna pola 2 Četrtek, 4. junij 2015 / 90 minut ovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali
Prikaži večTRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0
TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, 12.11.2018 Verzija 1.0 KAZALO 1 REGISTRACIJA... 3 1.1 Katere podatke potrebujem za registracijo/kreiranje
Prikaži večMicrosoft PowerPoint - Objekti_gradnja.ppt
Naredimo razred Katera so stanja/lastnosti Kaj hočemo o objektih te vrste vedeti Kakšne lastnosti imajo Katere so metode Kakšno je znanje objektov Na katere ukaze se odzovejo Način predstavitve lastnosti
Prikaži večNavodila za študente
Moodle UM Verzija 3.5.1 Navodila za študente RCUM, Služba za IS Maribor, 2019 Kazalo 1 Prijava v Moodle UM... 3 2 Odjava iz Moodla UM... 3 3 Seznam učnih enot... 4 4 Navigacijski trak... 4 5 Bloki... 5
Prikaži večMicrosoft Word - eDenar - navodila za uporabo osebnega portala clana doc
Navodila za uporabo osebnega portala člana 13.11.08 Pozor: Ta navodila so le v pomoč uporabnikom. V kolikor so navodila v nasprotju s splošnimi pogoji poslovanja kluba, veljajo splošni pogoji poslovanja
Prikaži večNavodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, m
Navodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, marec 2019 Vsebina 1 Dostop do aplikacije... 3 1.1 Android...
Prikaži večINFORMATOR BIROKRAT 1/2011
ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO
Prikaži večMicrosoft Word - CNC obdelava kazalo vsebine.doc
ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo mesto, april 2008 Ime in priimek študenta ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo
Prikaži večRazpis - podiplomski študij
RAZPIS ZA VPIS V DOKTORSKA ŠTUDIJSKA PROGRAMA 3. STOPNJE UNIVERZE NA PRIMORSKEM PEDAGOŠKE FAKULTETE V ŠTUDIJSKEM LETU 2016/2017 Za vpis v podiplomske doktorske študijske programe 3. stopnje v študijskem
Prikaži večSlide 1
Projektno vodenje PREDAVANJE 7 doc. dr. M. Zajc matej.zajc@fe.uni-lj.si Projektno vodenje z orodjem Excel Predstavitev Najbolj razširjeno orodje za delo s preglednicami Dva sklopa funkcij: Obdelava številk
Prikaži večNavodilo za urejanje zavarovanj po šifri podlage za zavarovanje 033 prek portala e-vem Ljubljana, oktober 2015
Navodilo za urejanje zavarovanj po šifri podlage za zavarovanje 033 prek portala e-vem Ljubljana, oktober 2015 Kazalo vsebine 1. Pooblastilo za izvajanje postopkov prek portala e-vem... 4 2. Prijava v
Prikaži večChapter 1
- 1 - Poglavje 1 Uvod v podatkovne baze - 2 - Poglavje 1 Cilji (Teme).. Nekatere domene, kjer se uporabljajo podatkovne baze Značilnosti datotečnih sistemov Problemi vezani na datotečne sisteme Pomen izraza
Prikaži večPowerPoint Presentation
Uporaba storitve Office 365 v napravi iphone ali ipad Priročnik za hiter začetek dela Ogled e-pošte Nastavite napravo iphone ali ipad tako, da boste lahko pošiljali in prejemali e-pošto iz računa v storitvi
Prikaži večVaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas
Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX 3.5 1. Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nastavitve strežnika ESX 3. Namestitev in nastavitve VM
Prikaži večSlajd 1
REPUBLIKA SLOVENIJA MINISTRSTVO ZA JAVNO UPRAVO 1 EU ENOTNI DIGITALNI PORTAL: PRIHAJA NOVA EU UREDBA Alenka Žužek Nemec, Tina Kuliš DNEVI SLOVENSKE INFORMATIKE 18. april 2018 Ko podjetja ali državljani
Prikaži večŠolski center Celje Srednja šola za kemijo, elektrotehniko in računalništvo ELEKTRONSKA REDOVALNICA RAZISKOVALNA NALOGA AVTORJI Aleš Budna Jure Ulaga
Šolski center Celje Srednja šola za kemijo, elektrotehniko in računalništvo ELEKTRONSKA REDOVALNICA RAZISKOVALNA NALOGA AVTORJI Aleš Budna Jure Ulaga Nik Perčič MENTOR Dušan Fugina, prof. Celje, marec
Prikaži večDatum in kraj
Ljubljana, 5. 4. 2017 Katalog znanj in vzorci nalog za izbirni izpit za vpis na magistrski študij Pedagoško računalništvo in informatika 2017/2018 0 KATALOG ZNANJ ZA IZBIRNI IZPIT ZA VPIS NA MAGISTRSKI
Prikaži večMicrosoft Word - CN-BTU4 Quick Guide_SI
Bluetooth Dongle Artikel: CN-BTU4 NAVODILA v1.0 Sistemske zahteve Zahteve za PC: - Proc.: Intel Pentium III 500MHz or above. - Ram: 256MB ali več. - Disk: vsaj 50MB. - OS: Windows 98SE/Me/2000/XP - Prost
Prikaži večLinksys PLEK500 User Guide
Uporabniški priročnik Linksys PLEK500 Omrežni vmesnik Powerline Vsebina Pregled............... 2 Funkcije..................... 2 Kako deluje omrežje Powerline 3 Primer namestitve 3 Namestitev omrežja Powerline.....
Prikaži večMiluma Trader Miluma Trader navodila: V nadaljevanju sledijo osnovna navodila, kako začeli uporabljati Miluma Trader. 1. Preverite spletno stran Ta po
navodila: V nadaljevanju sledijo osnovna navodila, kako začeli uporabljati. 1. Preverite spletno stran Ta posnetek zaslona vam prikazuje, da morate v levem vrhnjem kotu preveriti, če se nahajate na pravi
Prikaži večPoročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo
Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefonih. Obstaja precej različic, sam pa sem sestavil meni
Prikaži večRAČUNALNIŠTVO VARNOSTNA KOPIJA IN SLIKA DISKA Aleš Ovsenek Uvajanje novih izobraževalnih programov v srednjem poklicnem in strokovnem izobraževanju s
RAČUNALNIŠTVO VARNOSTNA KOPIJA IN SLIKA DISKA Aleš Ovsenek Uvajanje novih izobraževalnih programov v srednjem poklicnem in strokovnem izobraževanju s področja tehnike za obdobje 2008-2012. Operacijo delno
Prikaži večIZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada
IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko UPORABLJENE TEHNOLOGIJE Za izdelavo predstavitvene spletne strani smo izbrali tehnologije, ki zagotavljajo: Hitro delovanje spletne
Prikaži večSLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO WLAN usmerjevalnik TP LINK Archer C5 Kataloška št.:
SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 75 31 33 www.conrad.si NAVODILA ZA UPORABO WLAN usmerjevalnik TP LINK Archer C5 Kataloška št.: 75 31 33 KAZALO 1. PRIKLOP STROJNE OPREME...3 2. KONFIGURACIJA
Prikaži več(Microsoft Word - U\350enje telegrafije po Kochovi metodi.doc)
MORSE UČENJE PO KOCHOVI METODI Računalniški program za učenje skupaj z nekaterimi dodatnimi datotekami dobite na spletni strani avtorja: http://www.g4fon.net/. Zanimive strani so tudi: - http://www.qsl.net/n1irz/finley.morse.html
Prikaži večMicrosoft Word - UP_Lekcija04_2014.docx
4. Zanka while Zanke pri programiranju uporabljamo, kadar moramo stavek ali skupino stavkov izvršiti večkrat zaporedoma. Namesto, da iste (ali podobne) stavke pišemo n-krat, jih napišemo samo enkrat in
Prikaži večDNEVNIK
POROČILO PRAKTIČNEGA USPOSABLJANJA Z DELOM PRI DELODAJALCU DIJAKA / DIJAKINJE. ( IME IN PRIIMEK) Izobraževalni program FRIZER.. Letnik:.. oddelek:. PRI DELODAJALCU. (NASLOV DELODAJALCA) Šolsko leto:..
Prikaži večMicrosoft Word - NAVODILA ZA UPORABO.docx
NAVODILA ZA UPORABO VODILO CCM-18A/N-E (K02-MODBUS) Hvala ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shranite za prihodnjo rabo. Vsebina
Prikaži večTRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1
TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, 14. 03.2019 Verzija 1.1 KAZALO 1 NAMEN...3 2 REGISTRACIJA...4 3 VNOS GESLA IN AKTIVACIJA RAČUNA...6
Prikaži večPowerApps
ko tehnologija postane brezmejna strast Microsoft PowerApps Uporabniška navodila Avtorji Brina Gomboc, Lucija Kos, Damjana Krampač Mentorici dr. Simona Sternad Zabukovšek Sara Cokan, mag. ekon. in posl.
Prikaži večVPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC
VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC Državni zbor v številkah 90 poslancev 9 + 1 poslanska skupina 150+ mobilnih naprav (OS Android, ios) 500+ internih uporabnikov, 650+ osebnih računalnikov, 1100+
Prikaži večMicrosoft PowerPoint - seminar_ pptx
Leatalske informacije in ARO Slovenia Control Igor Čučnik, ARO Aleš Omahne, NOTAM Uroš Grošelj, AIP Brnik, 12.5.2018 Letalske informacije AIP AIP AMDT AIP SUP AIC NOTAM Serija A, B in C VFR karta Spletna
Prikaži večMATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir
MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje priročno programsko okolje tolmač interpreter (ne prevajalnik)
Prikaži večPowerPointova predstavitev
IZKUŠNJE PRI PRILAGODITVI E-STORITEV AJPES ZAHTEVAM EIDAS ZA ČEZMEJNO PRIZNAVANJE MARJAN BABIČ, AJPES Vsebina Razlogi za vključitev v projekt CEF Telecom Izvajalno okolje AJPES in način integracije s SI-PASS
Prikaži večPRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA
KATALOG ZNANJA 1. IME PREDMETA ZBIRKE PODATKOV I ZBIRKE PODATKOV II 2. SPLOŠNI CILJI Splošni cilji predmeta so: razvijanje sposobnosti za uporabo znanstvenih metod in sredstev, razvijanje odgovornosti
Prikaži večCT_SLO_White Paper_ENG
UPORABNIŠKI PRIROČNIK //COMTRADE/ UPORABNIŠKI PRIROČNIK ZA PORTAL IN VARNOSTNO SHEMO MIZKŠ Priročnik za ravnatelje Priročnik pokriva glavne akcije, ki jih ravnatelji opravljajo v Varnostni shemi: upravljanje
Prikaži večDiapozitiv 1
Računalništvo in informatika Program: Mehatronika dr. Hubert Fröhlich, univ. dipl. el. Podatkovne baze 2 Podatkovne baze Podatki osnova za odločanje in izvajanje akcij tiskana oblika elektronska oblika
Prikaži večNavodila za namestitev odjemalca ibsreport2 produkcijsko okolje (poročanje Banki Slovenije) Avgust 2017
Navodila za namestitev odjemalca ibsreport2 produkcijsko okolje (poročanje Banki Slovenije) Avgust 2017 1. Uvod Navodilo je namenjeno tehničnemu osebju pri pošiljateljih poročil oziroma poročevalcih, ki
Prikaži večTNUV Lab
TNUV - VAJA 5 doc. dr. Marko Meža 2013/14 Cilji vaje Predvajanje multimedijskih vsebin MediaPlayer http://developer.android.com/training/building-multimedia.html http://developer.android.com/guide/topics/media/mediaplayer.html
Prikaži večPowerPointova predstavitev
Izkušnje pri prilagoditvi e-storitev AJPES zahtevam eidas za čezmejno priznavanje Marjan Babič, AJPES 11. 12. 2018 Vsebina Razlogi za vključitev v projekt CEF Telecom Izvajalno okolje AJPES in način integracije
Prikaži večSplošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadalj
Splošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadaljevanju»naročnik«) in družbo VI NOVA d.o.o. (v nadaljevanje»ponudnik«).
Prikaži večOrodje za izvoz podatkov
Pomoč uporabnikom -NA-SI-200, V6.13-00 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Predstavitev orodja za izvoz podatkov...
Prikaži večHiter začetek Razširjevalnik dosega WiFi N300 Model EX2700
Hiter začetek Razširjevalnik dosega WiFi N300 Model EX2700 Začetek uporabe Razširjevalnik dosega WiFi NETGEAR doseg omrežja WiFi poveča tako, da okrepi obstoječi signal WiFi in izboljša splošno kakovost
Prikaži večTRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1,
TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, 14. 03. 2019 KAZALO 1 Namen...3 2 Registracija...4 3 Vnos gesla in aktivacija računa...6 4 Prijava...7
Prikaži večNAVODILA ZA MONTAŽO SI EWPE SMART Wi-FI app
NAVODILA ZA MONTAŽO SI EWPE SMART Wi-FI app Uporabniški račun V aplikacijo se je treba prijaviti z uporabniškim računom. Ob prvem zagonu vas bo aplikacija pozvala k registraciji (sign up) ali prijavi (sign
Prikaži večEVROPSKA PRAVNA FAKULTETA V NOVI GORICI
NOVA UNIVERZA, EVROPSKA PRAVNA FAKULTETA - Delpinova ulica 18b, 5000 Nova Gorica - tel: (05) 338-44-00, fax: (05) 338-44-01 - e-pošta: info@evro-pf.si Informativno mesto: - Referat za študijske zadeve,
Prikaži večMicrosoft Word - 021_01_13_Pravilnik_o_zakljucnem delu
Na podlagi 64. člena Pravil o organizaciji in delovanju Fakultete za humanistične študije, št. 011-01/13 z dne 27. 6. 2013, je Senat Univerze na Primorskem Fakultete za humanistične študije na svoji 4.
Prikaži večZAHTEVA ZA UVELJAVLJANE PRAVIC POSAMEZNIKA V POVEZAVI Z NJEGOVIMI OSEBNIMI PODATKI Pošta Slovenije skladno z veljavno zakonodajo na področju varstva o
ZAHTEVA ZA UVELJAVLJANE PRAVIC POSAMEZNIKA V POVEZAVI Z NJEGOVIMI OSEBNIMI PODATKI Pošta Slovenije skladno z veljavno zakonodajo na področju varstva osebnih podatkov posameznikom omogoča uveljavljanje
Prikaži večDCS-2330L_A1_QIG_v1.00(EU).indd
HD WIRELESS N OUTDOOR CLOUD CAMERA DCS-2330L KRATKA NAVODILA ZA UPORABO VSEBINA PAKETA HD WIRELESS N OUTDOOR CLOUD CAMERA DCS-2330L NAPAJALNI ADAPTER ADAPTER ETHERNET KABEL (CAT5 UTP) MED POSTAVITVIJO,
Prikaži večSPLETNA PRIJAVA NA IZPITE ZA DIJAKE Dijaki se na izpite prijavite na novem portalu novi.lopolis.si z istim uporabniškim imenom in geslom, kot ga upora
SPLETNA PRIJAVA NA IZPITE ZA DIJAKE Dijaki se na izpite prijavite na novem portalu novi.lopolis.si z istim uporabniškim imenom in geslom, kot ga uporabljate tudi za portal Lo.Polis (www.lopolis.si), kjer
Prikaži večPowerPoint Presentation
INFORMACIJSKI SISTEM MFERAC - LETA 2022 mag. Andreja Sladoje Jemec, Sanja Štumberger Kovačič Ministrstvo za finance 10.12.2018 Vsebina predstavitve 1. Projekt MFERAC05 in izhodišča prenove 2. Izvajanje
Prikaži večMicrosoft Word - Navodila za uporabo 1.1.doc
PhotoOrder Navodila za uporabo 1 Kazalo 1 Kazalo... 2 2 Kazalo slik... 3 3 PhotoOrder... 4 4 Nameščanje programa... 5 4.1 Internet Explorer... 5 4.1.1 "Save" ("Shrani")... 5 4.1.2 "Run" ("Odpri")... 6
Prikaži večRazpis - podiplomski študij
RAZPIS ZA VPIS V MAGISTRSKE ŠTUDIJSKE PROGRAME 2. STOPNJE UNIVERZE NA PRIMORSKEM V ŠTUDIJSKEM LETU 2016/2017 Za vpis v podiplomske magistrske študijske programe 2. stopnje v študijskem letu 2016/2017 Univerza
Prikaži večGHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)
GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) in za vsako napisati svojo kodo. Dve ikoni imata isto
Prikaži večVprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C#
Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C# Pomen posameznih oken uporabniškega vmesnika, urejevalnik
Prikaži večMicrosoft Word - CNR-MPV2 Quick Guide_SI
Canyon multimedijski MP3 predvajalnik Artikel: CNR-MPV2 Opozorilo: Pred uporabo pozorno preberite navodila za uporabo. Podrobna navodila se nahajajo na priloženem CD mediju. Opozorilo: Pred uporabo napolnite
Prikaži večNAVODILA ZA IZPOLNJEVANJE OBRAZCA
NAVODILO ZA UPORABO PRIPOMOČKA ZA PRIPRAVO STROŠKOVNEGA NAČRTA PROJEKTA»Piano finanziario Stroskovni nacrt«dokument»piano finanziario Stroskovni nacrt«v Microsoft Excel obliki lahko uporabite kot pripomoček
Prikaži večSETCCE Uporabniška navodila za namestitev in upravljanje komponente SETCCE proxsign v2.0.5 za MAC OS X [Nova generacija komponent SETCCE proxsign ] Id
SETCCE Uporabniška navodila za namestitev in upravljanje komponente SETCCE proxsign v2.0.5 za MAC OS X [Nova generacija komponent SETCCE proxsign ] Identifikacijska oznaka dokumenta: n/a Različica dokumenta:
Prikaži večLAMP, MEAN, ANNE – kaj izbrati za razvoj spletne aplikacije?
Univerza v Ljubljani Fakulteta za računalništvo in informatiko Tim Cestnik LAMP, MEAN, ANNE kaj izbrati za razvoj spletne aplikacije? DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO
Prikaži večMicrosoft Word - P-2_prijava
PRIJAVA Naročnik Oznaka Ime posla NIJZ Trubarjeva cesta 2 1000 LJUBLJANA 49K040717 Javno naročilo Nakup novih diskovnih kapacitet Povsod, kjer obrazec P-2 uporablja izraz»ponudnik«, gre v postopkih, kjer
Prikaži večDelavnica Načrtovanje digitalnih vezij
Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Osnove jezika VHDL Strukturno načrtovanje in testiranje Struktura vezja s komponentami
Prikaži večMicrosoft Word Navodila za povezavo naprave v oblak_SLO
Navodila za povezavo naprave v oblak Navodila naj se predajo končnemu uporabniku. SLO Id.: 17-16-14-2968-03 5.2017 Navodila za povezavo naprave v oblak Id.: 17-16-14-2968-03 5.2017 Natisnjeno v Sloveniji,
Prikaži večMicrosoft Word - pravilnik diploma_1.doc
Na podlagi Statuta Univerze v Ljubljani in 42. člena Pravil o organiziranosti in delovanju Visoke šole za zdravstvo je senat Univerze v Ljubljani Visoke šole za zdravstvo na 38. redni seji dne 16. 10.
Prikaži večMicrosoft PowerPoint - OAPS1- P12.ppt
Univerza v Ljubljani Fakulteta za računalništvo in informatiko Igor Rožanc Osnove algoritmov in podatkovnih struktur I (OAPS I) 2. letnik, VSP Računalništvo in informatika, vse smeri PROSOJNICE ZA 12.
Prikaži večOBRAZEC ''PRIJAVA''
Obrazec ''Prijava'' PRIJAVA 1 PONUDBA, št. Ponudbo dajemo za javno naročilo, katerega predmet je dobava energijsko učinkovitih prenosnih in tabličnih računalnikov, z oznako SOS_rac-2014 (se označi z X):
Prikaži večISOFT , računalniški inženiring
ISOFT, računalniški inženiring Marko Kastelic s.p. Sad 2, 1296 Šentvid pri stični Spletna stran podjetja:http://www.isoft.si podjetja ISOFT Spletna stran sistema sledenja vozil track.si: http://www.track.si
Prikaži večPodatkovni model ER
Podatkovni model Entiteta- Razmerje Iztok Savnik, FAMNIT 2018/19 Pregled: Načrtovanje podatkovnih baz Konceptualno načtrovanje: (ER Model) Kaj so entite in razmerja v aplikacijskem okolju? Katere podatke
Prikaži več