КЗВО «Дніпровська академія неперервної освіти» ДОР» надсилає для практичного використання методичні рекомендації щодо проведення ІІ етапу Всеукраїнської учнівської олімпіади з інформатики (програмування) у 2018-2019 навчальному році.

1) У заяві на участь у III етапі Всеукраїнської олімпіади команди району (міста), які подаються від оргкомітету II етапу, повинна (обов’язково) бути  вказана мова програмування.

2) Електронні архіви завдань для учнів, рекомендації та тести для перевірки для журі, які розроблені для проведення ІІ етапу олімпіади з інформатики, будуть надіслані електронною поштою на поштові скриньки відповідальних за проведення олімпіад, за добу до дати проведення олімпіади в ОТГ (районі (місті).

Для відкриття архівів потрібні паролі доступу, які будуть надіслані електронною поштою на поштові скриньки районних (міських) відділів освіти о 8 годині у день проведення олімпіади.

3) Вважаємо за доцільне провести районну (міську) олімпіаду з інформатики (програмування) з використанням системи ejudge у мережі Інтернет, як це відбувається на обласній олімпіаді. Тим самим учні отримають відповідній досвід у використанні системи ejudge під час обласної олімпіади. Для журі та оргкомітету ІІ етапу олімпіади це створює зручні умови для перевірки робот учнів.

Відповідні точки входу, логіни та паролі для учнів та для журі будуть надіслані електронною поштою на поштові скриньки відповідальних за проведення олімпіад. Точки входу будуть доступні о 10 годині у день проведення олімпіади.

4) Розв’язки завдань переможців від ОТГ (району (міста) олімпіади з інформатики (програмування)  необхідно представити в оргкомітет обласної олімпіади з інформатики в електронному вигляді на ту саму поштову скриньку, з якої були отримані завдання для розв’язання, до 17 години наступного за олімпіадою дня відповідно до графіку проведення олімпіад.

 5) На сайті http://www.olymp.vinnica.ua  Центру підтримки та проведення олімпіад школярів з використанням можливостей Internet продовжується дистанційна олімпіада з інформатики (програмування) Зареєстровані для участі у олімпіаді учні в подальшому стають (як показує багаторічний досвід, вже традиційно) переможцями обласної олімпіади.

6) Рекомендуємо  використовувати сайти https://informatics.msk.ru/moodle/, http://www.e-olimp.com.ua/ та http://acmp.ru/ у підготовці до розв’язання олімпіадних завдань.

7) Вважаємо за необхідне учням 2-11 класів взяти участь 11-13 листопада 2018 року у черговому міжнародному конкурсі з інформатики та комп’ютерного мислення “Бебрас”.

Вик. Мірошниченко А.А., к. н., доцент кафедри управління інформаційно – освітніми проектами КЗВО «Дніпровська академія неперервної освіти» ДОР», olymp2012@ua.fm,  050-4517813    


Методичні рекомендації
рекомендації щодо проведення II-го етапу Всеукраїнської учнівської олімпіади з інформатики (програмування) та підготовки  до ІІІ етапу Всеукраїнської учнівської олімпіади з інформатики у 2018/2019 навчальному році

Метою проведення Всеукраїнської учнівської олімпіади з інформатики є стимулювання творчого самовдосконалення учнів, зацікавлення їх у поглибленому вивченні інформатики; виявлення та розвиток обдарованих учнів, сприяння розвитку алгоритмічного мислення у школярів, підвищення інтересу до програмування; формування команди для участі в Міжнародній учнівській олімпіаді з інформатики.

Документом, що визначає завдання, структуру, технологію проведення Всеукраїнських олімпіад є Положення про Всеукраїнські учнівські олімпіади, турніри, конкурси з навчальних предметів, конкурси-захисти науково-дослідницьких робіт та конкурси фахової майстерності (затверджено наказом Міністерства освіти і науки, молоді та спорту України № 1099 від 22.09.2011 та зареєстровано в Міністерстві юстиції України від 17 листопада 2011 року за № 1318/20056, зі змінами, внесеними згідно з наказами МОНмолодьспорту України № 29 від 16.01.2012 та № 360 від 26.03.2012).

