Підготовка до олімпіади з інформатики. Підготовка учнів до олімпіад з інформатики. Про методику вирішення олімпіадних завдань

Елективний курс

"Олімпіадна інформатика"

Програма 1. "Олімпіадна інформатика" для учнів 5-6 класів

Програма 2. "Олімпіадна інформатика" для учнів 7-8 класів

Програма 3. "Олімпіадна інформатика" для учнів 9-11 класів

Розробник: Ярошевська Віра Іванівна

м. Москва 2016 р.

Програма містить:

Пояснювальну записку;

Методичні вказівки з вивчення тем;

Навчально-тематичний план та програми підготовки до олімпіад з інформатики.

Електронні навчальні матеріали

Пояснювальна записка.

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

Участь в олімпіадах дозволяє розвивати творчі здібності школярів та забезпечує високу мотивацію до освітньої діяльності.

Класична олімпіада з інформатики - це олімпіада з програмування, що передбачає наявність великих знань у математиці та мовах програмування.

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

Курс занять з Олімпіадної інформатики (вирішення олімпіадних завдань з інформатики) орієнтований на учнів 5-11х класів, що мають підвищену мотивацію до вивчення інформатики та мають початкові знання в галузі алгоритмізації на рівні розуміння найпростіших алгоритмів.

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

Основна мета курсу: розкрити значення програмування та суть професії програміста, ознайомлення учнів із середовищем та основами програмування мовою PascalABC.NET, підготувати учнів до практичного використання отриманих знань при вирішенні навчальних завдань, а потім професійної діяльності, залучення учнів до участі у програмах різного рівня.

Основні завдання курсу: розвиток навичок програмування алгоритмічних структур; розвиток логічного мислення учнів; розвиток інтелекту учнів.

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

Методичні вказівки з вивчення тем

Олімпіадні завдання з інформатики охоплюють такі ключові розділи:

1. Математичні засади інформатики.

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

Для успішного виступу на олімпіаді з інформатики школярі мають

знати/розуміти:

основи термінології функцій, відносин та множин;

перестановки, розміщення та поєднання множини;

формальні методи символічної логіки висловлювань

основи побудови рекурентних співвідношень;

основні методи доказів;

основи теорії чисел;

вміти:

виконувати операції, пов'язані з множинами, функціями та відносинами;

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

вирішувати типові рекурентні співвідношення;

здійснювати формальні логічні докази та логічне міркування для моделювання алгоритмів;

визначати, який вид доказу краще підходить для вирішення конкретного завдання;

використовувати основні алгоритми теорії чисел;

1. Відносини, функції та множини.

2. Основні геометричні поняття.

3. Основи логіки.

4. Основи обчислень.

5. Способи підтвердження.

6. Основи теорії чисел.

7. Основи алгебри.

8. Основи комбінаторики.

9. Теорію графів.

10. Основи теорії ймовірностей.

11. Основи теорії ігор.

2. Розробка та аналіз алгоритмів.

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

елементи теорії алгоритмів;

основні структури даних;

основні поняття теорії графів, а також їх властивості та деякі спеціальні випадки;

зв'язок графів та дерев зі структурами даних, алгоритмами та обчисленнями;

властивості, притаманні «хорошим» алгоритмам;

обчислювальну складність основних алгоритмів сортування, пошуку;

поняття рекурсії та загальну постановку рекурсивно-визначеного завдання;

прості чисельні алгоритми;

основні комбінаторні алгоритми;

основні алгоритми обчислювальної геометрії;

найпоширеніші алгоритми сортування;

найважливіші алгоритми на рядках;

фундаментальні алгоритми на графах: пошук у глибину та завширшки, знаходження найкоротших шляхів від одного джерела та

основи динамічного програмування;

основні положення теорії ігор;

вміти:

вибирати відповідні структури даних для вирішення задач;

використовувати вищеназвані алгоритми у процесі розв'язання задач;

визначати складність за часом та пам'яті алгоритмів;

визначати обчислювальну складність основних алгоритмів сортування, пошуку;

реалізовувати рекурсивні функції та процедури;

використовувати при вирішенні практичних завдань вищеназвані знання та вміння.

Основними темами цього розділу є:

1. Алгоритми та його властивості.

2. Структури даних

3. Основи аналізу алгоритмів.

4. Алгоритмічні стратегії.

5. Рекурсія.

6. Фундаментальні обчислювальні алгоритми.

7. Числові алгоритми.

8. Алгоритми на рядках.

9. Алгоритми на графах.

10. Динамічне програмування.

11. Алгоритми теорії ігор.

3. Основи програмування.

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

В рамках цього розділу школярі повинні знати/розуміти:

основні конструкції програмування;

концепцію типу даних як безлічі значень та операцій над ними;

основні типи даних;

основні структури даних: масиви, записи, рядки, зв'язкові списки, стек;

представлення даних у пам'яті;

альтернативні уявлення структур даних із погляду продуктивності;

основи введення/виводу;

оператори, функції та передача параметрів;

статичне, автоматичне та динамічне виділення пам'яті;

управління пам'яттю під час виконання програми;

методи реалізації стеків, черг;

методи реалізації графів та дерев;

механізм передачі параметрів;

особливості реалізації рекурсивних рішень;

стратегії, корисні при налагодженні програм;

вміти:

аналізувати та пояснити поведінку простих програм, що включають фундаментальні конструкції;

модифікувати та розширити короткі програми, що використовують стандартні умовні та ітеративні оператори та функції;

розробити, реалізувати, протестувати та налагодити програму, яка використовуватиме всі найважливіші конструкції програмування;

застосовувати методи структурної (функціональної) декомпозиції для поділу програми на частини;

реалізувати основні структури даних мовою високого рівня;

реалізувати, протестувати та налагодити рекурсивні функції та процедури;

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

Основними темами цього розділу є:

1. Мова програмування Pascal.

2. Основні конструкції програмування.

3. Змінні та типи даних.

4. Типи структур даних.

4. Методи обчислень та моделювання.

Розділ «Методи обчислень та моделювання» представляє область інформатики, тісно пов'язану з обчислювальною математикою та чисельними методами.

В рамках цього розділу школярі повинні знати/розуміти:

поняття помилки, стійкості, машинної точності та похибки наближених обчислень;

джерела похибки у наближених обчисленнях;

основні алгоритми розв'язання задач обчислювальної математики: обчислення значення та коріння функції; обчислення периметра, площі та обсягу, обчислення точки перетину двох відрізків та ін;

поняття моделі та моделювання, основні типи моделей;

компоненти комп'ютерної моделі та способи їх опису: вхідні та вихідні змінні, змінні стани, функції переходу та виходу, функція просування часу;

основні етапи та особливості побудови та використання комп'ютерних моделей;

вміти:

обчислювати оцінку похибки наближених обчислень;

використовувати під час вирішення завдань основні методи обчислювальної математики;

формалізувати об'єкти моделювання;

розробляти комп'ютерні моделі найпростіших об'єктів;

використовувати під час вирішення практичних завдань комп'ютерні моделі як «чорного ящика»;

використовувати при вирішенні практичних завдань вищеназвані знання та вміння.

Основними темами цього розділу є:

1. Основи обчислювальної математики.

2. Введення у моделювання.

Навчально-тематичне планування до програми «Олімпіадна інформатика»

На підставі вище сказаного складено програми 1, 2 та 3, які враховують вікові особливості учнів.

Програма 1. Для учнів 5-6 класів

Тема

Кількість годин

1

Типи олімпіадних завдань з інформатики для 5-6 класів.

2

Відносини (рефлексивність, симетричність, транзитивність, еквівалентність, лексикографічний порядок)

Точка, пряма, відрізок, вектор, кут

Декартові координати в евклідовому просторі

Трикутник, прямокутник, багатокутник

Випуклі багатокутники

Основи логіки

Логічні змінні, операції

Таблиці істинності

Бульові функції

Основи обчислень

Основи обчислень:

Правила суми та твору

Рекурентні співвідношення

Методи доказу

Прямі докази

Доказ через контрприклад

Доказ через протиставлення

Основи теорії чисел

Прості числа.

Поділ із залишком

Найбільший спільний дільник

Основи комбінаторики

Перестановки, розміщення та поєднання:

Основні визначення

Теорія графів

Типи графів

Маршрути та зв'язність

Дерева

Основні дерева

Основи теорії ймовірностей

Поняття ймовірності

Основи теорії ігор

Поняття гри та результату гри

Найпростіші ігри та стратегії

20

Етапи розв'язання олімпіадного завдання: формалізація умови задачі, вибір методу розв'язання задачі. План розбору олімпіадного завдання з інформатики.

5

Алгоритми

Алгоритми та їх властивості

Поняття алгоритму

Концепції та властивості алгоритмів

Запис алгоритму неформальною мовою

Структури даних

Прості базові структури

Безліч

Послідовності

Списки

Неорієнтовані графи

Алгоритмічні стратегії

Алгоритми повного перебору

Рекурсія

Поняття рекурсії

Прості чисельні алгоритми

Класичні комбінаторні алгоритми

Алгоритми з підмножинами: генерація, відновлення за номером та побудова номера, генерація наступного та попереднього (додавання та віднімання одиниці)

Алгоритми з поєднаннями та перестановками: генерація, відновлення за номером та побудова номера, генерація наступного та попереднього.

Алгоритми послідовного та бінарного пошуку

Числові алгоритми

Розкладання числа на прості множники

Решето Ератосфена

Алгоритм Евкліда

Алгоритми на рядках

Пошук підрядки у рядку. Наївний метод

Алгоритми на графах

Обчислення довжин найкоротших шляхів у дереві

Обхід графа в ширину та в глибину

Способи реалізації пошуку завширшки (“наївний” та з чергою)

Геометричні алгоритми

Алгоритми визначення збігу точок, променів, прямих та відрізків

Розв'язання / моделювання алгоритмічних задач у середовищі Виконавця

20

Введення у реальне середовище програмування як інструмент реалізації алгоритмів на комп'ютері

Типові інструменти середовища програмування (режим допомоги, режим редагування, режим налагодження)

Середовище програмування. Початок програмування.

Мови програмування

Змінні та типи даних

Типи структур даних

Особливості програмування фундаментальних алгоритмів

Введення у моделювання.

Класифікація мов програмування

Процедурні мови

Змінні, типи, вирази та привласнення

Основи введення/виводу

