Зміст
1. Передмова
В настановах описано роботу адміністратора системи ejudge щодо організації змагання (олімпіади, турніру, іспиту) з поданням електронних документів у режимі online і перевірки програм. Опис розраховано на працівника без досвіду роботи з ejudge. Описано не усі можливості ситеми, але опис дій, необхідних для організації проведення ІІІ (міського) етапу олімпіад з інформатики й інформаційних технологій є вичерпним. Вказівки щодо конфігурування викладено у тому порядку, в якому можна працювати, хоча деякі етапи можна поміняти місцями.
2. Створення переліку учасників з таблиці CSV
Далі описано спосіб створення переліку учасників, найзручніший для організаторів очних змагань в умовах, коли остаточний склад учасників формують після початку змагання. Саме так проходять у місті Києві учнівські олімпіади з інформатики й інформаційних технологій: на місця відсутніх за хворобою чи іншими обставинами попередньо заявлених учасників приходять інші учні безпосередньо на початок проведення олімпіади. Усіх їх розсаджують на вільні місця вже після того, як більшість учасників розпочнуть свою роботу. Займатися у цей час адмініструванням турніру означає затягувати проведення олімпіади. За таких обставин доречно:
зміни у складі учасників відображати на папері (в аудиторних протоколах наявності учасників чи заявах про допуск до участі);
облікові записи учасників прив'язати до пари (№ аудиторії, № ПК).
Зайти на головну сторінку ...\serve-control і натиснути кнопку User Editor.
Тут і далі трикрапкою позначено адресу сервера Ejudge (для ІІІ етапу Всеукраїнської учнівської олімпіади з інформатики у місті Києві це ejudge.kubg.edu.ua).
Перейти за посиланням [User creation operations] (операції створення користувача), розташованим унизу вікна.
Перейти за посиланням [Create users from a CSV table] (створити користувачів з таблиці CSV), розташованим унизу вікна.
У полі Charset з випадного списку вказати кодування (наприклад, utf-8).
Натиснувши кнопку Вибрати файл, у вікні діалогу операційної системи вибрати таблицю CSV — текстовий файл, що містить:
Наприклад, файл з таким наповненням:
login;email;password;cnts_password;name k001;email@gmail.com;register_pass;pass_for_using_in_contest;FullName
містить дані про одного учасника з такими значеннями полів:
Значення полів можуть бути порожніми. Випадкові паролі для участі у змаганнях можна породити перед кожним новим змаганням. Зазвичай за розділовий знак вибирають крапку з комою «;». У разі потреби можна вказати інший знак у полі Field separator (роздільник полів).
Якщо все буде зроблено правильно, то у результаті виконання описаних дій буде відображено перелік усіх зареєстрованих учасників. Інакше (наприклад, спробі повторно зареєструвати учасника з тим самим обліковим записом) буде відображено відповідне повідомлення.
3. Створення змагання з використанням .../cgi-bin/serve-control
З головної сторінки .../cgi-bin/serve-control перейти за посиланням Create new contest.
Призначити номер змагання Contest number, виставивши мітку:
вибрати шаблон конкурсу Contest template, виставивши мітку:
і натиснути кнопку Create contest (Створити змагання).
Задати властивості змагання, переходячи на відповідні вкладення. Нижче подано ілюстрації для змагання, в якому учасники надсилають на перевірку не коди програм, а (бінарні) файли, які не потребують компіляції, а будуть перевірені вручну.
4. Створення змагання з панелі адміністрування
Зайти на сторінку .../admin/panel/, ввести обліковий запис і пароль, натиснути кнопку Увійти.
Увійшовши у панель керування, перейти за посиланням Змагання в системі ejudge.
При створенні нового змагання Заповнити поля Назва, Назва англійською і вибрати тип змагання:
Звичайне. (KIROV) Кожну програму, що приймають на перевірку, запускають на усіх тестах. Якщо програма проходить всі тести, вона визнають успішною (ОК) і за неї отримують максимальний бал. Якщо програма не пройшла хоча б один тест, вона отримує статус Partial Solution і частковий бал. Серед усіх програм одного учасника для однієї задачі враховують ту, за яку було отримано найбільший бал.
ACM. Розв'язання вважають прийнятим, якщо воно проходить усі тести. Тестування відбувається до першого непройденого тесту. Прийняте розв'язання отримує штрафний бал, що дорівнює кількості хвилин, що пройшли від початку змагання, плюс 20 штрафних хвилин за кожну неуспішну спробу по даній задачі, яка передує першій успішній спробі здачі розв'язання. Учасників упорядковують за зменшенням числа прийнятих задач, а у випадку рівності задач — у порядку збільшення штрафного часу.
Олімпіада. Змагання може перебувати у двох режимах: прийом розв'язань на перевірку та перевірка розв'язань. В режимі прийому роботи перевіряються на претестах. Тестування відбувається до першого непройденого тесту. В режимі перевірки розв'язання, що пройшли усі претести, тестуються на повному наборі тестів. Якщо програма проходить всі тести, її визнають успішною (ОК) і вона отримує максимальний бал. Якщо програма не пройшла хоча б один тест, вона отримує статус Partial Solution і частковий бал.
Примітка. При створення змагання з використанням .../cgi-bin/serve-control вид змагання можна було задати, перебуваючи на вкладенні Global settings (serve.cfg) — див. ілюстрацію вище.
Натиснути кнопку Додати змагання.
Для редагування наявного змагання потрібно перейти за посиланням Редагувати змагання — див. крайній правий стовпчик таблиці на малюнку вище.
5. Створення завдання з панелі адміністрування
Перебуваючи на панелі адміністрування, перейти за посиланням Додати завдання.
Перейти за посиланням Додати завдання, вказати параметри тестування (на малюнках знизу подано заповнення полів для завдання 1.1. Прямокутник відбірково-тренувальних зборів команди міста Києва) і натиснути кнопку Додати завдання внизу сторінки.
Прийнятним є створення завдання без оприлюднення умов завдань саме через сервер. Це доцільно в умовах, коли існує загроза виходу з ладу мережі чи сервера з Ejudge при відсутності дублювання серверів мережі та Ejudge. У цьому випадку умови поширюють на початку проведення олімпіади (на папері або електронною копією через мережеву теку), що гарантує наявність умови на місці учасника незалежно від працездатності Ejudge і можливість завершити змагання навіть при втраті можливості використовувати Ejudge.
6. Долучення завдання до змагання
Пебуваючи на вкладенні Каталоги завдань, перейти за посиланням на назві завдання
і вибрати змагання з випадного списку.
7. Призначення нерівномірного розподілу балів тести
З головної сторінки .../cgi-bin/serve-control перейти за посиланням Settings.
Перейти на вкладення Problems (serve.cfg) (завдання) і натиснути кнопку Show details (показати деталі) для відповідного завдання.
У розділі Scoring (оцінювання) клацнути на словах Test scores for tests (бали за тести).
У вікні діалогу Scoring (оцінювання) виставити бали за:
і натиснути кнопку Save.
Натиснути кнопку COMMIT changes! і отримати повідомлення Contest is saved successfully. Внизу цієї самої сторінки натиснути кнопку To the top (догори).
8. Встановлення тривалості змагання
Увійти у систему зі сторінки .../cgi-bin/master з указанням ID змагання і отримати такий вид вікна.
Посилання (на зеленому тлі) мають таке призначення:
Ввести значення Planned start time (запланований час початку) у форматі yyyy/mm/dd hh:mm:ss (наприклад, 2019/09/26 11:05:19) і натиснути кнопку Reshedule (оновити розклад).
При потребі змінити значення Duration (тривалість) у форматі h:mm:ss (наприклад, 5:00:00) і натиснути кнопку Chanhe duration (змінити тривалість). При введенні 0 тривалість змагання необмежено. Це доцільно робити при проведенні тренування взаємодії з системою.
9. Встановлення або зміна обмежень на подання
(верхня межа кількості, об'єм надісланого)
З головної сторінки .../cgi-bin/serve-control перейти за посиланням Settings (налаштування).
Перейти на вкладення Problems (serve.cfg) (завдання) і натиснути кнопку Show details (показати деталі).
У розділі Submission (надсилання) клацнути на напису Max submissions for the problem (максимум надсилань на завдання — виділено блакитним кольором).
У вікні діалогу Submission (головні властивості) заповнити відповідні поля і натиснути кнопку Save.
Натиснути кнопку COMMIT changes! і отримати повідомлення Contest is saved successfully.
Внизу цієї самої сторінки натиснути кнопку To the top (догори).
Примітка. Якщо у полі Submit is binary? (наліслано двійковий файл) записано Yes, програму не компілюють.
Об'єм надісланого можна змінити, перейшовши з головної сторінки .../cgi-bin/serve-control за посиланням Settings (налаштування)
і далі на вкладення Global settings і Contestant quotas.
Після змін потрібно натиснути кнопку COMMIT changes! і отримати повідомлення Contest is saved successfully.
10. Заборона зміни пароля учасником
З головної сторінки .../cgi-bin/serve-control перейти за посиланням Settings (налаштування).
На вкладенні General settings (contest.xml) (загальні налаштування) у розділі Contest flags (прапорці змагання) клацнути на Disable password change? (унеможливити зміну пароля? — виділено блакитним кольором на малюнку нижче).
У вікні діалогу Contest Options (параметри змагання) виставити потрібну мітку й натиснути кнопку Save (зберегти).
Натиснути кнопку COMMIT changes! і отримати повідомлення Contest is saved successfully.
Внизу цієї самої сторінки натиснути кнопку To the top (догори).
11. Запис учасників на змагання через .../cgi-bin/serve-control
Примітка. Ejudge надає можливість доволити учасникам самостійно реєструватися у режимі online на участь у змаганні. Такий варіант не актуальний при проведенні ІІІ етапу олімпіад у місті Києві, тому його опису тут не подано.
Увійти у систему зі сторінки .../cgi-bin/serve-control і натиснути кнопку User Editor.
При потребі збільшити кількість облікових записів, які відображено на сторінці (випадний список внизу таблиці — див. малюнок нижче). У переліку користувачів вибрати потрібних, поставивши мітки у першому стовпчику таблиці зліва
і перейти за посиланням [Registration operations] (реєстраційні дії) під таблицею.
Заповнити поле Contest ID номером змагання (на ілюстрації нижче 3) і натиснути кнопку Register for another contest (зареєструвати для іншого змагання).
Отримавши вікно такого вигляду,
натиснути на кнопку Register!
12. Запис учасників на змагання через .../cgi-bin/master
Увійти у систему зі сторінки .../cgi-bin/master з указанням ID змагання і перейти за посиланням Regular users.
Виставити мітку Show Pending/Rejected і помітити учасників.
Вибрати ОК для випадного списку і натиснути кнопку Set status.
13. Реєстрація учасників змагання
Примітка. Реєстрація учасників змагання адміністратором — обов'язковий крок після запису учасників перед проведенням змагання.
Увійти у систему зі сторінки .../cgi-bin/serve-control і натиснути кнопку User Editor.
Заповнити поле Jump to contest і натиснути кнопку з такою самою назвою.
Помітити незареєстрованих учасників і перейти за посиланням [Status operations].
Вибрати ОК для випадного списку Status і натиснути кнопку Сhange status.
Натиснути кнопку Сhange!
Пересвідчитися, що статус змінено на OK.
14. Породження паролів учасників змагання
Увійти у систему зі сторінки .../cgi-bin/master з указанням ID змагання і перейти за посиланням Action / Generate registration passwords (Дії / Породити паролі реєстрації).
Підтвердити намір, натиснувши кнопку Generate random registration passwords (породити випадкові паролі реєстрації).
Отримати результат,
який можна переглянути і пізніше, перейшовши з головної сторінки .../cgi-bin/master за посиланням View / Registration passwords.
15. Обмеження доступу за ІР-адресою
Увійти у систему зі сторінки .../cgi-bin/serve-control і перейти за посиланням Settings (Налаштування) відповідного змагання.
Перейти на вкладення General Settings (contest.xml) / IP-adress access restrictions (Загальні налаштування contest.xml / Обмеження доступу за IP-адресою).
У рядку Access to contest participation (Доступ до участі у змаганні) Перейти за посиланням Edit (Редагувати).
Виставити як усталено відмову у доступі.
Натиснувши кнопку з написом Add (додати), виставити доступ для адрес з певним префіксом. Малюнок нижче показує результат для роботи у навчальному корпусі Київського університету імені Бориса Грінченка по вул. Маршала Тимошенка 13 Б станом на 1 березня 2020 року. Всередині вказаного приміщення сталим префіксом IP-адреси є 10.1, тобто допустимі адреси мають вигляд 10.1.*.*, де * — число у діапазоні 0..255. У загальному випадку за відповідною інформацією потрібно звертатися до системного адміністратора.
Перейти за посиланням Back і отримати вікно такого вигляду.
Зберегти налаштування, натиснувши кнопку з написом COMMIT changes! (Зафіксувати зміни!) і отримати повідомлення Contest is saved successfully (Змагання успішно збережено). Внизу поточної сторінки натиснути кнопку To the top (догори).
16. Контроль за перебігом змагання
Дані про поточний стан з посиланнями — в розділі Submissions (подання) головної сторінки .../cgi-bin/master.
Зведені результати про перебіг змагання — після переходу за посиланням Standings (Турнірна таблиця) головної сторінки .../cgi-bin/master можна переглянути результати (бали за кожну задачу, кількість розв'язаних задач і загальну кількість балів) для усіх учасників.
Перевірка можливості роботи — в розділі View the problem statement and send a submission головної сторінки .../cgi-bin/master. Потрібно вибрати завдання, натиснути кнопку Select problem (вибрати задачу) для переходу на сторінку перегляду умови задачі і подання розв'язання (з боку журі).
Завантаження результатів змагання — після натискання кнопки Download archive of runs розділу Submissions на головній сторінці .../cgi-bin/master потрібно виставити параметри формування архіву. Наприклад, так, як показано на малюнку нижче для змагань з інформатики, коли всі подані програми потрібно мати на випадок перетестування.
Для змагань з інформаційних технологій параметри формування архіву завдань можуть бути наступними.
Після цього потрібно натиснути кнопку Download archive of runs (завантажити архів прогонів), розташовану у вікні браузера під зображеним вище, і отримати для завантаження архів у форматі tgz.
Встановлення часу для припинення й відновлення відображення результатів Standings
З головної сторінки .../cgi-bin/serve-control перейти за посиланням Settings.
Перейти на вкладення Global settings (serve.cfg) (глобальні налаштування) і у розділі Main Properties (головні властивості) клацнути на полях, праворуч від написів:
які на малюнку нижче виділено блакитним тлом.
У вікні діалогу Main Properties (головні властивості) заповнити відповідні поля і натиснути кнопку Save.
Натиснути кнопку COMMIT changes! і отримати повідомлення Contest is saved successfully.
Внизу цієї самої сторінки натиснути кнопку To the top (догори).
Примітка. Останній крок — обов'язковий при внесенні змін. Після його здійснення для врахування змін Ejudge потрібно перезапустити.
Відключення відображення результатів Standings
З головної сторінки .../cgi-bin/serve-control перейти за посиланням Settings (налаштування).
Перейти на вкладення Global settings (serve.cfg) (глобальні налаштування) і у розділі Contestant capabilities (можливості учасників) змінити значення у полі Disable build-in standings in new-client? (вимкнути вбудовану таблицю нового клієнта? — виділено блакитним тлом на малюнку нижче) на Yes (так).
У вікні діалогу Contestant capabilities (головні властивості) змінити відповідне поле і натиснути кнопку Save.
Натиснути кнопку COMMIT changes! і отримати повідомлення Contest is saved successfully. Внизу цієї самої сторінки натиснути кнопку To the top (догори).