Відповідно до Положення ІІІ етап олімпіади з інформатики проводиться у два тури. Рекомендовано проводити два практичні тури.

Завдання олімпіади

Завдання олімпіади мають бути алгоритмічного характеру, тобто основними результатами роботи учасника має бути програма, що реалізує правильний та ефективний алгоритм, розроблений учасником

Традиційно запропоновані задачі відповідають такій структурі:

  1. Розробити програму, що за вхідним файлом визначеної структури буде отримувати вихідний, згідно з умовами задачі.

Задачі саме такого типу найчастіше пропонуються на олімпіадах в останні роки.

  1. Розробити програму, що отримуватиме вхідні дані та повідомлятиме про результати їх обробки, інтерактивно взаємодіючи з бібліотекою журі.

Такий підхід зручний тоді, коли необхідно, щоб програма учасника не містила на початку роботи всієї інформації, а отримувала її шляхом звертання до бібліотеки. Наприклад, у такий спосіб можуть бути оформлені задачі-ігри.  Задача такого типу «Нім» була запропонована на IІІ етапі Всеукраїнської учнівської олімпіади з інформатики.

  1. За відомими вхідними даними отримати результати, що відповідають умові задачі.

У такому випадку необхідно здати не програму, а саме вихідний файл для кожного тесту. Звичайно, задача, що задається певними вхідними файлами настільки важка, що її розв’язок  важко знайти без комп’ютера.

При підготовці задач бажано обирати задачі з розділів, що визначені для використання на Міжнародних олімпіадах з інформатики, відповідний документ можна знайти за адресою http://people.ksp.sk/~misof/ioi-syllabus/ioi-syllabus.pdf.

Не рекомендується пропонувати задачі, розв’язання яких потребує використання архітектурних особливостей комп’ютерів, знань з області системного програмування, організації складного інтерфейсу користувача, використання нестандартних бібліотек.

При підготовці умов завдань необхідно звертати особливу увагу на обмеження  вхідних даних; формат вхідних та вихідних даних; імена файлів (назва файлу з вихідним текстом програми, який повинен здати учасник; назви вхідного та вихідного файлів); приклади вхідних та вихідних даних; описання функцій, що доступні у бібліотеці журі (для 2-го типу задач).

Запитання щодо умов завдань

Учасники олімпіади повинні мати змогу ставити запитання щодо умов задач впродовж часу їх розв’язання. Якщо за цей час учасники знайдуть помилку або двозначність в умові, тоді до умови можна буде внести поправку та вчасно оголосити про неї усім учасникам.

Запитання, що ставить учасник, повинні передбачати відповідь «Так» або «Ні». Відповіддю журі на запитання, окрім «Так» або «Ні», може бути «Відповідь міститься в умові», якщо умова задачі містить достатньо інформації, щоб учасник міг сам отримати відповідь, уважно перечитавши її, «Некоректне питання», якщо неможна дати однозначну відповідь на питання, або «Не коментую», якщо питання стосується інформації, яку журі не бажає розголошувати, наприклад, методу розв’язання задачі.

Бажано, щоб на запитання, які стосуються задачі, відповідала одна й та ж людина — автор задачі. У такому випадку учасники отримують однакові відповіді на однакові запитання.

Перевірка завдань

Програми-розв’язки рекомендується перевіряти на множині тестів. До кожної задачі необхідно підготувати набір тестових даних, які б дозволяли розрізнити правильні та неправильні розв’язки, а серед правильних — більш та менш ефективні.