Оператори перевірки умови та циклу

Концепція типу даних як безлічі значень та операцій над ними

Примітивні типи

Масиви

Стратегії розв'язання задач

Роль алгоритмів у процесі вирішення задач

Середовище програмування

Поняття моделі та моделювання

Основні типи моделей

www.olympiads.ru.

20

Програма 2. Для учнів 7-8 класів

Тема

Кількість годин

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

1

Типи олімпіадних завдань з інформатики для 7-8 класів.

2

Основні розділи математичної інформатики.

Функції, відносини та множини

Зворотня функція, композиція

Безліч (доповнення, декартові твори)

Основні геометричні поняття

Євклідова відстань

Векторний та скалярний добуток на площині

Основи логіки

Логічні висловлювання

Форми завдання та синтез логічних функцій

Перетворення логічних виразів

Основи обчислень

Основи обчислень:

Арифметичні та геометричні прогресії

Числа Фібоначчі

Методи доказу

Доказ через протиріччя

Математична індукція

Основи теорії чисел

Основна теорема арифметики

Взаємно прості числа

Основи алгебри

Багаточлени та операції над ними. Розв'язання квадратних рівнянь. Теорема Вієта

Основи комбінаторики

Тотожність Паскаля

Біноміальна теорема

Теорія графів

Операції над графами

Розмальовка графів

Ейлерові та гамільтонові графи

Основи теорії ймовірностей

Концепція математичного очікування.

20

Алгоритми

Алгоритми та їх властивості

Орієнтовані графи

Дерева

Основи аналізу алгоритмів

Стандартні класи складності

Асимптотичний аналіз поведінки алгоритмів у середньому та крайніх випадках

Алгоритмічні стратегії

"Жадібні" алгоритми

Рекурсія

Рекурсивні математичні функції

Прості рекурсивні процедури

Реалізація рекурсії

Фундаментальні обчислювальні алгоритми

Квадратичні методи сортування (сортування методом вибору, сортування вставками)

Сортування підрахунком за лінійний час.

Алгоритми сортування за час (швидке сортування, пірамідальне сортування

Алгоритми на рядках

Перевірка графа на зв'язність

Алгоритми пошуку найкоротшого шляху у виважених графах

Основна ідея динамічного програмування. Рекурсивна реалізація та розгортання в цикл.

Завдання з монотонним напрямком руху у таблиці

Завдання про рюкзак - рішення методом динамічного програмування

Геометричні алгоритми

Подання точок, прямих та відрізків на площині

20

Середовище програмування .

Мови програмування

Змінні та типи даних

Типи структур даних

Механізми абстракції.

Особливості програмування фундаментальних алгоритмів

Основи синтаксису та семантики мов високого рівня
Основні конструкції програмування

Функції та передача параметрів

Властивості оголошень (зв'язування, область видимості, блоки та час життя)

Огляд перевірки типів

Записи

Стратегії вибору відповідної структури даних

Процедури, функції та ітератори як механізми абстракції

Модулі у мовах програмування

Стратегії реалізації алгоритмів

Реалізація рекурсії

Введення у моделювання.

Компоненти комп'ютерної моделі та способи їх опису: вхідні та вихідні змінні, змінні стани, функції переходу та виходу, функція просування часу

Основні етапи та особливості побудови комп'ютерних моделей

Основні етапи використання комп'ютерних моделей під час вирішення практичних завдань

Типові приклади вирішення задач з розділів з колекції www.olympiads.ru

25

Програма 3. Для учнів 9-11 класів

Тема

Кількість годин

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

1

Типи олімпіадних завдань з інформатики для 9-11 класів.

2

Основні розділи математичної інформатики.

Функції, відносини та множини

Цілком упорядковані множини

Потужність та рахунковість

Основи логіки

Мінімізація булевих функцій

Основні закони логіки суджень

Логіка предикатів

Основи обчислень

Основи обчислень:

Принцип включення-вимкнення

Матриці та дії над ними

Методи доказу

Структура формальних доказів

Основи теорії чисел

Кільце відрахувань за модулем

Основи алгебри

Симетричні багаточлени

Поняття групи

Властивості груп

Теореми про гомоморфізм та ізоморфізм

Основи комбінаторики

Коди Грея: підмножини, поєднання, перестановки

Таблиці інверсій перестановок

Розбиття на підмножини. Числа Стірлінга

Скобочні послідовності

Теорія графів

Покриття та незалежність

Укладання графів. Плоскі (планарні) графи

Двозв'язність графа. Мости, блоки, точки зчленування

Зв'язок орієнтованих ациклічних графів та відносин порядку. Транзитивне замикання

Дводольні графи

Потоки та мережі

Основи теорії ймовірностей

Аксіоми теорії ймовірностей

Формула повної ймовірності та формула Байєса. Умовне математичне очікування

Основи теорії ігор

Ігри на матрицях

20

Алгоритми

Алгоритми та їх властивості

Піраміда та дерево відрізків

Збалансовані дерева

Хеш-таблиці та асоціативні масиви

Бор

Основи аналізу алгоритмів

Компроміс між часом та обсягом пам'яті в алгоритмах

Використання рекурентних відносин для аналізу рекурсивних алгоритмів

NP-повнота

Алгоритмічні стратегії

Алгоритми "поділяй та володарюй"

Перебір із поверненням

Евристики

Рекурсія

Стратегія "поділяй і володарюй"

Рекурсивний перебір із поверненнями

Фундаментальні обчислювальні алгоритми

Алгоритми сортування( сортування злиттям)

Цифрове сортування

Алгоритм обчислення номера слова в лексикографічно впорядкованому множині перестановок його символів

Арифметика багаторозрядних цілих чисел

Числові алгоритми

Розширений алгоритм Евкліда. Способи реалізації алгоритму без розподілу

Вирішення лінійних порівнянь за допомогою алгоритму Евкліда

Ефективна перевірка числа на простоту

Швидкі алгоритми розкладання чисел на прості множники.

Алгоритми на рядках

Алгоритми пошуку підрядки у рядку за

Періодичні та циклічні рядки

Алгоритм пошуку кількох підрядок за лінійний час

Алгоритми на графах

Топологічне сортування графа, знаходження компонент сильної зв'язності та побудова діаграми порядку

Цикли негативної довжини.

Завдання про синхронізацію часу та завдання про систему нерівностей

Алгоритм пошуку ейлерового циклу (у тому числі лексикографічно мінімального)

Знаходження транзитивного замикання графа

Алгоритми знаходження зважених кістяків

Алгоритми відшукання компонентів двозв'язності, точок зчленування, мостів за допомогою пошуку в глибину

Алгоритм знаходження максимального паросполучення та мінімального вершинного покриття у дводольному графі

Пошук максимального потоку в мережі

Динамічне програмування

Оптимізація розв'язання задачі динамічного програмування на прикладі задачі про рюкзак (виключення зайвих параметрів)

Відновлення рішення у задачах динамічного програмування

Загальна схема вирішення задач динамічного
програмування

Алгоритми теорії ігор

Динамічне програмування та повний перебір як методи вирішення ігрових задач. Ігри на ациклічному графі

Оцінка позицій. Альфа-бета відсікання

Геометричні алгоритми

Знаходження відстаней між об'єктами на площині

Алгоритми визначення перетину відрізків на площині

Алгоритми обчислення площі багатокутника із заданими координатами вершин. Випадок цілої решітки (формула Піка)

Алгоритми побудови опуклої оболонки (алгоритми Грехема та Джарвіса)

Кола на площині, перетин їх з іншими геометричними об'єктами

Ефективний алгоритм знаходження пари найближчих точок на площині

20

Середовище програмування.

Мови програмування

Основні конструкції програмування

Типи структур даних

Особливості програмування фундаментальних алгоритмів

Програмні засоби та оточення.

Перевірити відповідність програмного забезпечення.

Формальні методи опису синтаксису:
форма Бекуса-Наура

Об'єктно-орієнтовані мови

Структурна декомпозиція

Подання даних у пам'яті

Статичне, автоматичне та динамічне виділення пам'яті

Пов'язані структури

Методи реалізації стеків, черг та хеш-таблиць

Методи реалізації графів та дерев

Стратегії налагодження

Інструментальні засоби тестування

Основи тестування, включаючи створення тестового плану та генерацію тестів

Тестування методом "чорної скриньки" та "білої скриньки"

Тестування елементів, інтеграційне, системне тестування та перевірка відповідності

Основи обчислювальної математики.

Основні методи обчислювальної математики

  • обчислення значення та коріння функції
  • обчислення периметра, площі та об'єму плоских фігур

Обчислення функцій із кроком. Метод сіток

Арифметика з плаваючою точкою

Помилка, стійкість, збіжність

Типові приклади розв'язання задач з розділів з колекції www.olympiads.ru.

25

Діагностичні завдання

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

Аналіз усіх завдань, що пропонувалися на олімпіадах з інформатики, дозволив виділити такі теми, тісно пов'язані з відповідними розділами інформатики та прикладної математики:

1) комбінаторика;

2) сортування та пошук;

3) обробка послідовностей;

4) перебір варіантів та методи його скорочення;

5) алгоритми на графах;

6) динамічне програмування;

7) елементи обчислювальної геометрії;

8) завдання на техніку програмування;

9) завдання на ідею.

Методичні вказівки для вивчення

Алгоритмічне комп'ютерне середовище

Набір завдань за декількома рівнями складності

Різні типи алгоритмічних завдань (перестановки, переливання, зважування, переправи, переїзди, робота з числами) (Віртуальні лабораторії з інформатики)

Алгоритми на координатній площині (управління переміщенням із умовами)

система автоматичної перевірки рішень та оцінювання

/ video/ kuris. php

Адреса ресурсу: http://school-collection.edu.ru , розділ «Інформатика», 2-6 класи, вибрати «Інтерактивний задачник з інформатики для 2-6 класів»

Методичний посібник та 100 алгоритмічних завдань http:// lbz. ru/ books/264/5211

Віртуальні лабораторії з інформатики у початковій школі: методичний посібник Автори: Цвєткова М. С., Куріс Г. Е.

Колекції олімпіадних завдань з 1989 по 2016 рік та методичні матеріали до них представлені на сайтах:

http://old.info.rosolymp.ru/

Представлені інтернет-ресурси олімпіадної інформатики:

1. Інтернет-ресурси для теоретичної підготовки до олімпіад:

