$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Мала такмичења

Да бисте користили ову функционалност, морате имати наставнички налог. Ако ваш налог није наставнички, погледајте овде како да добијете наставнички налог.

Петља вам нуди могућност и за креирање малих такмичења. Ово је посебно корисно зато што ова такмичења користе исто такмичарско окружење као и званична такмичења из програмирања у Србији, али су превасходно намењена за вежбање програмирања. Мала такмичења се могу користити на часовима вежби или блок наставе, за домаће задатке, на додатној настави, за припрему за такмичења и томе слично. У овом упутству биће објашњено како да као наставник креирате и користите мала такмичења. Погледајте ово упутство како бисте видели како такмичења изгледају из угла ученика.

Креирање малих такмичења

Ако одете на део сајта https://petlja.org/cpanel/Competitions добићете могућност да направите мало такмичење кликом на Направи такмичење. Добићете прозор у коме ћете моћи да дате назив такмичењу и да одредите од када до када ће такмичење трајати.

../_images/mala_takmicenja1.png

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

../_images/mala_takmicenja2.png

Када скролујете надоле, следеће што ћете видети је подешавање видљивости. Ако обележите да је такмичење јавно, сви корисници Петље ће моћи да га виде и сви корисници ће моћи да раде задатке, али ће само они које ви додате као учеснике ући на ранг листу (више о додавању учесника касније у упутству). Ако је обележено поље да су Резултати видљиви такмичарима, само такмичари ће моћи да виде ранг листу, а ако је обележено поље Резултати видљиви јавно, сви корисници ће моћи да виде ранг листу. Ако ни једно од ова два није обележено, само ћете ви и учесници који су обележени као организатори моћи да видите ранг листу. Ако је обележено поље Дозволи приступ окружењу након краја такмичења, учесници ће имати могућност да раде задатке и након завршетка такмичења, али њихова решења неће ући у ранг листу. Ако обележите поље Архивирај, такмичење више неће бити видљиво на Арени у пољу Моја такмичења, што може бити корисно уколико имате јако велики број такмичења и не желите да ово такмичење и даље буде видљиво на Арени.

../_images/mala_takmicenja3.png

Након тога имаћете могућност да подесите начин сабирања поена. Ако је поље Рачуна се најбољи резултат обележено, за сваки задатак ће се рачунати најбоље послато решење. Ако је ово поље необележено, за сваки задатак ће се рачунати последње послато решење.

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

На крају, ако је обележена опција Увек проверити све тест случајеве, свако послато решење ће бити извршено против сваког тест примера. Ако ова опција није обележена, тестирање послатог решења се прекида када се појави тест на коме програм не даје очекивани одговор под датим временским и просторним ограничењима. Овакав начин тестирање има смисла (растерећује систем) ако се признају само комплетно тачни задаци.

../_images/mala_takmicenja4.png

На крају, можете подесити минимално време између два послата решења, које ће онемогућити такмичарима да шаљу решења у интервалу краћем од оног који сте навели и тиме "затрпају" систем захтевима за тестирање. У следећем пољу имате могућност да одредите и колико ће решења такмичар укупно моћи да пошаље за сваки задатак.

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

../_images/mala_takmicenja5.png

Задаци

Кликом на поље задаци, приступићете одабиру програмских језика који су такмичарима доступни као и одабиру задатака. Просто штиклирајте програмске језике које желите да учините доступним на такмичењу. Задатке додајете тако што изаберете задатак међу Петљиним материјалима и просто у поље „Додај задатак“ укуцате назив задатка. Ако желите, можете да промените назив сваког задатка у оквиру свог такмичења тако што ћете у поље „Назив унутар такмичења“ унети жељени назив. Када то урадите кликните на плусић и задатак ће се појавити у вашем такмичењу. Имате могућност и да уклоните задатак кликом на канту.

../_images/mala_takmicenja6.png

Бодовање

Уколико се задаци само додају у такмичење без посебног дефинисања начина бодовања, сваки тест пример сваког задатка вредеће 1 бод. Међутим, постоји и могућност прилагођавања система бодовања потребама власника такмичења. Испод дела са задацима налази се део намењен оцењивању. Са леве стране налази се падајући мени у који треба унети слово које означава задатак за који желите да прилагодите бодовање.

../_images/mala_takmicenja7.png

