SPOJ

С Википедије, слободне енциклопедије

СПОЏ је систем са преко 200.000 регистрованих чланова и преко 20.000 проблема. Задаци су задати од стране познатих такмичара, корисника или су преузети од неких старијих такмичења. СПОЏ дозвољава напредним члановима да организују такмичење под својим правилима и такође да отворе форум где би такмичари могли да дискутују о задацима.

Поред Енглеског језика, СПОЏ такође омогућава такмичења на пољском, португалском и вијетнамском језику. Решења задатака се могу приајвити у преко 40 програмских језика.[1]

Споџ је тренутно најбоља платформа за учење и вежбање над информатичким задацима.[2] Такође омогућава студентима да упоређују парадигме и приступе са великим избором програмских језика.

Историја[уреди | уреди извор]

Овај систем је првенствено направљен да би применом онлајн судије боље едуковао студенте информатике и рачунарства. Систем је фокусиран на студенте и лекције са универзитета и на чланове шире програмерске заједнице, који су заинтересовани за Такмичарско програмирање.

Циљ[уреди | уреди извор]

СПОЏ је коришћен за разне ствари ,на пример:[3]

  • За млађе програмере и почетнике који желе дубље да уђу у свет алгоритама и структура података.
  • Стундетима универзитета је додељена шанса да ураде свој домаћи задатак, искрено, и без варања.
  • Ентузијаисти функционалног или објектно оријентисаног програмирања могу да решавају проблеме у њиховом омиљеном језику.
  • Свака особа која жели да подели интересантне задатке са осталим члановима СПОЏ-а могу то да ураде аутоматски (неопходно је послати само један маил администраторима),
  • Особа која жели да организује такмичење, са било којим правилима, може то да уради у било које време, без помоћи системских администратора.

Категорије проблема[уреди | уреди извор]

Архивирани проблеми у СПОЏ-у су подељени на 5 категорија: [4]

  • Класични: Класични задаци спадају у задатке где је исход погрешан или тачан одговор.
  • Челенџ: Омогућавају корисницима да пријаве боље или лошије решење. Не постоји коначан одговор на овим типовима задатака.
  • Парцијални: Слични су челенџ задацима али имају сврху едуковања корисника.
  • Туторијал: Слични класичним проблемима али доста лакши, служе само за едукационе сврхе нпр. познавање познатијих алгоритама и слично.
  • Загонетке: Проблеми који садрже загонетку као под-проблем.

Такође може постојати лимит на неким од проблема где би се од такмичара захтевао ефикасан алгоритам што отежава задатак.

Суђење[уреди | уреди извор]

Кластери[уреди | уреди извор]

Решења се проверавају на 2 кластер рачунара:[5]

  • Пирамида (Интел пентиум III 733 MHz): Садржи се од Пентиум III машине које СПОЏ користи још од почетка 2004. године. Ове машине су споре у поређењу са осталим судијама. На овим кластерима дозвољен лимит коришћења меморије је до 256 мб.
  • Коцка (Интел пентиум G860 3 GHz): Ови кластери садрже Интел пентиум G860 процесор. Са овим кластером решења ће бити од 30 до 50 пута бржа него на Пирамиди тако да можете да очекујете ако тестирате своје решење код куће да ће имати сличну брзину као са овим кластером. Коришћењем овог кластера , такмичар на располагању има 1.536 MB.

Програми си проверени упоређивањем већ познатог одговора или покретањем већ готовог кода који је организатор припремио, и који је уникантан за сваки задатак.[2] Ово је потребно када постоје више одговора у неким од комлпекснијих проблмеа. Коришћењем рачунара, маркирање је конзистентно, поштено и може се користити за ефикасност у реалном окружењу, у поређењу са људским судијом.

Да би се осигурало да систем ради ефикасно, линукс команда RLIMIT_CPU омогућава ефикаснији рад тестова ако се задеси да наиђе на неки тест "сиромашног" садржаја.Команда sleep(), смањује меморијски простор који такмичар може да користи на одређеном задатку.

Овај бесплатни сајт омогућава студентима да добију логичко као и дизајн искуство на основу претходних успеха. Такође, овај систем не оцењује квалитет кода, или неке друге субјективне карактеристке које су неопходне за апликације у реалном окружењу.

Након пријављеног кога, корисник добија поруку да ли се код успешно покренуо или је дошло до грешке у процесирању: време је истекло,нетачан одговор или тачно решење.

Бодовање[уреди | уреди извор]

Бодови су додељени на основу категорије у којој су проблеми подељени[6]

  • Класични: Резултат за један проблем је бодова.
  • Челенџ: Резултат има 2 критерије које су:
    • за најбољи резултат у било ком челенџу: 3 бода,
    • за сваки мањи резултат: (корисников резултат у поређењу са најбоњим) points.
  • Партицијални: 0 points
  • Туторијал: 0 points
  • Загонетка: 0 points

Резултати за 'челенџ' категорију су типични за величину пријављеног проблема у бајтовима, али могу бити и различити. На пример, може бити број децималних места броја π.

запамтите: СПОЏ мења своју формулу бодовања веома често

Програмерска такмичења[уреди | уреди извор]

СПОЏ је коришћен као платформа за широк низ такмичења, од локалног до интернационалног нивоа и од такмичења које траје један сат до такмичења које траје и до годину дана. Такмичари обично причају различитим језиком тако да сајт обезбеђује угодно такмичење, као и да умањује рад организатора такмичења због великог броја алатки.[2]

Критике[уреди | уреди извор]

Корисници онлајн судија имају мало подстицаја за документацијом и креирањем доброг кода, што их чини мање спремним за креирање више типичних апликација које су потребне ван такмичења.[2]

Према резултатима оствареним на Универзитету технологије у Гданску[2],дошли су до закључка да коришћење онлајн судије и његовог система доводи до смањене комуникације између студента и особља(професора). Ипак, префесори посвећују више времена са студентима са потешкоћама који спорије прате одговарајуће лекције, елиминишући студенте који већ имају одговарајуће знање из те области.

Језици[уреди | уреди извор]

СПОЏ подржава око 40 језика у којима корисници могу да пријаве решење. Они су:

Ада, Асемблер, АВК, Баш, Бреин Фак, C, C++ и Ц99 стриктно, Ц#, Кложр, ЛИСП, Д,Ерланг, Фортран, F#, Го, Хаскел, Ајкон, Интеркал, Јар , Јава, Јаваскрипт, Лисп, Луа, Немерли, Nice, Node.js, Окемл, Паскал, Pdf, Прл, PHP, Pike, PostScript, Prolog, Python, Ruby, Scala, Scheme, sed, Smalltalk, Tcl, Tecs.

Погледатајте још[уреди | уреди извор]

Референце[уреди | уреди извор]

  1. ^ „Sphere Research Labs Legal Information”. Sphere Research Labs. Архивирано из оригинала 21. 06. 2015. г. Приступљено 21. 06. 2015. 
  2. ^ а б в г д 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. стр. 344. ISBN 9783540781387. 
  3. ^ Kosowski, Adrian (3. 09. 2004). „What is SPOJ's _purpose_?”. SPOJ. Приступљено 22. 09. 2014. 
  4. ^ „PROBLEMS”. SPOJ. Приступљено 22. 09. 2014. 
  5. ^ „Clusters”. SPOJ. Приступљено 22. 09. 2014. 
  6. ^ „http://www.spoj.com/ranks/users/”. SPOJ. Приступљено 22. 09. 2014.  Спољашња веза у |title= (помоћ)

Литература[уреди | уреди извор]

Спољашње везе[уреди | уреди извор]