http://www.intuit.ru/courses.html(сайт Інтернет-університету інформаційних технологій);

http://www.olympiads.ru/sng/index.shtml(сайт МІГО, МЦНМО та оргкомітету Московської олімпіади з інформатики для проведення дистанційних семінарів з підготовки до олімпіад з інформатики);

http://vzshit.net.ru/(Сайт Всесибірської заочної школи інформаційних технологій).

2. Інтернет-ресурси з колекціями олімпіадних завдань:

http://old.info.rosolymp.ru(сайт з найбільшою в Росії колекцією завдань міжнародних та всеросійських олімпіад з інформатики з методичними рекомендаціями щодо їх вирішення);

http://www.olympiads.ru/moscow/index.shtml(сайт московських олімпіад з інформатики);

http://neerc.ifmo.ru/school/russia-team/archive.html(сайт з архівом завдань Всеросійських командних олімпіад школярів із програмування);

http://contest.ur.ru(сайт Уральських олімпіад з інформатики);

http://www.olympiads.ru/(сайт з олімпіадної інформатики);

http://olimpic.nsu.ru/nsu/(Сайт відкритої Всесибірської олімпіади з програмування ім. І.В. Поттосіна).

3. Інтернет-ресурси з колекціями олімпіадних завдань та можливістю їх тестування у реальному масштабі часу:

http://acm.timus.ru/(сайт Уральського державного університету, що містить великий архів завдань із різних змагань зі спортивного програмування);

http://acm.sgu.ru(сайт Саратовського державного університету, що містить архів завдань із системою онлайн-перевірки).

4. Сайти інтернет-олімпіад для школярів:

http://info-online.rusolimp.ru/(сайт інтернет-турів останнього етапу Всеросійської олімпіади школярів з інформатики);

http://olymp.ifmo.ru/(сайт міських інтернет – олімпіад школярів Санкт-Петербурга);

http://neerc.ifmo.ru/school/io/index.html(сайт інтернет-олімпіад з інформатики, що проводяться журі Всеросійської командної олімпіади школярів із програмування);

http://www.olympiads.ru/online/index.shtml(Сайт московських онлайн-олімпіад);

http://olimpic.nsu.ru/acmSchool/archive/2006-2007/train2006/index.shtml(Сайт тренувальних олімпіад школярів, підтримуваний Новосибірським державним університетом).

Список літератури

1. Алексєєв А. В., Бєляєв С. Н. Підготовка школярів до олімпіад з інформатики з використанням веб-сайту: учеб.-метод. посібник для учнів 7-11 класів. Ханти-Мансійськ: РІО ІРО, 2008. 284 с.

2. Волченков С. Г., Корнілов П. А., Бєлов Ю. А. та ін. Ярославські олімпіади з інформатики. Збірник завдань із рішеннями. М: БІНОМ. Лабораторія знань 2010. 405 с.

3. Долинський М. С. Алгоритмізація та програмування на TurboPascal: від простих до олімпіадних завдань: учеб.пособие. СПб.: Пітер Прінт, 2004. 240 с.

4. Іванов С. Ю., Кірюхін В. М., Окулов С. М. Методика аналізу складних завдань з інформатики: від простого до складного // Інформатика та освіта. 2006. № 10. С. 21-32.

5. Кірюхін В. М. Всеросійська олімпіада школярів з інформатики. М.: АПК та ППРО, 2005. 212 с.