У овом случају задатак Столице има ознаку А, и за њега ће бити подешено бодовање. Затим је потребно у едитор текста у yамл формату унети подешавања помоћу којих ће наш систем знати како да аутоматски оцењује решења. Подешавања ће бити објашњена на следећа два примера.

Пре свега, потребно је подесити да type има једну од две могуће вредности: testcase или subtask. Ако је type подешен тако да има вредност testcase, бодовање ће се вршити одвојено за сваки тест пример и сваки тест пример може носити произвољан број бодова (тест примере за сваки задатак можете видети на начин на који је објашњено у поглављу „Збирка“ овог упутства. Ако type има вредност subtask, тест примери су груписани у подзадатке и оцењивање се врши на основу резултата на свим тест примерима у оквиру једног подзадатка (групе тест примера). Score_total представља укупан број поена који задатак носи и потребно је да постоји и у случају да је type подешена на subtask и у случају да је type подешен на testcase. Имајте у виду да ова вредност треба да се поклопи са збиром поена свих тест примера или подзадатака.

Groups се користи искључиво када type има вредност субтаск и обавезно садржи 3 елемента:

  • id – идентификује подзадатак и према овом елементу су поређани подзадаци. У примеру горе су то подзадаци 1, 2, 3.

  • score – број поена који носи овај подзадатак уколико је на свим тестовима тог подзататка статус ОК

  • testcases – редни бројеви тест примера који улазе у овај подзадатак (броји се од 1).

На горњем примеру 1, можемо видети да је за изабрани задатак подешено да има 3 подзадатка - у Groups су дефинисана 3 подзадатка, 1, 2, 3, од којиј 1 носи 20 поена, 3 носи 50 и 2 носи 30 (дефинисано помоћу score). Подзадатак 1 у себе укључује тест примере 1, 2, 3, подзадатак 2, укључује тест примере 4, 5, 6, о подзадатак 3 обухвата тест примере 7, 8, 9, 10 (дефинисано помоћу testcases).

У примеру 2 наведеном изнад, приказан је начин на који се може подесити вредност тест примера уколико се определите за тај начин бодовања. score_overrides се користи искључиво када је type подешен на testcase и то када не желимо униформан распоред поена по тест примерима. После њега је потребно дефинисати следеће елементе:

  • name: редни број конкретног тест примера (бројећи од 1)

  • score: број поена које носи задати тест пример

Треба имати у виду да сви тест примери који нису наведени у score_overrides носе једнак број поена, који се одређује на основу score_total вредности. Ако задатак носи 100 поена (дефинисано помоћу score_total) укупно и постоји 12 тест примера, а за два тест примера је помоћу score_overrides дефинисано да носе 0 поена као у горњем примеру, остатак поена се распоређује униформно на све остале примере (сваки тест пример носиће 10 поена). Овде водите рачуна да преостали број поена (разлика тотала и суме експлицитно задатих скорова) буде дељив бројем преосталих примера (у противном ће вам бити пријављена грешка). На крају, public преставља листу која садржи све идентификаторе тест примера или подзадатака који су јавни, то јест за које такмичар добија потпуну повратну информацију (може да види за које вредности је његов програм послао тачно решење, а за које не). Уобичајено је да се подеси да јавни тестови носе нула поена, мада је могуће и свако друго подешавање.

Када унесете све детаље бодовања решења за дати задатак, обавезно кликните на стрелицу навише za отпремање (upload) у дну прозора за унос описа бодовања (по потреби скролујте наниже).

../_images/mala_takmicenja9.png

Након клика сачекајте да видите да ли добијате неку поруку о грешци. Између осталог водите рачуна о томе да је YAML формат врло осетљив на водеће белине у редовима.

Учесници

Кликом на поље „Учесници“ моћи ћете да контролишете ко су учесници вашег такмичења. У поље Корисник/Група треба унети корисничко име корисника или име групе коју желите да додате. Кориснику или групи одређујете улогу тако што у пољу „Улога“ изаберете да ли ће се радити о организатору или о такмичару. Сваком кориснику можете да доделите и пенал са којим ће почети такмичење (ако се такмиче ученици петог и шестог разреда, могуће је пенализовати ученике шестог разреда на пример). Учеснике додајете кликом на плусић, а, уколико је потребно, уклањате их кликом на канту.

../_images/mala_takmicenja8.png