Програму учасника необхідно запустити на кожному тесті окремо. Якщо програма видає результат, що задовольняє вимогам задачі, та працює не більше, ніж час, виділений на цей тест, то учаснику нараховуються бали за цей тест. Також тести можуть об’єднуватись в блоки, особливості кожного із блоків вказується в умові.

Кількість тестів в наборі для однієї задачі не повинна бути меншою 10. Серед тестів повинні бути: декілька тестів невеликого розміру, виконання яких свідчить про правильність запропонованого алгоритму; тести, що перевіряють коректність роботи програми у спеціальних випадках (вироджені випадки, відсутність розв’язку); тести великого розміру, виконання яких свідчить про ефективність запропонованого алгоритму.

Оскільки основним критерієм оцінки робіт учасників є правильність та ефективність запропонованих алгоритмів, ненавмисні помилки у форматі введення та виведення або у назвах файлів не повинні суттєво впливати на оцінювання робіт. Для своєчасного виявлення учасниками таки помилок необхідно надати учасникам можливість надсилати свої розв’язання на перевірку під час туру змагань, або надати допоміжні програми, за допомогою яких учасники зможуть перевірити правильність назв файлів та формату виводу.

Особливості проведення ІІІ етапу олімпіади 2018/2019 н.р.

Структура (зокрема, кількість обов’язкових турів), дати проведення ІІІ етапу Всеукраїнської учнівської олімпіади з інформатики 2018 року визначається департаментами (управліннями) освіти і науки обласних, Київської міської державної адміністрації, відповідними оргкомітетами ІІІ етапу Всеукраїнської учнівської олімпіади з інформатики та предметно-методичними комісіями, сформованими цими оргкомітетами.

Перевірка завдань

Програми-розв’язки рекомендується перевіряти за системою тестів. До кожної задачі завчасно буде підготовлений набір тестових даних, які б дозволяли розрізнити правильні та неправильні розв’язки, а серед правильних — більш та менш ефективні.

Програму учасника необхідно запустити на кожному тесті окремо. Якщо програма видає результат, що задовольняє вимогам задачі та працює не більше, ніж час, виділений на цей тест, то учаснику нараховуються бали за цей тест.

На міжнародній олімпіаді в останні роки практикується нарахування неповної кількості балів за тест, у разі, якщо програма видає неоптимальну відповідь (яка повністю задовольняє умовам задачі та якщо час обчислення тесту не перевищує відповідне обмеження).

Рекомендована кількість тестів в наборі для однієї задачі — 10. Для більш складних задач це число можна збільшити до 20. Серед тестів повинні бути: декілька тестів невеликого розміру, виконання яких свідчить про правильність запропонованого алгоритму; тести, що перевіряють коректність роботи програми у спеціальних випадках (вироджені випадки, відсутність розв’язку); тести великого розміру, виконання яких свідчить про ефективність запропонованого алгоритму.

Необхідно звернути особливу увагу щодо суворого дотримання форматів введення та виведення даних учасниками олімпіади. У разі порушення таких вимог (наприклад, зайвий пропуск у кінці рядка, зайве переведення рядку в кінці вихідного файлу, неправильна назва вхідного або вихідного файлу і таке інше), до учасників застосовуються санкції як то відсотки штрафних балів або не зарахування тесту чи задачі взагалі.

Проведення змагань

Рекомендовано проведення II етапу олімпіади з використанням системи ejudge синхронно з іншими районами, використовувати центральний сервер прийому і перевірки робіт. Завдання для цього варіанту будуть розроблені членами журі IIІ етапу всеукраїнської олімпіади, та надіслані до місць проведення за декілька годин до початку туру. Також вони також будуть доступні на центральному сервері. Результати перевірки будуть доступні для кожного району окремо та доступні обласному оргкомітету.

Апаратне та програмне забезпечення

Обидва тури олімпіади необхідно проводити з використанням комп’ютеризованих робочих місць з операційними системами Windows. На комп’ютері має бути встановлений файловий менеджер (наприклад, The FAR manager, Total Commander, тощо).