6. Кірюхін В. М. Інформатика. Всеросійські олімпіади. Вип. 2. М: Просвітництво, 2009. 222 с. (П'ять кілець).

7. Кірюхін В. М. Інформатика. Всеросійські олімпіади. Вип. 3. М: Просвітництво, 2011. 222 с. (П'ять кілець).

8. Кірюхін В. М. Інформатика. Міжнародні олімпіади. Вип. 1. М: Просвітництво, 2009. 239 с. (П'ять кілець).

9. Кірюхін В. М., Лапунов А. В., Окулов С. М. Завдання з інформатики. Міжнародні олімпіади 1989-1996 років. М: ABF, 1996. 272 ​​с.

10. Кірюхін В. М., Окулов С. М. Методика аналізу складних завдань з інформатики // Інформатика та освіта. 2006. № 4. С. 42-54.

11. Кірюхін В. М., Окулов С. М. Методика аналізу складних завдань з інформатики // Інформатика та освіта. 2006. № 5. С. 29-41.

12. Кірюхін В. М., Окулов С. М. Методика вирішення завдань з інформатики. Міжнародні олімпіади. М: БІНОМ. Лабораторія знань, 2007. 600 с.

13. Кірюхін В. М., Цвєткова М. С. Всеросійська олімпіада школярів з інформатики у 2006 році. М.: АПК та ППРО, 2006. 152 с.

14. Кірюхін В. М., Цвєткова М. С. Методичне забезпечення олімпіадної інформатики в школі / Зб. праць XVII конференції-виставки «Інформаційні технології освіти». Ч. ІІІ. М: БІТ про, 2007. С. 193-195

15. Кірюхін В. М. Інформатика. Всеросійські олімпіади. Вип. 1. М: Просвітництво, 2008. 220 с. (П'ять кілець).

16. Меньшиков Ф. В. Олімпіадні завдання з програмування. СПб.: Пітер, 2006. 315 с.

17. Московські олімпіади з інформатики. 2002-2009 / за ред. Є. В. Андрєєвої, В. М. Гуровиця та В. А. Матюхіна. М: МЦНМО, 2009. 414 с.

18. Нижегородські міські олімпіади школярів з інформатики/за ред. В. Д. Лелюха. Нижній Новгород: ІПФ РАН, 2010. 130 с.

19. Нікулін Є. А. Комп'ютерна геометрія та алгоритми машинної графіки. СПб.: БХВ-Петербург, 2003. 560 с.

20. Окулов З. М. Основи програмування. М: БІНОМ. Лабораторія знань, 2005. 440 с.

21. Окулов С. М. Програмування в алгоритмах. М: БІНОМ. Лабораторія знань 2002. 341 с.

22. Окулов З. М. Дискретна математика. Теорія та практика розв'язання задач з інформатики: учеб.посібник. М: БІНОМ. Лабораторія знань 2008. 422 с.

23. Окулов С. М. Алгоритми обробки рядків: учеб.пособие. М: БІНОМ. Лабораторія знань, 2009. 255 с.

24. Окулов С. М., Пестов А. А. 100 завдань з інформатики. Кіров: Вид-во ВДПУ, 2000. 272 ​​с.

25. Окулов З. М., Лялін А. У. Ханойські вежі. М: БІНОМ. Лабораторія знань 2008. 245 с. (Розвиток інтелекту школярів).

26. Просвітів Г. І. Дискретна математика: завдання та рішення: учеб.посібник. М: БІНОМ. Лабораторія знань 2008. 222 с.

27. Скієна С. С., Ревілла М. А. Олімпіадні завдання з програмування. Посібник з підготовки до змагань. М: Кудіц-образ, 2005. 416 с.

28. Сулейманов Р. Р. Організація позакласної роботи у шкільному клубі програмістів: методичний посібник. М: БІНОМ. Лабораторія знань 2010. 255 с.

29. Цвєткова М. С. Система навчання як основа олімпіадного руху / Збірник праць XVII конференції-виставки «Інформаційні технології в освіті». Ч. ІІІ. М: БІТ про, 2007. С. 205-207

30. Кірюхін В.М., Цвєткова М.С.Освітні програми з розвитку обдарованості у дітей та підлітків, складені з урахуванням рівня підготовленості, напрямів інтересів, за напрямом інформаційних технологій, 2012 .

Сайт Методичного центру олімпіадної інформатики:

http://metodist.lbz.ru/lections/6/

Портал Всеросійської олімпіади школярів:

http://www.rosolymp.ru/

Сайт з архівом олімпіадних завдань:

http://old.rosolymp.ru/

Модуль підтримановідеолекціями членів Центральної предметно-методичної комісії на сайті

МУНІЦИПАЛЬНИЙ ЗАГАЛЬНООСВІТНИЙ ЗАКЛАД - МУЖІВСЬКА СЕРЕДНЯ ЗАГАЛЬНООСВІТНЯ ШКОЛА ІМ.М.В.АРХАНГЕЛЬСЬКОГО

«Олімпіади з інформатики: методика підготовки»

Матеріал підготував:

Вчитель інформатики

Галицька Ірина Вікторівна

У зв'язку з актуалізацією та активізацією олімпіадного руху все гостріше постає проблема підготовки учнів до участі в олімпіадах. Підготовка учня-олімпіадника починається з підготовки вчителя.

Проблеми, що постають перед учителем:

· Вивчення нових форм проведення олімпіад.

· Знання алгоритмів розв'язання олімпіадних завдань.

· Наявність самих завдань.

· Знання мов програмування.

· Час на вивчення, налагодження та перевірку завдань.

· Навчання учнів правильної організації діяльності на олімпіаді.

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

Більшості вчителів це не під силу. Найбільш правильний вихід у цій ситуації – підвищення зв'язків між школою та ВНЗ.

Ось деякі особливості підготовки школярів до олімпіадного програмування:

1. У шкільній програмі такого предмета немає «програмування». Тобто. учень повинен мати власну, досить сильну мотивацію.

2. Діє обмеження, що при вирішенні завдань бажано використовувати лише одну з мов програмування (СІ або ПАСКАЛЬ).

3. Постійні тренування точаться майже на спортивному рівні.

4. Великі витрати часу, тривалість олімпіади з розбором часто перевищує 6 годин.

5. Алгоритми та формули, що застосовуються при вирішенні більшості завдань, вивчаються лише у ВНЗ.

Зрозуміло, підготовка вищого рівня необхідна і вчителям до роботи з обдарованими учнями, які у олімпіадах з програмування:

· Можлива друга освіта, профільний ВНЗ з програмування.

· Курси з вивчення мов програмування, з олімпіадного програмування.

· Самостійна підготовка з використанням матеріалів із додаткових джерел.

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

Педагогічна ідея досвіду

p align="justify"> Основним стимулом до участі в олімпіадах для школяра є мотивація. Можливість показати знання та ерудицію з вирішуваної проблеми.

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

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

У 1964 р. В. Врум запропонував «теорію очікувань». Він вважав, що стимул до ефективної та якісної праці залежить від поєднання трьох факторів – очікувань людини:

1. Очікування того, що зусилля призведуть до бажаного результату.

2. Очікування того, що результати спричинять винагороду.

3. Очікування того, що винагорода матиме достатню цінність.

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

Теорія очікування вказує на те, що мають робити вчителі, щоб стимули до навчання в учнів були сильними:

· Вчити учнів отримувати необхідні результати та створювати для цього всі необхідні умови.

· Встановлювати безпосередній зв'язок між результатами праці та оцінкою учнів.

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

Виходячи з цього, механізми мотивації та основні фактори ефективності стимулювання можна виразити як:

1. Знання вчителями потреб, інтересів, потреб учнів.

2. Встановлення справедливого безпосереднього зв'язку між результатами та винагородою.

3. Невідкладність винагороди.

4. Ступінь задоволення очікувань.

Технологія використання досвіду

Звичайно, підготовка до олімпіад - це тривалий і трудомісткий процес.

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

Впровадження досвіду

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

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

Другий крок. Початок програмування та під час проведення наступних занять, вводяться різні прийоми розв'язання задач із використанням стандартних алгоритмів реалізованих мовою програмування. Вводиться поняття «налагодження програми». Бажано розглянути кілька шляхів рішення, щоб у результаті навчити учнів елементам оптимального пошуку.

Третій крок. «Навчальна рефлексія». Учень навчає вирішення завдань інших. Зазвичай це відбувається при розборі завдань. Це допомагає учню визначити ознаки оптимальності (стислість, зрозумілість), навчитися чітко простежувати і пояснювати роботу програми.

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

П'ятий крок. «Творча рефлексія». Складання учнем завдань з авторським рішенням, з тестами, вхідними та вихідними вимогами.

Вища досягнення майстерності: створення та застосування навчальних технологій, придуманих самими учнями для навчання інших.

Результативність

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

В Інтернеті є багато програм та тестів, що виконують функції дистанційного навчання та вчителі використовують їх для підготовки учнів до олімпіад. Але! Іноді через швидкість якості зв'язку неможливо брати участь в online-олімпіадах з програмування. Часто учень не знає стандарту інтерфейсу надсилання завдань, а для налагодження завдання та отримання результату потрібен повторний вхід на сайт проведення олімпіади. Перевірка та докладний аналіз результатів потребують додаткового часу. Установка подібної серверної системи у класі досить трудомістка. А на домашньому комп'ютері учня зараз практично неможлива. Не всі вчителі інформатики знають правила введення та виведення даних через текстовий файл при надсиланні та прийомі рішень через Інтернет.

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

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

На наступних етапах роботи відбувається ускладнення завдань.

Проблема психологічного та фізичного навантаження

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

План, порядок досліджуваних тем, який допоможе навчитися вирішувати олімпіадні завдання чи знайти прогалини у знаннях.

Розділ 1. Математичні засади програмування

Розділ 2. Техніка програмування

1. Основи мови програмування (Паскаль, Сі) Змінні та найпростіші типи даних, розміри типів. Лінійні програми. Умовні оператори. Цикли. Процедури та функції. Складні типи даних (масиви, рядки, записи, покажчики, файли).

2. Масиви Одномірні масиви. Двовимірні масиви (матриці). Багатовимірні масиви.

3. Рядки. Елементи лексичного та синтаксичного розбору Операції над рядками. Лексеми, підрахунок лексем різних типів. Виділення чисел із рядка.

4. Робота з файлами Читання та запис до текстового файлу. Перетворення отриманих із файлу даних у зручну структуру. Робота з типовими файлами. Нетипізовані файли. Буферизація введення.

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

6. "Довга" арифметика Зберігання у програмі чисел, які не вміщуються у стандартні типи. Арифметичні операції над "довгими" числами. "Довгі" числа з десятковою частиною. Вилучення кореня із заданою точністю.

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

Розділ 3. Алгоритми, методи та принципи вирішення задач.

1. Поняття складності алгоритму. Визначення складності.

2. Алгоритми пошуку та сортування Пошук елемента у невпорядкованому масиві. Двійковий пошук за ключом у впорядкованому масиві (дихотомія). Пошук методом Фібоначчі. Пошук у впорядкованому n-мірному масиві. Пошук k-го за величиною елемента масиву. Прості методи сортування ("бульбашка", "вибірка", "вставка", "підрахунок"). Швидкі методи ("швидка", "злиття", "пірамідальна"), балансування двійкових дерев. Сортування за методом черпака.

3. Розв'язання задач шляхом перебору вариантов Застосування рекурсії для перебору. Генерація поєднань, розміщень, перестановок та булеана множини. Повний перебір. Відсікання варіантів (евристики). Метод гілок та кордонів.

4. Обчислювальна геометрія та чисельні методи Довжина відрізка. Рівняння прямої. Скалярне та векторне твір. Точка перетину відрізків. Належність точки фігурі на площині (наприклад: трикутнику). Площа опуклого багатокутника. Випукла оболонка безлічі точок: алгоритми Грехема, Джарвіса, "розділяй і владарюй". Найближча пара точок. Метод Гауса для вирішення системи лінійних рівнянь. Знаходження рішення рівняння.

5. Принцип динамічного програмування Поняття, застосовність. Порівняння із перебором.

6. Жадібні алгоритми Поняття, застосовність. Порівняння з перебором та динамічним програмуванням.

7. Теорія графів. Алгоритми на графах. Визначення теорії графів. Структури даних для представлення графіка в програмі. Алгоритми обходу графа (пошуки завширшки та глибину). лабіринт (метод хвилі). Ейлерів цикл. Найкоротший шлях у виваженому графі (алгоритми Дейкстри та Мінті). Транзитивне замикання графа (алгоритм Флойда-Воршилла). Мінімальне остовне дерево (алгоритми Прима та Фарбала). Топологічний сортування графа. Потоки у мережах (алгоритм Форда-Фалкерсона). Паросопоєднання в дводольному графі (метод подовжує ланцюжка, потокове рішення). Завдання про призначення, призначення вузьке місце (угорський алгоритм). Ігри на графах. Забарвлення графіка. Укладання графа на площині. Сильна зв'язність та двозв'язність графа. Ізоморфізм графів. K-клік. Гамільтонів цикл.

8. Лексичний та синтаксичний аналіз Завдання "Калькулятор". Синтаксичні діаграми. Форми Бекуса-Наура. Стьова та рекурсивна модель синтаксичного розбору. Кінцеві автомати. Граматики.

9. Завдання з "родзинками"

Розділ 4. Олімпіади з інформатики

1. Правила проведення олімпіад із програмування

2. Типові помилки та налагодження програм

3. Прийоми олімпіадника

На мою думку, найбільшу цінність представляють розділи 2 і 3. Якщо з вивченням мови програмування у вас не повинно виникнути складнощів (величезна кількість книг на цю тему), то ось з алгоритмами доведеться складніше. Книжок з цієї теми теж чимало, але вони найчастіше надто перевантажені теорією, а на олімпіадах потрібна лише практика. З електронних джерел за алгоритмами можу порадити книгу С.М.Окулова та сайт algolist.manual.ru, який менш націлений на вивчення "олімпіадної інформатики", ніж книга Окулова, але містить велику кількість алгоритмів, яких немає в книзі, але які непогано було б знати. Звикайте працювати в режимі: написання + налагодження на Borland Pascal/Borland C++, а компіляція (з попередньою зміною констант) на Free Pascal/GNU C. Нові 32-бітні компілятори не мають жорсткого обмеження в пам'яті і працюють значно швидше (особливо помітна різниця в швидкості виконання 16 та 32-бітних програм на P4). Така хитра тактика пояснюється відсутністю пристойного відладчика в нових платформах та їх практично повною сумісністю з компіляторами фірми Borland (у FP не забувайте робити close для вихідного файлу).

Календарно-тематичне планування курсу з інформатики «Підготовка до олімпіади» 8 клас

Усього - 68 години (по 2 год. в тиждень)

Розділ/тема

Кількість

годин

Основні види навчальної

діяльності

дата проведення

за планом

Республіканська олімпіада школярів з інформатики

Нормативне забезпечення Республіканської олімпіади з інформатики- 10 год

Положення про Республіканську, Всеросійську, Міжнародну олімпіаду школярів.

сприйняття, осмислення та запам'ятовування інформації

сприйняття, осмислення та запам'ятовування інформації

План самостійної роботи з
програмі олімпіадної інформатики

сприйняття, осмислення та запам'ятовування інформації

Заповнення учням індивідуальної карти
підготовки.

сприйняття, осмислення та запам'ятовування інформації

- 8 год

Структура олімпіадного завдання. Типи
олімпіадних завдань з інформатики Основні
розділи математичної інформатики
Типові приклади розв'язання задач за розділами
з колекції

Конспектування отриманої інформації, відповіді на запитання, після пояснення матеріалу

Етапи вирішення олімпіадного завдання:
формалізація умови задачі; вибір методу розв'язання задачі.
План розбору олімпіадного завдання з
інформатики.

Вирішувати логічні завдання різними способами; здійснювати системний аналіз об'єкта, виділяти серед його властивостей суттєві властивості з погляду цілей моделювання; виявляти різницю в унарних, позиційних і непозиційних системах числення;

Автоматизоване середовище перевірки
розв'язання олімпіадних завдань.

виявляти загальне та відмінності у різних завданнях

Колекція олімпіадних завдань у Інтернеті. Корисні ресурси для підготовки до олімпіад.
Тренувальні тури в Інтернеті.

позиційні системи числення;

Технологічні ресурси олімпіадної інформатики Середовище програмування – 27 год

Основні інструменти середовища
програмування.

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

Порівняння середовищ програмування для різних
мов програмування.

перетворювати запис алгоритму з однієї форми на іншу; сприйняття, осмислення та запам'ятовування інформації, участь у дискусії

Середовище програмування у вільному доступі.
Інсталяція, кроки для освоєння.

виконувати операції складання та множення над невеликими двійковими числами;

сприйняття, осмислення та запам'ятовування інформації

Проведення тренувального туру в
реальний час.

Участь у різних очних, дистанційних олімпіад

Розбір завдань туру.
Діагностика дефіцитів у теоретичній,
практичної та технічної підготовки.

Кодування числової інформації. Кодування текстової інформації

будувати таблиці істинності для логічних виразів; сприйняття, осмислення та запам'ятовування інформації

Кодування графічної інформації. Кодування звукової інформації.

Двійковий код. Кодування. Декодування. Недолік двійкового кодування. Система обчислення. Позиційні. Непозиційні

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

визначати за блок-схемою, для вирішення якого завдання призначений цей алгоритм; слухання, конспектування, відповіді на запитання після пояснення матеріалу

Вирішення завдань на кількість інформації. Швидкість передачі.

аналізувати зміну значень величин під час покрокового виконання алгоритму; конспектування.

Абсолютна та відносна адресація в Excel. Формули у Excel. Розв'язання задач із графами.

визначати за вибраним методом розв'язання задачі, які алгоритмічні конструкції можуть увійти до алгоритму; сприйняття, осмислення та запис у зошити

Мови програмування. Змінні та типи даних

сприйняття, осмислення та запам'ятовування інформації, конспектування отриманої інформації

Механізми абстракції.

Особливості програмування фундаментальних алгоритмів

сприйняття, осмислення та запам'ятовування інформації, конспектування отриманої інформації

Основи синтаксису та семантики мов високого рівня. Основні конструкції програмування

розглянути етапи розвитку мов програмування ознайомити з інтегрованим середовищем програмування

- 6 год

Знаходження НОД та НОК. Алгоритми Евкліда.

у розмові з цієї теми

Піфагорові трійки. Прості числа. Числа близнюки.

слухання, конспектування, участь

у розмові з цієї теми

Досконалі числа. Числа паліндроми, Мерсенна, Армстронга, Фібоначчі. Діофантові рівняння. «Довга» арифметика

сприйняття, осмислення та запам'ятовування інформації

- 17 год

Стратегії реалізації алгоритмів

Реалізація рекурсії

практична робота за комп'ютером, робота з додатковими джерелами

Введення у моделювання.

Компоненти комп'ютерної моделі та способи їх опису: вхідні та вихідні змінні, змінні стани, функції переходу та виходу, функція просування часу

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

Комп'ютерні мережеві технології.

Основні етапи та особливості побудови комп'ютерних моделей.

виявляти загальні риси та відмінності способів взаємодії на основі комп'ютерних мереж; аналізувати доменні імена комп'ютерів та адреси документів в Інтернеті; робота з Інтернет - ресурсами, конспектування, аналіз знайденої інформації

Основні етапи використання комп'ютерних моделей під час вирішення практичних завдань

практична робота на комп'ютері

Організація олімпіадної підготовки: режим
дня, заняття спортом, .
Методи самодіагностики рівня
підготовленості.

сприйняття, осмислення та запам'ятовування інформації

Основні критерії олімпіадної
підготовки: теоретичні, практичні,
технологічні, технічні,
психологічні.

сприйняття, осмислення та запам'ятовування інформації

Моніторинг школяром
виконання індивідуального плану для
самостійної олімпіадної підготовки
Налаштування індивідуального плану за підсумками
моніторингу.

сприйняття, осмислення та запам'ятовування інформації

Рефлексія

РАЗОМ

68 год.

ПОЯСНЮВАЛЬНА ЗАПИСКА
ВСТУП.

Програма курсу «Підготовка до олімпіади з
інформатики для 8 класів» була розроблена у зв'язку з необхідністю
підготовки здібних учнів до олімпіад з інформатики. Щоб
вирішувати олімпіадні завдання, необхідно не лише швидко та логічно
мислити, але й володіти спеціальними методами програмування, які
дозволяють створювати оптимальні та ефективні програми. Кількість
годин, що відводиться у шкільному курсі інформатики на розділ
"Алгоритмізація та програмування", недостатньо для того, щоб хоча
б ознайомити учнів із цими методами. У зв'язку з цим виникла ідея
залучення здібних учнів до вивчення цього курсу.
Олімпіади є одним з ефективних та перевірених на
практиці педагогічних механізмів виявлення та розвитку творчих
здібностей школярів, важливою складовою профільного навчання,
що забезпечує високу мотивацію до освітньої та наукової
діяльності. Важливою є та обставина, що олімпіади
стимулюють педагогів-наставників до підвищення професійного
рівня та якості роботи. Методика підготовки до інтелектуальних
змаганням, зміст завдань, їх типи, критерії оцінки залучають
пильну увагу та інтерес не лише учасників олімпіади, а й
вчених, освітян, методистів, батьків учнів. Предметні
олімпіади сприяють також формуванню нових вимог до
змісту та якості освіти, форм та методів навчальної роботи,

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

ЦІЛІ І ЗАВДАННЯ

Основна мета курсу  захопити учнів розв'язанням задач
підвищеної складності з інформатики, освоєнням основ
програмування, дати здатним учням матеріал для роботи та
забезпечити якісне засвоєння знань про методи програмування
розробки та реалізації ефективних та оптимальних алгоритмів вирішення
задач.
Завдання даного курсу полягає в тому, щоб допомогти учням у
пошуку оптимальних алгоритмів для вирішення складних завдань та залучити їх
до участі в олімпіадах з інформатики

Структура курсу включає наступні розділи:

Республіканська олімпіада школярів з інформатики Нормативне забезпечення Республіканської олімпіади з інформатики

Інтелектуальні ресурси олімпіадної інформатики Колекції олімпіадних завдань

Технологічні ресурси олімпіадної інформатики Середовище програмування

Обчислювальні завдання, що використовують властивості натуральних чисел

Методи обчислень та моделювання.Індивідуальна траєкторія олімпіадної підготовки

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

Методичні вказівки для вивчення курсу

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

Віртуальні лабораторії з інформатики у початковій школі: методичний посібник Автори: Цвєткова М. С., Куріс Г. Е.

Колекції олімпіадних завдань з 1989 по 2016 рік та методичні матеріали до них представлені на сайтах:

http://old.info.rosolymp.ru/

Представлені інтернет-ресурси олімпіадної інформатики:

1. Інтернет-ресурси для теоретичної підготовки до олімпіад:

2. Інтернет-ресурси з колекціями олімпіадних завдань:

http://olimpic.nsu.ru/nsu/ (сайт відкритої Всесибірської олімпіади з програмування ім. І.В. Поттосіна).

3. Інтернет-ресурси з колекціями олімпіадних завдань та можливістю їх тестування у реальному масштабі часу:

4. Сайти інтернет-олімпіад для школярів:

Список літератури

1. Алексєєв А. В., Бєляєв С. Н. Підготовка школярів до олімпіад з інформатики з використанням веб-сайту: учеб.-метод. посібник для учнів 7-11 класів. Ханти-Мансійськ: РІО ІРО, 2008. 284 с.

2. Волченков С. Г., Корнілов П. А., Бєлов Ю. А. та ін. Ярославські олімпіади з інформатики. Збірник завдань із рішеннями. М: БІНОМ. Лабораторія знань 2010. 405 с.

3. Долинський М. С. Алгоритмізація та програмування на TurboPascal: від простих до олімпіадних завдань: учеб.пособие. СПб.: Пітер Прінт, 2004. 240 с.

4. Іванов С. Ю., Кірюхін В. М., Окулов С. М. Методика аналізу складних завдань з інформатики: від простого до складного // Інформатика та освіта. 2006. № 10. С. 21-32.

5. Кірюхін В. М. Всеросійська олімпіада школярів з інформатики. М.: АПК та ППРО, 2005. 212 с.

6. Кірюхін В. М. Інформатика. Всеросійські олімпіади. Вип. 2. М: Просвітництво, 2009. 222 с. (П'ять кілець).

7. Кірюхін В. М. Інформатика. Всеросійські олімпіади. Вип. 3. М: Просвітництво, 2011. 222 с. (П'ять кілець).

8. Кірюхін В. М. Інформатика. Міжнародні олімпіади. Вип. 1. М: Просвітництво, 2009. 239 с. (П'ять кілець).

9. Кірюхін В. М., Лапунов А. В., Окулов С. М. Завдання з інформатики. Міжнародні олімпіади 1989-1996 років. М: ABF, 1996. 272 ​​с.

10. Кірюхін В. М., Окулов С. М. Методика аналізу складних завдань з інформатики // Інформатика та освіта. 2006. № 4. С. 42-54.

11. Кірюхін В. М., Окулов С. М. Методика аналізу складних завдань з інформатики // Інформатика та освіта. 2006. № 5. С. 29-41.

12. Кірюхін В. М., Окулов С. М. Методика вирішення завдань з інформатики. Міжнародні олімпіади. М: БІНОМ. Лабораторія знань, 2007. 600 с.

13. Кірюхін В. М., Цвєткова М. С. Всеросійська олімпіада школярів з інформатики у 2006 році. М.: АПК та ППРО, 2006. 152 с.

14. Кірюхін В. М., Цвєткова М. С. Методичне забезпечення олімпіадної інформатики в школі / Зб. праць XVII конференції-виставки «Інформаційні технології освіти». Ч. ІІІ. М: БІТ про, 2007. С. 193-195

15. Кірюхін В. М. Інформатика. Всеросійські олімпіади. Вип. 1. М: Просвітництво, 2008. 220 с. (П'ять кілець).

16. Меньшиков Ф. В. Олімпіадні завдання з програмування. СПб.: Пітер, 2006. 315 с.

17. Московські олімпіади з інформатики. 2002-2009 / за ред. Є. В. Андрєєвої, В. М. Гуровиця та В. А. Матюхіна. М: МЦНМО, 2009. 414 с.

18. Нижегородські міські олімпіади школярів з інформатики/за ред. В. Д. Лелюха. Нижній Новгород: ІПФ РАН, 2010. 130 с.

19. Нікулін Є. А. Комп'ютерна геометрія та алгоритми машинної графіки. СПб.: БХВ-Петербург, 2003. 560 с.

20. Окулов З. М. Основи програмування. М: БІНОМ. Лабораторія знань, 2005. 440 с.

21. Окулов С. М. Програмування в алгоритмах. М: БІНОМ. Лабораторія знань 2002. 341 с.

22. Окулов З. М. Дискретна математика. Теорія та практика розв'язання задач з інформатики: учеб.посібник. М: БІНОМ. Лабораторія знань 2008. 422 с.

23. Окулов С. М. Алгоритми обробки рядків: учеб.пособие. М: БІНОМ. Лабораторія знань, 2009. 255 с.

24. Окулов С. М., Пестов А. А. 100 завдань з інформатики. Кіров: Вид-во ВДПУ, 2000. 272 ​​с.

25. Окулов З. М., Лялін А. У. Ханойські вежі. М: БІНОМ. Лабораторія знань 2008. 245 с. (Розвиток інтелекту школярів).

26. Просвітів Г. І. Дискретна математика: завдання та рішення: учеб.посібник. М: БІНОМ. Лабораторія знань 2008. 222 с.

27. Скієна С. С., Ревілла М. А. Олімпіадні завдання з програмування. Посібник з підготовки до змагань. М: Кудіц-образ, 2005. 416 с.

28. Сулейманов Р. Р. Організація позакласної роботи у шкільному клубі програмістів: методичний посібник. М: БІНОМ. Лабораторія знань 2010. 255 с.

29. Цвєткова М. С. Система навчання як основа олімпіадного руху / Збірник праць XVII конференції-виставки «Інформаційні технології в освіті». Ч. ІІІ. М: БІТ про, 2007. С. 205-207

30. Кірюхін В.М., Цвєткова М.С. Освітні програми з розвитку обдарованості у дітей та підлітків, складені з урахуванням рівня підготовленості, напрямів інтересів, за напрямом інформаційних технологій, 2012р.

Сайт Методичного центру олімпіадної інформатики:

http://metodist.lbz.ru/lections/6/

Портал Всеросійської олімпіади школярів:

http://www.rosolymp.ru/

Сайт з архівом олімпіадних завдань:

http://old.rosolymp.ru/

1. Інтернет-ресурси для теоретичної підготовки до олімпіад:

http://www.intuit.ru/courses.html (сайт Інтернет-університету інформаційних технологій);

http://ips.ifmo.ru/ (сайт Російської Інтернет-школи інформатики та програмування);

http://www.olympiads.ru/sng/index.shtml (сайт МІГО, МЦНМО, та оргкомітету Московської олімпіади з інформатики для проведення дистанційних семінарів з підготовки до олімпіад з інформатики);

http://vzshit.net.ru/ (сайт Всесибірської заочної школи інформаційних технологій).

2. Інтернет-ресурси з колекціями олімпіадних завдань:

http://old.info.rosolymp.ru (сайт з найбільшою в Росії колекцією завдань міжнародних та всеросійських олімпіад з інформатики з методичними рекомендаціями щодо їх вирішення);

http://www.olympiads.ru/moscow/index.shtml (сайт московських олімпіад з інформатики);

http://neerc.ifmo.ru/school/russia-team/archive.html (сайт з архівом завдань Всеросійських командних олімпіад школярів із програмування);

http://contest.ur.ru (сайт Уральських олімпіад з інформатики);

http://www.olympiads.ru/ (сайт з олімпіадної інформатики);

http://olimpic.nsu.ru/nsu/archive/2005/index.shtml (сайт відкритої Всесибірської олімпіади з програмування ім. І.В. Поттосіна).

3. Інтернет-ресурси з колекціями олімпіадних завдань та можливістю їх тестування у реальному масштабі часу:

http://acm.timus.ru/ (сайт Уральського державного університету, що містить великий архів завдань із різних змагань зі спортивного програмування);

http://acm.sgu.ru (сайт Саратовського державного університету, що містить архів завдань із системою онлайн-перевірки).

4. Сайти інтернет-олімпіад для школярів:

http://info-online.rusolimp.ru/ (сайт інтернет-турів останнього етапу Всеросійської олімпіади школярів з інформатики);

http://olymp.ifmo.ru/ (сайт міських інтернет – олімпіад школярів Санкт-Петербурга);

http://neerc.ifmo.ru/school/io/index.html (сайт інтернет-олімпіад з інформатики, що проводяться журі Всеросійської командної олімпіади школярів із програмування);

http://www.olympiads.ru/online/index.shtml (сайт московських онлайн-олімпіад);

http://olimpic.nsu.ru/acmSchool/archive/2006-2007/train2006/index.shtml (сайт тренувальних олімпіад школярів, підтримуваний Новосибірським державним університетом).

5. Олімпіадні сайти зарубіжних країн:

http://acm.uva.es (сайт університету Valladolid з найбільшою в інтернеті загальнодоступною колекцією завдань з можливістю перевірки в реальному часі та проведення змагань із програмування);

http://train.usaco.org/usacogate (сайт підготовки до американських олімпіад з інформатики);

http://www.acsl.org (Сайт організації American Computer Science League, яка організовує змагання з програмування серед школярів);

http://www.topcoder.com/tc (сайт інтернет-змагань компанії TopCoder);

http://www.inf.bme.hu/contests/tasks (сайт з великою кількістю завдань, що пропонувалися на змаганнях з інформатики у багатьох країнах); http://www.i-journals.org/olympiads_in_informatics/ (сайт міжнародного журналу «Олімпіади з інформатики» (Olympiadsininformatics);

http://www.ut.ee/boi (сайт Балтійських олімпіад з інформатики);

http://ipsc.ksp.sk (сайт щорічних інтернет-змагань з командного програмування);

http://www.hsin.hr/coci/ (англомовний сайт проведення Інтернет-олімпіад у Хорватії);

http://uoi.kiev.ua (сайт українських олімпіад школярів з інформатики);

http://byoi.narod.ru (сайт білоруських олімпіад школярів з інформатики).

Для формування траєкторії розвитку талановитого школяра рекомендується спиратися на критерії оцінювання його просування в олімпіадній підготовці. Критерії оцінювання сформовані на основі оцінки сучасних тенденцій та міжнародного досвіду олімпіадного руху з урахуванням розвитку тематики олімпіадних завдань, технології структурного програмування та систем програмування, орієнтованих на вимоги до них, зафіксовані в рекомендаціях для Всеросійської олімпіади школярів з інформатики та правил IOI ). Аналіз успішності володарів перших десяти золотих медалей на IOI за останні п'ять років також дозволив сформулювати низку критеріїв – особливо у частині технологічної вмілості школярів.

Муніципальна бюджетна загальноосвітня установа

основна загальноосвітня школа №2 р.п. Сонячний

Сонячного муніципального району Хабаровського краю

Розглянуто: Стверджую:

Керівник МО директор МБОУ ЗОШ №2

________(Л.Т.Клімова) р.п. Сонячний

Протокол № _1_ від 30.08.2015р _________(О.В.Зверєва)

наказ від 31.08.2015 № 121.

ПРОГРАМА

індивідуальної підготовки

до муніципального етапу Всеросійської олімпіади школярів

по предмету «Інформатика та ІКТ»

для учениці 7 «А» класу

Склала:

Молчанова Світлана Миколаївна

вчитель інформатики, ВКК

2015-2016 навчальний рік

п. Сонячний

    Пояснювальна записка:

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

    Зміни, які відбуваються сьогодні у суспільстві, докорінно впливають на завдання школи. Пріоритет учня, формування базових компетентностей сучасної людини змушують глянути на проблему розвитку обдарованості школярів. Адже обдарованість – це дані природою якості і здібності, це, перш за все, цілеспрямована робота з розвитку природного дару.

    Інформатика в нашій школі вивчається з 7 по 9 класи 1 годину на тиждень на базовому рівні, що недостатньо для підготовки до олімпіади з інформатики. Оскільки олімпіада з інформатики є, власне, своєю олімпіадою з програмування. Рішення олімпіадних завдань є самостійний навчальний розділ з великими теоретичними та практичними частинами.

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

    Ця освітня програма спрямовано підготовку учнів до участі у муніципальному етапі Всеросійської олімпіади школярів. Вивчення даної програми дозволить учням глибше вивчити цей предмет, розширити світогляд, навчитися застосовувати отримані знання на вирішення завдань.

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

    Завдання програми:

    на етапі вхідної діагностики виявити рівень творчих та індивідуальних можливостей учнів;

    визначити та використовувати при організації освітнього процесу методи та прийоми, що сприяють розвитку можливостей учня;

    організувати заходи підвищення соціального статусу учня;

    навчити учнів реалізації як стандартних, і нестандартних алгоритмів;

    розвивати в учнів навички розв'язання олімпіадних завдань;

    прищепити учням навички дослідницької роботи;

    розширення кругозору учнів та разом із батьками підтримувати учня у реалізації його інтересів у школі та сім'ї;

    розвиток рефлексивних умінь.

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

    Освітня спрямованість, у межах якої реалізується програма – соціально-педагогічна. Вік школярів, що навчаються, - 7 клас основної загальноосвітньої школи. Термін реалізації програми становить 1 місяць.

    Очікуваний результат:готовність учня до участі у муніципальному етапі Всеросійської олімпіади школярів з інформатики.

    Використовувана література:

    Кірюхін В. М., Окулов С. М. Методика вирішення завдань з інформатики. Міжнародні олімпіади. - М.: БІНОМ. Лаб. знань,2007

    Кірюхін В. М., Окулов С. М. Методика вирішення завдань з інформатики. Міжнародні олімпіади. - М.: БІНОМ. Лаб. знань,2009

    Програмування в алгоритмах: навчальний посібник/С.М.Окулов. - М.: БІНОМ. Лаб. знань, 2004. – 341, с.

    Задачник із програмування / А.Г. Юркін. - СПб.: Пітер, 2002. - 192 с.

    http://olymp.ifmo.ru/ukr/11-12/inf-it/
    Олімпіади для школярів 7-11 класів.

    http://www.olympiads.ru
    Олімпіадна інформатика Події, завдання, тести, рішення, коментарі.

    http://olympiads.win.tue.nl/ioi/
    Архіви всіх міжнародних олімпіад школярів з інформатики

    Карта досягнень Фіц Маргарити:

      Навчальний рік

      Рівень участі в олімпіадах

      Результат

      Шкільний етап

      Шкільний етап

      Учасник

      Шкільний етап

      Переможець

    Графік занять:

      Тема

      Досліджувані питання

      Цілочисельна арифметика

      1. Алгоритм Евкліда. Знаходження НОД(а,b), НОК(a,b) рекурсивна та пряма реалізація

      2. Визначення простоти числа.

      3. Знаходження всіх простих чисел із проміжку (a,b).

      4. Розкладання даного натурального числа на прості множники.

      5. Дано розкладання цього натурального числа на прості множники. Знайти усі дільники цього числа.

      6. Знаходження всіх дільників натурального числа.

      7. Знаходження цифрового кореня натурального числа.

      8. Алгоритм Евкліда. Знаходження НОД(а,b), НОК(a,b) рекурсивна та пряма реалізація

      9. Довга арифметика:

      a) Зчитування довгого числа файлу.

      b) Запис довгого числа файлу.

      c) Додавання двох довгих чисел

      d) Множення довгого числа на коротке в системі числення з основою 1000.

      e) Збільшення довгого числа на довге.

      f) Поділ довгого на короткий

      g) Обчислення n! і ступеня an при невеликих і високих значеннях a і n, рекурсивна і нерекурсивна реалізація.

      h) Індійський алгоритм обчислення an

      i) Дано натуральне число N. Знайти останню ненульову цифру суми a1+a2+…+ak де N=p1a1*p2a2*…*pkak.

      j) Дано натуральне число N. Знайти останню ненульову цифру N!

      k) Дано натуральні числа N та M. Знайти останню ненульову цифру числа поєднань C з N по M.

      10) Дано натуральні числа N і M. Обчислити число поєднань C з N по M. 1

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

      Алгоритми над цілими числами

      Одновимірні масиви

      1. Оголошення та використання масивів.

      2. Створення масивів: вручну, за формулою, генератором випадкових чисел, читання з файлу

      3. Види сортувань. Зовнішнє та внутрішнє сортування

      4. Сортування вибором.

      5. Сортування "бульбашкою".

      6. Сортування Шелла.

      7. Сортування злиттям.

      8. Зовнішнє сортування злиттям.

      9. Купи. Сортування за допомогою купи.

      10. Сортування підрахунком.

      11. Хешує сортування.

      12. Цифрове сортування

      13. Наскрізний пошук елемента у масиві.

      14. Бінарний пошук елемента у масиві.

      15. Вилучення кореня n-ого ступеня з цього натурального числа.

      16. Обчислення значення багаточлена за схемою Горнер.

      Двовимірні масиви

      Створення двовимірних масивів.

      Завдання на двовимірні масиви:

      1 Знаходження максимального та мінімального елементів масиву.

      2 Сортування масиву за зростанням та зменшенням у рядках та стовпцях.

      3 Поміняти місцями перший і останній рядки (стовпці).

      4 Відобразити масив симетрично щодо горизонтальної осі.

      5 Відобразити масив симетрично щодо вертикальної осі.

      6 Відобразити масив n*n симетрично щодо головної діагоналі

      7 Відобразити масив n*n симетрично щодо побічної діагоналі

      8 Повернути масив n*n проти годинникової стрілки на 90 градусів.

      9 На шахівниці стоїть слон і ще кілька фігур. Скільки клітин контролює слон?

      Рекурсія. Комбінаторні об'єкти

      1. Поняття "комбінаторних" алгоритмів.

      2. Одержання комбінаторних об'єктів.

      3. Завдання:

      Згенерувати всі послідовності довжини n із чисел від 1 до k.

      Згенерувати всі підмножини n-елементної множини.

      Згенерувати усі перестановки чисел від 1 до N.

      Згенерувати всі k-елементні підмножини n-елементної множини.

      Згенерувати уявлення числа N як суми натуральних чисел.

      Код Грею та подібні завдання.

      Генерація перестановок шляхом транспозиції сусідніх елементів.

      Числа Каталана. Розташування дужок.

      Сортування

      Перебірні завдання

      Геометричні завдання

      1. Логічні функції порівняння речових чисел.

      2. Площа орієнтованого трикутника (багатокутника).

      3. Рівняння прямої, що проходить через дві точки

      4. Загального вигляду ax+by+c=0

      5. Канонічне (x-x1)/(x2-x1)=(y-y1)/(y2-y1)

      6. параметричне x: = x1 + t (x2-x1);

      7. Рівняння прямої перпендикулярної даної ax+by+c=0 і проходить цю точку (x0,y0).

      8. Довжина відрізка

      9. Функція приналежності точки відрізка

      Чисельні методи

      1. Елементарна структура даних – запис.

      Лінійний перелік.

      2. Спеціальні структури даних: стек, черга, груд.

      3. Дерева. Впорядковані дерева.

      4. Обходи дерев.

      5. Двійкові дерева, дерева пошуку.

      6. Обходи двійкових дерев.

      7. Пошук елемента у дереві пошуку.

      8. Додавання/видалення елемента.

      9. Характеристики купи.

      1. Методи представлення графа.

      2. Обхід углиб.

      3. Обхід завширшки.

      4. Найкоротші шляхи.

      1 Алгоритм Форда-Беллмана.

      2 Алгортім Флойда.

      3 Алгоритм Дейкстри

      5. Пошук Ейлерового циклу

      6. Пошук Гамільтонова циклу

      7. Пошук компонент сильної зв'язності

      8. Пошук мостів

      9. Пошук точок зчленування

      10. Пошук максимального потоку

      11. Топологічне сортування.

      Статистичне моделювання

      Динамічне програмування

      Графи та дерева

      Текстові перетворення

      1.Процедури та функції обробки тексту на Паскалі

      2. Функції eof та eoln.

      3. Функції seekeof і seekeoln.

      4. Посимвольне оброблення тексту.

      5. Відмінність процедур read і readln.

      5. Пошук заданого підстроку в тексті. Алгоритм Бойєра-Мура.

      7. Використання хеш-функції для пошуку довільної підстроки у рядку.

      8. Рекурсивний синтаксичний аналіз скобкових виразів.

      Динамічне програмування

      Концепція динамічного програмування Збереження рішень, підзадач, які вирішувати повторно чи кілька разів. Побудова динамічних таблиць проміжних результатів.

      Вирішення олімпіадних завдань

      1. Перебір та його значення у програмуванні.

      2. Методи оптимізації перебору.

      3. Завдання про розміщення ферзей.

      4. Завдання про обхід конем шахівниці.

      5. Завдання комівояжеру.

      Вирішення олімпіадних завдань

