середа, 21 вересня 2016 р.

Позаурочна робота вчителя інформатики. Особливості олімпіад з інформатики

Позаурочна робота вчителя інформатики. Особливості олімпіад з інформатики

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

Найбільш гнучкою формою позакласної роботи є гурток. У гуртку беруть участь учні різних вікових категорій, передбачається початкова зацікавленість до інформатики. План роботи гуртка повинен передбачати не тільки доповіді вчителя, а й повідомлення гуртківців, створення веб-сайту, участь в організації і проведенні масових форм позакласної роботи з інформатики тощо.
До масових форм позакласної роботи з інформатики можна віднести:
§  тематичні вечори;
§  тижні інформатики;
§  турніри, творчі ігри з інформатики тощо.
Особливе місце серед інших організаційних форм займають олімпіади з інформатики. Основні завдання, вирішенню яких сприяють олімпіади з інформатики:
§  підвищення інтересу учнів загальноосвітніх шкіл до предмету;
§  виявлення здатності учнів застосовувати знання з інформатики до розв’язування задачі з різних предметних галузей;
§  виявлення школярів, які мають виражені здібності та інтерес до наукової творчості;
§  надання допомоги учням старших класів у виборі професії;
§  активізація роботи факультативів, гуртків та інших форм позакласної та позашкільної роботи із школярами.
Традиційно під олімпіадами з інформатики розуміють олімпіади з програмування. Можна вказати дві основні причини такого вузького розуміння інформатики по відношенню до олімпіад.
По-перше, у часи «до персональних комп’ютерів» робота на ЕОМ розумілася перш за все як програмування. Викладання ж програмування зводилося до вивчення алгоритмів, оскільки алгоритмізація довгий час була найбільш актуальним напрямком програмування. Уже перші олімпіади ще в часи безмашинного викладання інформатики були присвячені розв’язуванню задач на створення алгоритмів навчальною алгоритмічною мовою. Інерція такого розуміння комп’ютерної справи серед неспеціалістів не подолана й сьогодні, невипадково спеціалістів з комп’ютерів на підприємствах і сьогодні часто називають програмістами.
Другою, і набагато важливішою причиною вибору з усіх розділів інформатики для олімпіад саме програмування є те, що олімпіада з програмування універсальна в тому розумінні, що відмінності, пов’язані з використанням учасниками різного інструментарію — обчислювальної техніки, мов програмування та середовищ програмування різної потужності — при правильному підборі задач є другорядним у порівнянні з рівнем загального алгоритмічного мислення, досвідом та навичками програміста, знанням можливостей мови програмування, навичками формалізації задачі. У цьому розумінні програмування близьке до математики і фізики.
Високо оцінюючи значення олімпіад з програмування, слід, однак, мати на увазі, що програмування не є нині основним змістом шкільного курсу інформатики. Тому практично школяр не в змозі успішно виступити на таких олімпіадах, спираючись тільки на знання, одержані на уроках інформатики. Досвід показує, що впоратися з олімпіадною задачею можуть тільки ті школярі, які одержали додаткову підготовку з програмування, яка значно виходить за рамки стандартної шкільної програми з інформатики. Варіанти тут можуть бути різними: заняття в гуртку програмістів, класі з поглибленим вивченням інформатики, індивідуальні заняття з учителем інформатики.
На відміну від олімпіади з математики чи фізики, на олімпіаді з інформатики часто не передбачається розбиття учасників на кілька категорій залежно від класу, у якому навчається школяр. Як уже зазначалося, знання й уміння, достатні для успішної участі на олімпіадах з інформатики (програмування), школярі одержують не на уроках інформатики, а на спеціальних факультативах, кружках тощо. Досвід показує, що такі гуртки переважно об’єднують учнів різного віку і старші не мають особливої переваги перед молодшими, якщо тільки в умовах задач не вимагається знання термінів, фактів, властивостей, що вивчають на уроках з інших предметів у старших класах. Більше того, непоодинокі випадки, коли дев’ятого чи десятого класу показували кращі результати, ніж одинадцятикласники.
Не зважаючи на те, що олімпіади з програмування аналогічні по своїй сутності інших олімпіад з базових навчальних дисциплін, тим не менше організація і проведення їх з технічної точки зору набагато складніше. Олімпіади з програмування мають принаймні дві важливі відмінності від олімпіад з інших шкільних предметів:
1. Обмеженість числа учасників числом комп’ютерів за принципом 1 учасник на 1 комп’ютер. При цьому потрібно мати запас 1-2 комп’ютера на непередбачений випадок (раптовий вихід з ладу, поява «непередбаченого» учасника).
2. Слід мати на комп’ютерах необхідне програмне забезпечення.
На початку олімпіади учасники отримують умови задач. Якщо у них з’являються запитання за умовами задач, то учасники протягом певного часу (найчастіше протягом першої години) можуть звертатися до журі із письмовими запитаннями, на які одержують письмові відповіді «так», «ні», «без відповіді». По закінченні олімпіади рекомендується виготовляти в присутності автора дві копії програми — одна для тестування, інша для надійного зберігання.

Основні вимоги до олімпіадних задач:

1.      Задача повинна бути невідомою для учасників олімпіади. Тому слід уникати вибору задач із загальнодоступної та популярної літератури з програмування, в ідеалі задачі повинні бути власної розробки. Іноді на олімпіадах цієї вимоги свідомо уникають, пропонуючи як кваліфікаційні задачі з деякої сукупності, яка відома всім учасникам.
2.       Розв’язування задачі не повинно базуватися тільки на використанні спеціальних знань. Якщо такі задачі і пропонуються, то тільки серед кількох задач при наявності альтернативних задачі з прийнятними для всіх учасників умовами.
3.      «Олімпіадна задача повинна містити оригінальну ідею, яка вимагає від учасників використання нетрадиційних підходів до її розв’язування», хоча олімпіади нижнього рівня повинні містити достатньою мірою традиційні задачі.
4.      «Позитивною характеристикою задачі є її захоплива постановка у формі, яка близька до тієї, яка звичайно властива для вихідних постановок замовників у реальній діяльності спеціалістів».
5.      Задачі повинні бути такими, щоб при їх розв’язуванні можна було обійтися засобами, які є в усіх мовах програмування.
6.      При розв’язуванні задач не використовується введення з клавіатури та виведення на екран і тим більше графічні можливості тієї чи іншої мови програмування. Усе введення та виведення здійснюється у текстові файли.
Олімпіадні задачі працюють не тільки під час олімпіади, коли їх розв’язують учасники, але є в певному розумінні «маяком» як вчителів, так і школярів.
Розв’язування задач з використанням комп’ютера передбачає виконання школярами всіх етапів розв’язування задачі — етапів формалізації, розробки найкращого алгоритму та його реалізації на комп’ютері, тестування та налагодження програми.

Особливості перевірки

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

Особливості підготовки учнів до олімпіад

Учителю інформатики у будь-якому випадку важливо слідкувати за підсумками олімпіади, за змістом олімпіадних завдань. Від нього не вимагається обов’язково використовувати ці задачі на звичайних уроках, однак він може зробити деякі загальні висновки і на їх основі скоригувати зміст курсу інформатики, що викладається. Наприклад, те, що учасники олімпіади мають утруднення при побудові інформаційної моделі, вказує на необхідність підсилення уваги на ці аспекти, причому необов’язково із застосуванням програмування.
Для успішного виступу на олімпіадах учень повинен добре ознайомитися з відомими алгоритмами. Такі алгоритми можуть виступати як частина розв’язування олімпіадної задачі (наприклад, програма у процесі виконання повинна виконати сортування даних). Ще важливіше те, що на основі вивчення таких алгоритмів в учня виробляються загальні навички побудови алгоритмів.
До основних класичних алгоритмів, корисних для учасників олімпіад відносяться:
§  алгоритми створення, зміни, руйнування інформаційних структур (списки, дерева, графи);
§  напівчисельні алгоритми: алгоритми теорії чисел, “довга” арифметика;
§  алгоритми пошуку і впорядкування;
§  алгоритми пошуку підрядка;
§  алгоритми на графах;
§  алгоритми розв’язування оптимізаційних задач;
§  організація перебору.
Відомий спеціаліст з теорії програмування Н. Вірт вивів формулу «Алгоритми + структури даних = програми». У шкільній інформатиці, починаючи з їх першого варіанта, структурам даних приділяється явно недостатня увага. Але той, хто освоїв складніші структури даних — стеки, списки, — одержує перевагу. По-перше, він може швидко реалізувати в програмі та використати ці структури. По-друге, він може розмірковувати у процесі побудови програми більш загальними категоріями.
Може бути запропонована така схема вивчення класичних алгоритмів:
1.      Пропонується задача на використання класичного алгоритму.
2.      Учні пропонують свої розв’язки запропонованої задачі.
3.      Повідомляється класичний алгоритм рідною мовою або мовою програмування з пропусками рядків.
4.      Учні реалізують алгоритм і роблять висновки про його ефективність.
При навчанні класичних алгоритмів доцільно пропонувати вправи на тестування (пошук помилок) і на оптимізацію запропонованого алгоритму. Важливо при підготовці до олімпіад спонукати учнів до написання “красивих” програм, досягнення необхідного результату мінімальними засобами (обсяг пам’яті, час роботи програми тощо). Такий стиль програмування надає перевагу учасникові, оскільки на олімпіадах вищих рівнів практикується обмеження на час роботи програми (воно розраховується за часом роботи авторської програми) і використання менш ефективних алгоритмів може призвести до перебільшення такого контрольного часу. Слід також звернути увагу учнів на врахування обмежень на допустимі значення вхідних даних, відповідний добір типів змінних. Наприклад, сума двох чисел типу integer може перевищувати максимальне значення цього типу, і в такому разі необхідно використовувати інші цілочислові типи. Нерідко аналіз обмежень, наведених в умові задачі впливає також на вибір методу розв’язування задачі. Так, якщо передбачається перебір незначної кількості елементів, можна використати повний перебір, в іншому разі необхідним є пошук спеціальних методів.
Одним із способів для формування ефективного стилю програмування у програмістів-початківців є колективне усне обговорення структури та особливостей роботи програми, при якому акцент робиться не на окремі оператори, а на загальну структуру програми, логіку її роботи. Крім того, учитель повинен навчити школяра основними прийомами налагодження програм, яка є невід’ємною частиною культури програмування.

Неможливо успішно виступити на олімпіаді, не маючи достатнього досвіду індивідуальної роботи на комп’ютері. Причому ця робота повинна бути досить самостійною і в постановці задач (учень повинен сам собі придумувати задачі), і в її реалізації. Важливо, щоб учень при цьому мав можливість консультації з досвідченим педагогом — спеціалістом з програмування та доступом до програмістської літератури і документації до комп’ютерів і мов програмування. На олімпіадах з інформатики іноді зустрічаються учасники, які мають великий досвід роботи на комп’ютері, але не вивчали програмування під керівництвом досвідченого педагога («програмісти-самоучки»), але результати таких учасників часто нижче очікуваних (хоча зустрічаються і виключення з правила).

Немає коментарів:

Дописати коментар