Pređi na sadržaj

SPOJ

S Vikipedije, slobodne enciklopedije

SPODž je sistem sa preko 200.000 registrovanih članova i preko 20.000 problema. Zadaci su zadati od strane poznatih takmičara, korisnika ili su preuzeti od nekih starijih takmičenja. SPODž dozvoljava naprednim članovima da organizuju takmičenje pod svojim pravilima i takođe da otvore forum gde bi takmičari mogli da diskutuju o zadacima.

Pored Engleskog jezika, SPODž takođe omogućava takmičenja na poljskom, portugalskom i vijetnamskom jeziku. Rešenja zadataka se mogu priajviti u preko 40 programskih jezika.[1]

Spodž je trenutno najbolja platforma za učenje i vežbanje nad informatičkim zadacima.[2] Takođe omogućava studentima da upoređuju paradigme i pristupe sa velikim izborom programskih jezika.

Istorija[uredi | uredi izvor]

Ovaj sistem je prvenstveno napravljen da bi primenom onlajn sudije bolje edukovao studente informatike i računarstva. Sistem je fokusiran na studente i lekcije sa univerziteta i na članove šire programerske zajednice, koji su zainteresovani za Takmičarsko programiranje.

Cilj[uredi | uredi izvor]

SPODž je korišćen za razne stvari ,na primer:[3]

  • Za mlađe programere i početnike koji žele dublje da uđu u svet algoritama i struktura podataka.
  • Stundetima univerziteta je dodeljena šansa da urade svoj domaći zadatak, iskreno, i bez varanja.
  • Entuzijaisti funkcionalnog ili objektno orijentisanog programiranja mogu da rešavaju probleme u njihovom omiljenom jeziku.
  • Svaka osoba koja želi da podeli interesantne zadatke sa ostalim članovima SPODž-a mogu to da urade automatski (neophodno je poslati samo jedan mail administratorima),
  • Osoba koja želi da organizuje takmičenje, sa bilo kojim pravilima, može to da uradi u bilo koje vreme, bez pomoći sistemskih administratora.

Kategorije problema[uredi | uredi izvor]

Arhivirani problemi u SPODž-u su podeljeni na 5 kategorija: [4]

  • Klasični: Klasični zadaci spadaju u zadatke gde je ishod pogrešan ili tačan odgovor.
  • Čelendž: Omogućavaju korisnicima da prijave bolje ili lošije rešenje. Ne postoji konačan odgovor na ovim tipovima zadataka.
  • Parcijalni: Slični su čelendž zadacima ali imaju svrhu edukovanja korisnika.
  • Tutorijal: Slični klasičnim problemima ali dosta lakši, služe samo za edukacione svrhe npr. poznavanje poznatijih algoritama i slično.
  • Zagonetke: Problemi koji sadrže zagonetku kao pod-problem.

Takođe može postojati limit na nekim od problema gde bi se od takmičara zahtevao efikasan algoritam što otežava zadatak.

Suđenje[uredi | uredi izvor]

Klasteri[uredi | uredi izvor]

Rešenja se proveravaju na 2 klaster računara:[5]

  • Piramida (Intel pentium III 733 MHz): Sadrži se od Pentium III mašine koje SPODž koristi još od početka 2004. godine. Ove mašine su spore u poređenju sa ostalim sudijama. Na ovim klasterima dozvoljen limit korišćenja memorije je do 256 mb.
  • Kocka (Intel pentium G860 3 GHz): Ovi klasteri sadrže Intel pentium G860 procesor. Sa ovim klasterom rešenja će biti od 30 do 50 puta brža nego na Piramidi tako da možete da očekujete ako testirate svoje rešenje kod kuće da će imati sličnu brzinu kao sa ovim klasterom. Korišćenjem ovog klastera , takmičar na raspolaganju ima 1.536 MB.

Programi si provereni upoređivanjem već poznatog odgovora ili pokretanjem već gotovog koda koji je organizator pripremio, i koji je unikantan za svaki zadatak.[2] Ovo je potrebno kada postoje više odgovora u nekim od komlpeksnijih problmea. Korišćenjem računara, markiranje je konzistentno, pošteno i može se koristiti za efikasnost u realnom okruženju, u poređenju sa ljudskim sudijom.

Da bi se osiguralo da sistem radi efikasno, linuks komanda RLIMIT_CPU omogućava efikasniji rad testova ako se zadesi da naiđe na neki test "siromašnog" sadržaja.Komanda sleep(), smanjuje memorijski prostor koji takmičar može da koristi na određenom zadatku.