Методика підготовки до олімпіад з інформатики

Актуальність теми

У зв'язку з актуалізацією та активізацією олімпіадного руху все гостріше постає проблема підготовки учнів до участі в олімпіадах. Підготовка учня-олімпіадника починається з підготовки вчителя.

Проблеми, що постають перед учителем:

1. Вивчення нових форм проведення олімпіад.

2. Знання алгоритмів розв'язання олімпіадних завдань.

3. Наявність самих завдань.

4. Знання мов програмування.

5. Час на вивчення, налагодження та перевірку завдань.

6. Навчання учнів правильної організації діяльності на олімпіаді.

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

Ось деякі особливості підготовки школярів до олімпіадного програмування :

· У шкільній програмі немає такого предмета «програмування» і навіть такого розділу. Тобто, той, хто навчається, повинен мати власну, досить сильну мотивацію.

· Діє обмеження, що при вирішенні завдань бажано використовувати лише одну з мов програмування (СІ або ПАСКАЛЬ).

· Постійні тренування йдуть майже на спортивному рівні.

· Великі витрати часу, тривалість олімпіади з розбором часто перевищує 6 годин.

· Алгоритми та формули, що застосовуються при вирішенні більшості завдань, вивчаються тільки у ВНЗ.


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

· Можлива друга освіта, профільний ВНЗ з програмування.