Учасники олімпіади можуть вибирати мову програмування із заданого переліку: C або C++, Java, Pascal, Python. Середовища розробки програм CodeBlocks 13.12 (чи новішої версії), Eclipse(https://eclipse.org/downloads/), Free Pascal 2.2.0 (чи новішої версії), WingIde101 5.1.12 (чи новішої версії) (http://www.wingware.com/downloads/wingide-101). Для перевірки робіт учасників будуть використані такі версії компіляторів: GCC 4.7.2, Java 1.7 (http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html), FPC 2.4, Python 3.4.3 (https://www.python.org/downloads/).

Такі ж мови програмування, середовища розробки програм і компілятори будуть використані і на III-му етапі.

Зауважуємо, що журі не дає гарантії, що всі завдання олімпіади можуть бути розв’язаними з допомогою Java, Pascal і Python на максимальний бал. У випадку коли учень надіслав одне завдання на кількох мовах, буде зарахована найбільш вдала посилка.

Програми, що створюються учасниками повинні відповідати стандарту мов програмування на яких вони написані, повинні використовувати стандартні бібліотеки та не реалізовувати графічний інтерфейс, не використовувати системні ресурси, сторонні файли та бібліотеки, які не передбачені завданням.

 На час проведення турів олімпіади забезпечити неможливість взаємодії учасників олімпіади з використанням мережних технологій, в тому числі і бездротових.

Користуватися власною літературою, друкованими або рукописними матеріалами, засобами комунікації (Інтернет, мобільні телефони тощо) заборонено.

Рекомендована література

Караванова Т.П. Методика розв’язування алгоритмічних задач. Побудова алгоритмів. – Кам’янець-Подільський: Аксіома, 2014.

Караванова Т.П. Методика розв’язування алгоритмічних задач. Основи Алгоритмізації та програмування. – Кам’янець-Подільський: Аксіома, 2014.

Караванова Т.П. Інформатика. Методи побудови алгоритмів та їх аналіз. – Київ: Генеза, 2007.

Караванова Т.П. Інформатика. Основи алгоритмізації та програмування. 777 задач з рекомендаціями та прикладами. – Київ: Генеза, 2012.

Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. — M.: Мир, 1979.

Ахо А., Хопкрофт Дж., Ульман Дж. Структуры данных и алгоритмы. — С.-П.: Вильямс, 2000.

Грузман М.З. Эвристика в информатике. - Винница: Арбат, 1998.

Гуржій А.М., Бондаренко В.В., Співаковський О.В., Ягіяєв Ш.І. Всеукраїнські та міжнародні олімпіади з інформатики в задачах та рішеннях: Посібник. – видання друге, доповнене і перероблене. – Херсон: Айлант.- 2007.

Кнут Д. Искусство программирования для ЭВМ - М.: Мир, 1976 - 3 тома (Основные алгоритмы, получисленные алгоритмы, сортировка и поиск)

Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. — М.: МЦНМО, 1999

Кристофидес Н. Теория графов. Алгоритмический подход. М.: Мир, 1978.

Липский В. Комбинаторика для программистов. — М.: Мир, 1988.

Препарата Ф., Шеймос М. Вычислительная геометрия. Введение. — М.: Мир, 1989.

Рейнгольд Э., Нивергельт Ю., Део Н., Комбинаторные алгоритмы, М., Мир, 1980

Ставровский А.Б. Турбо Паскаль 7.0. Учебник. - К.:Издательская группа BHV, 2000.

Шень А. Программирование: теоремы и задачи. — М.: МЦНМО, 1995.

Рекомендовані Інтернет-джерела

http://www.uoi.in.ua 

http://www.olymp.vinnica.ua/

http://www.ioinformatics.org/ 

http://olymp.sumdu.edu.ua

http://www.e-olimp.com.ua/

https://www.topcoder.com/

https://www.hackerrank.com/