Ovaj besplatni sajt omogućava studentima da dobiju logičko kao i dizajn iskustvo na osnovu prethodnih uspeha. Takođe, ovaj sistem ne ocenjuje kvalitet koda, ili neke druge subjektivne karakteristke koje su neophodne za aplikacije u realnom okruženju.

Nakon prijavljenog koga, korisnik dobija poruku da li se kod uspešno pokrenuo ili je došlo do greške u procesiranju: vreme je isteklo,netačan odgovor ili tačno rešenje.

Bodovanje[uredi | uredi izvor]

Bodovi su dodeljeni na osnovu kategorije u kojoj su problemi podeljeni[6]

  • Klasični: Rezultat za jedan problem je bodova.
  • Čelendž: Rezultat ima 2 kriterije koje su:
    • za najbolji rezultat u bilo kom čelendžu: 3 boda,
    • za svaki manji rezultat: (korisnikov rezultat u poređenju sa najbonjim) points.
  • Particijalni: 0 points
  • Tutorijal: 0 points
  • Zagonetka: 0 points

Rezultati za 'čelendž' kategoriju su tipični za veličinu prijavljenog problema u bajtovima, ali mogu biti i različiti. Na primer, može biti broj decimalnih mesta broja π.

zapamtite: SPODž menja svoju formulu bodovanja veoma često

Programerska takmičenja[uredi | uredi izvor]

SPODž je korišćen kao platforma za širok niz takmičenja, od lokalnog do internacionalnog nivoa i od takmičenja koje traje jedan sat do takmičenja koje traje i do godinu dana. Takmičari obično pričaju različitim jezikom tako da sajt obezbeđuje ugodno takmičenje, kao i da umanjuje rad organizatora takmičenja zbog velikog broja alatki.[2]

Kritike[uredi | uredi izvor]

Korisnici onlajn sudija imaju malo podsticaja za dokumentacijom i kreiranjem dobrog koda, što ih čini manje spremnim za kreiranje više tipičnih aplikacija koje su potrebne van takmičenja.[2]

Prema rezultatima ostvarenim na Univerzitetu tehnologije u Gdansku[2],došli su do zaključka da korišćenje onlajn sudije i njegovog sistema dovodi do smanjene komunikacije između studenta i osoblja(profesora). Ipak, prefesori posvećuju više vremena sa studentima sa poteškoćama koji sporije prate odgovarajuće lekcije, eliminišući studente koji već imaju odgovarajuće znanje iz te oblasti.

Jezici[uredi | uredi izvor]

SPODž podržava oko 40 jezika u kojima korisnici mogu da prijave rešenje. Oni su:

Ada, Asembler, AVK, Baš, Brein Fak, C, C++ i C99 striktno, C#, Kložr, LISP, D,Erlang, Fortran, F#, Go, Haskel, Ajkon, Interkal, Jar , Java, Javaskript, Lisp, Lua, Nemerli, Nice, Node.js, Okeml, Paskal, Pdf, Prl, PHP, Pike, PostScript, Prolog, Python, Ruby, Scala, Scheme, sed, Smalltalk, Tcl, Tecs.

Pogledatajte još[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ „Sphere Research Labs Legal Information”. Sphere Research Labs. Arhivirano iz originala 21. 06. 2015. g. Pristupljeno 21. 06. 2015. 
  2. ^ a b v g d Kosowski, Adrian; Malafiejski, Michal; Noinski, Tomasz (14. 04. 2008). Advances in Web Based Learning - ICWL 2007: 6th International Conference, Edinburgh, UK, August 15-17, 2007, Revised Papers. Springer Science & Business Media. str. 344. ISBN 9783540781387. 
  3. ^ Kosowski, Adrian (3. 09. 2004). „What is SPOJ's _purpose_?”. SPOJ. Pristupljeno 22. 09. 2014. 
  4. ^ „PROBLEMS”. SPOJ. Pristupljeno 22. 09. 2014. 
  5. ^ „Clusters”. SPOJ. Pristupljeno 22. 09. 2014. 
  6. ^ „http://www.spoj.com/ranks/users/”. SPOJ. Pristupljeno 22. 09. 2014.  Spoljašnja veza u |title= (pomoć)

Literatura[uredi | uredi izvor]

Spoljašnje veze[uredi | uredi izvor]