· ІПК вчителів, курси з вивчення мов програмування, з олімпіадного програмування.

· Самостійна підготовка з використанням матеріалів із додаткових джерел.

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

Педагогічна ідея

p align="justify"> Основним стимулом до участі в олімпіадах для школяра є мотивація. Це не тільки можливість покращити свою позначку, а й можливість показати знання та ерудицію з вирішуваної проблеми, свої організаторські здібності, дати можливість «заробити позначку» іншим учням (навіть тим, хто не бере участі в олімпіаді).

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

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

У 1964 р. В. Врум запропонував «теорію очікувань». Він вважав, що стимул до ефективної та якісної праці залежить від поєднання трьох факторів – очікувань людини:

1. Очікування того, що зусилля призведуть до бажаного результату.

2. Очікування того, що результати спричинять винагороду.

3. Очікування того, що винагорода матиме достатню цінність.

Чим більше віра людини, що всі ці очікування виправдаються, тим сильнішим буде стимул до діяльності. Якщо трохи змінити формулювання В. Врума в освітньому контексті, то ось що вийде:

· Теорія очікування вказує на те, що повинні робити вчителі, щоб стимули до навчання в учнів були сильними:

o Вчити учнів отримувати необхідні результати та створювати для цього всі необхідні умови;

o Встановлювати безпосередній зв'язок між результатами праці та оцінкою учнів;

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

· Виходячи з цього, механізми мотивації та основні фактори ефективності стимулювання можна виразити як:

o Знання вчителями потреб, інтересів, потреб учнів.

o Встановлення справедливого безпосереднього зв'язку між результатами та винагородою.

o Невідкладність винагороди.

o Ступінь задоволення очікувань.

Для підготовки до олімпіад з програмування можна застосувати методику з використанням системи тестування "NSUTS" , розробленої на базі НГУ, яка дозволяє оперативно вирішувати багато з цих пунктів.


Технологія використання системи «NSUTS »

Система знаходиться за адресою https://olympic. *****/nsuts-test/nsuts_new_login. cgi. При переході за цим посиланням потрапляємо на сторінку авторизації, де, ввівши свій логін та пароль, можна увійти до системи.

https://pandia.ru/text/78/392/images/image002_97.jpg" width="623" height="258 src=">

У цьому випадку виберемо, наприклад, Шкільні тренування, після чого ви потрапите на сторінку « Сторінка реєстрації на Шкільні тренування», де реєстрація проста та зрозуміла. Тільки треба врахувати, що дані, які ви вводите, повинні бути достовірними.

https://pandia.ru/text/78/392/images/image004_80.jpg" width="623" height="306">

На вкладці « Help» можна прочитати коротку інструкцію щодо роботи в системі. Розглянемо вміст цієї сторінки.

Система тестування NSUTS. Дуже короткий опис.

Ви знаходитесь в автоматичній системі тестування NSUTS для проведення та перевірки олімпіад з програмування. У верхній частині екрана відображається поточний розділ. У правому верхньому кутку – назва поточної олімпіади, назва вашої команди та кнопка завершення роботи з системою – « Вийти».

В розділі " ТурВи можете обрати поточний тур олімпіади.

В розділі " Новини» ви можете прочитати оголошення та коментарі від журі та оргкомітету олімпіади. А також дізнатися час початку та кінця олімпіади. Після початку олімпіади на цій сторінці з'являються посилання на завдання.

В розділі " Здати» здійснюється надсилання завдань на тестування. Для того щоб відправити завдання на тестування, вкажіть мову, якою написано рішення, і номер завдання. Вставте текст рішення у поле введення та натисніть кнопку « Відправити». Або виберіть файл, використовуючи рядок вибору файлу, а потім натисніть кнопку « Відправити». Ваше рішення з'явиться у списку відправлених завдань у секції « Результати».

Ваші рішення мають зчитувати вхідну інформацію із файлу input. txt і видавати результат у файл output. txt . Заборонено читати зі стандартного потоку введення, писати стандартний потік виведення, стандартний потік помилок. Програма учасника не повинна відкривати, читати та модифікувати файли, крім input. txt та output. txt або інші, зазначені в умові завдання. Доступ до файлової системи та інших ресурсів, крім перерахованих у формулюванні завдання, заборонено. Порушення цієї вимоги є підставою для дискваліфікації команди. Обмеження на розмір вихідного коду – 100 кілобайт. Формат виведення повинен точно відповідати вимогам, описаним за умови завдання.

Учасник може використовувати будь-який компілятор із перелічених у розділі « Здати».

Опції компіляції:

Visual C++ 6.0

Visual C++ 2005

cl. exe/EHsc/Ox task. cpp /link /STACK:

MinGW 5.1.4 (GCC 3.4.5)

c++.exe - Wall - Wl, - stack = - O2 task. cpp

Freepascal 2.2.0

ppc386.exe – O2 – Cs task. pas

Java 1.6.0_07

javac. exe Task. java

ЗапускJava

java - Xmx480m - Xss32m - Djava security. manager – Duser. language=en_US Task

Borland Delphi 2006

У секції « Результати» Ви можете переглянути статус тестування та результати тестування надісланих вами завдань. У рядку " Час» вказано час на момент здачі рішення, мова програмування, яку ви вказали, здаючи це рішення. Посилання " View source» Покаже текст зданого рішення.

У рядку " Результат» відображається результат тестування:

Queued – рішення стоїть у черзі на тестування.

Testing... - тестується у цей момент.

Source code limit exceeded – перевищено обмеження на вихідний код програми.

Compile Error - не вдалося скомпілювати (причина вказується).

Коли рішення протестоване, статус набуває одного з наступних значень:

ACCEPTED! - Рішення зараховано як правильне.

Wrong Answer – неправильна відповідь на тесті.

Time limit exceeded - рішення не вклалося у відведений процесорний час.

Timeout – рішення не вклалося у відведений час.

Run-time Error – рішення повернуло код помилки, відмінний від нуля.

Memory limit exceeded - рішення не вклалося у відведене обмеження пам'яті.

No output file – відсутній файл output. txt.

Security violation – рішення здійснило дію заборонене правилами.

При цьому вказується номер тесту, на якому сталася помилка (для олімпіад ACM).

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

Штрафний час – це сума штрафного часу за всіма завданнями. Штрафний час для одного завдання дорівнює 0, якщо задача не здана. Якщо ж завдання здане, то його штрафний час вважається за такою формулою:

час_здачі_правильного_рішення + (кількість_невдалих_спроб * 20).

Cекція « Питання та відповіді» призначена для спілкування із Журі олімпіади. Ви можете поставити журі питання щодо умов задач або вказати на неточність формулювання задач.

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

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

На вкладці «Тур» вибираємо необхідний нам тур з олімпіади, наприклад, « Підготовка до Всеросійської олімпіади 2010.03.21 (Геометрія) ». Після цього переходимо на вкладку "Новини" і за посиланням "Умова туру" завантажуємо файл формату MS Office Word, в якому знаходяться завдання, представлені до вирішення на даному турі.

Вирішивши завдання, на вкладці «Здати» відправляємо її на перевірку, виставивши всі необхідні параметри (мова, текст програми або файл із програмою). Результати перевірки можна дізнатися на вкладці "Результати".

Основні класи завдань, що висуваються на олімпіади з інформатики

Для успішного виконання не тільки олімпіадних, а й внутрішньоурочних завдань, потрібно:

1. Досконало володіти мовою та середовищем програмування (у нашому випадку – це Free Pascal), вміти будувати та втілювати за допомогою цієї мови різні алгоритми.

2. Володіти необхідним математичним апаратом.

3. Знати алгоритми розв'язання основних класів задач, їхню оптимізацію.

Завдання олімпіадного програмування охоплюють дуже великий спектр знань, але найчастіше зустрічаються і викликають найбільшу складність - це:

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

2. Графи, як багато об'єктів з безліччю зв'язків.

3. Завдання, що використовують аналітичну геометрію та спираються на поняття «вектор».

4. Завдання динамічного програмування.

Розглянемо ці класи завдань докладніше.

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

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

Насправді структури даних у ЕОМ будуються з урахуванням базових типів даних, як-от «char», «integer», «real». На наступному рівні знаходяться масиви, що є набором базових типів даних. Потім йдуть записи, що являють собою групи типів даних, доступ до яких здійснюється по одному з даних, а на останньому рівні, коли вже не розглядаються фізичні аспекти представлення даних, увага звертається на порядок, в якому дані зберігаються і в якому робиться їхній пошук. По суті, фізичні дані пов'язані з «машиною даних», яка керує способом доступу до інформації у вашій програмі. Є чотири такі «машини»:

1. черга;

3. пов'язаний перелік;

4. Двійкове дерево.

1) http://ua. Wikipedia. org/wiki/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0 %BD%D0%BD%D1%8B%D1%85.

2) http://valera. *****/delphi/struct/ocher. html.

3) http://www. *****/informatika/pascal/struktury_dannyh.

4) Т. Кормен. Алгоритми Побудова та аналіз. 2-ге вид. Стр.255

5) Завдання та рішення http://*****/olimp/str_prb. php.

Графи, як багато об'єктів з безліччю зв'язків.

Граф – це абстрактний математичний об'єкт. Він складається з вершин та ребер. Кожне ребро поєднує пару вершин. Якщо ту саму пару вершин з'єднують кілька ребер, то ці ребра називаються кратними. Ребро, що сполучає вершину з нею самою, називається петлею. По ребрах графа можна ходити, переміщаючись із однієї вершини до іншої. Залежно від того, чи можна по ребру ходити в обидві сторони, або лише в одну, розрізняють неорієнтовані та орієнтовані графи відповідно. Орієнтовані ребра називаються дугами. Якщо у всіх ребер графа є вага (тобто деяке число, що однозначно відповідає даному ребру), то граф називається зваженим. Вершини, з'єднані руба, називаються сусідніми. Для неорієнтованого графа ступінь вершини – число ребер, що входять до неї. Для орієнтованого графа розрізняють ступінь з вхідних і ступінь з вихідних ребрів. Граф називається повним, якщо між будь-якою парою різних вершин є ребро.

Граф – об'єкт абстрактний, і інтерпретувати його можемо по-різному, залежно від конкретної задачі. Розглянемо приклад. Нехай вершини графа – міста, а ребра – дороги, що їх сполучають. Якщо дороги мають односторонній рух, граф орієнтований, інакше неорієнтований. Якщо проїзд дорогами платний, то граф зважений.

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

Існує кілька способів представлення графа в пам'яті комп'ютера. Далі з теорією можна ознайомитись за посиланнями:

1. http://*****/sng/index. shtml

2. http://*****/sng/4/index. shtml

3. https://sites. /site/vzsitgnovosibirsk/distancionnye-kursy/distancionnyj-kurs-graf

4. http://book. *****/10/grap1021.htm

5. http://ua. Wikipedia. org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D0%B3%D1%80%D0%B0%D1%84%D0%BE%D0 %B2

6. Завдання та рішення http://*****/olimp/gra_prb. php

Завдання, що використовують аналітичну геометрію та спираються на поняття «вектор»

Обчислювальна геометрія - це розділ інформатики, що вивчає алгоритми розв'язання геометричних завдань. Такі завдання виникають у комп'ютерній графіці, проектуванні інтегральних схем, технічних пристроїв та ін. Вихідними даними в таких задачах можуть бути безліч точок, набір відрізків, багатокутник тощо. Результатом може бути або відповідь на якесь питання чи ці прямі»), або якийсь геометричний об'єкт (наприклад, найменший опуклий багатокутник, що містить задані точки).

В «Інформатиці» № 14 було опубліковано статтю одного з авторів, присвячену завданням обчислювальної геометрії в олімпіадах з інформатики. Зокрема, там було сформульовано низку елементарних підзадач, на які спирається вирішення більшості задач обчислювальної геометрії. Однак заняття навіть з математично добре підготовленими учнями старших класів показали, що вирішення таких підзавдань викликає у них велику скруту. Завдання або ставить їх у глухий кут, або обраний «лобовий» спосіб вирішення настільки складний, що довести його до кінця без помилок учні не можуть. Аналіз результатів вирішення «геометричних» завдань на всеросійських олімпіадах з інформатики призводить до тих самих висновків. За посиланнями нижче ви зможете вивчити підходи до розв'язання геометричних задач на площині, які дозволяють досить швидко та максимально просто отримувати рішення більшості елементарних підзадач.

1) http://*****/?page=lib_viewarticle&article_id=12.

2) http://*****/article. asp? id_sec=1&id_text=1332.

3) Завдання та рішення http://*****/olimp/geo_prb. php

Завдання динамічного програмування.

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

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

Основи теорії динамічного програмування було закладено Р. Беллманом. Зауважимо, що слово програмування у наведеному назві (dynamic programming), як і і “лінійному програмуванні” (linear programming) значить складання програм для комп'ютера.

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

1) виділити та описати підзадачі, через вирішення яких буде виражатися шукане рішення,

2) виписати рекурентні співвідношення (рівняння), що пов'язують оптимальні значення параметра для підзадач,

3) обчислити оптимальне значення параметра для всіх підзадач,

4) побудувати найоптимальніше рішення, використовуючи отриману інформацію.

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

1) http://*****/blogs/algorithm/113108/.

2) http://www. *****/Olympiads/Rules_Olympiads/Rules21.htm.

3) http://*****/tag/%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81 %D0%BA%D0%BE%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8 %D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/

4) Завдання та рішення http://*****/olimp/rec_prb. php

Браузери