Как подготовить олимпиадника по информатике?
статья по информатике и икт (9, 10, 11 класс)

Касина Ирина Викторовна

Данная статья содержит общие рекомендации при подготовке к ВОШ по информатике

Скачать:

ВложениеРазмер
Microsoft Office document icon statya_olimpiada_ispravlennaya.doc50.5 КБ

Предварительный просмотр:

Муниципальное автономное общеобразовательное учреждение

МАОУ «Гимназия №1» г. Брянска

Статья по теме 

«Как подготовить олимпиадника

по информатике»

Выполнила:

Учитель информатики Касина Ирина Викторовна

Брянск - 2021


Как подготовить олимпиадника по информатике?

Ежегодно многие учителя школ сталкиваются с проблемой подготовки учащихся к участию в олимпиадах по различным учебным дисциплинам. Не исключением, является и работа с одаренными детьми учителями информатики. Как же правильно построить свою работу с одаренными учениками, с чего начать свою работу с ними? На эти вопросы каждый учитель отвечает по-своему. Я, как учитель, подготовивших многих призеров и победителей регионального этапа Всероссийской олимпиады школьников по информатике, поделюсь своим опытом работы.

Выбор задач для Всероссийской олимпиады по информатике опирается на опыт и традиции Международной олимпиады, а, в свою очередь, подготовка задач для региональных и местных олимпиад осуществляется в большинстве случаев с оглядкой на Всероссийскую олимпиаду. Стать призером или победителем регионального или заключительного (всероссийского) этапа могут лишь единицы. Причем уроки информатики вовсе не должны давать абсолютно все знания и умения, необходимые для участников официальных олимпиад по информатике, поскольку затрагивают слишком большую область предметных знаний, не предусмотренных для изучения в школьном курсе. Темы задач по информатике не всегда соответствуют “Обязательному минимуму изучения информатики”. Более того, в качестве решения этих задач на олимпиаде требуется предъявить отлаженные программы, написанные на языке программирования высокого уровня, а не описания алгоритмов. Но и это требование полностью соответствует международным правилам. Изучение же программирования в российских школах постепенно вытесняется изучением информационных технологий, а, как известно, олимпиадная информатика – это именно программирование.

        Однако подготовить ребенка к олимпиаде можно. Есть множество способов организации олимпиадной подготовки, которые доступны школьному учителю информатики. Это, прежде всего, факультативные занятия и индивидуальная работа с учеником: как на уроках, так и во внеурочное время. Для проведения таких занятий важно правильно составить индивидуальную программу работы с ребенком, направленную на развитие самостоятельной деятельности учащегося под руководством учителя. В процессе обучения эта программа может корректироваться в зависимости от способностей и первоначальной подготовки учащегося.

Приведу перечень тем, рекомендуемых для работы с одаренным учеником в плане подготовки к олимпиаде по информатике (программированию). Рассматриваемые темы соответствуют темам олимпиадных задач, начиная с регионального этапа Всероссийской  олимпиады школьников и выше.

Раздел 1. Математические основы программирования
Раздел 2. Техника программирования
1. Основы языка программирования (Паскаль, Си)
2. Массивы
3. Строки. Элементы лексического и синтаксического разбора
4. Работа с файлами
5. Рекурсия
6. "Длинная" арифметика
7. Хранение информации в динамической памяти.
Раздел 3. Алгоритмы, методы и принципы решения задач
1. Понятие сложности алгоритма.
2. Алгоритмы поиска и сортировки
3. Решение задач методом перебора вариантов
4. Вычислительная геометрия и численные методы
5. Принцип динамического программирования
6. Жадные алгоритмы
7. Теория графов. Алгоритмы на графах
8. Лексический и синтаксический анализ
9. Задачи с "изюминками"
Раздел 4. Олимпиады по информатике
1. Правила проведения олимпиад по программированию
2. Типичные ошибки и отладка программ
3. Приемы олимпиадника.

4. Рекомендуемый порядок решения олимпиадных задач:

1) В самом начале тура полезно набить приведенную ниже универсальную заготовку для решения олимпиадной задачи (она представляет собой работающую программу):

Var     i,j,k:longint;

procedure readdata;

begin

    assign(input,'');     reset(input);

end;

procedure outdata;

begin

    assign(output,'');     rewrite(output);     close(output)

end;

procedure initial;

begin

    fillchar(i,65500,0);

end;

procedure run;

begin

end;

begin

    readdata;     initial;     run;     outdata

end.

(Хотя текст заготовки приведен на языке программирования Паскаль, он может быть представлен на любом разрешенном языке программирования).

Далее можно скопировать эту заготовку столько раз, сколько задач предложено на туре, и сразу назвать каждый файл так, как это требуется по условиям олимпиады. В результате вам не придется при переходе от решения одной задачи к другой начинать работу с нуля.

2) Затем следует очень внимательно прочитать условия всех задач и постараться правильно понять, в чем заключается каждая задача. Нужно формально подходить к тексту условия задачи, то есть понимать условие буквально, а не так, как покажется при его поверхностном чтении.

3) Если вы приступили к решению конкретной задачи и основная структура данных для нее вам ясна, то можно описать основные глобальные переменные и набить процедуру readdata ввода данных, чтобы она считывала все параметры задачи так, как это указано в условии Кроме того, при считывании из файла чисел обычно следует использовать только процедуру read (а не readln), для случаев же считывания символов и строк (тип string) это не так.

4) В процедуре initial следует обнулить или присвоить соответствующие начальные значения всем  глобальным переменным, за исключением тех, которые будут использоваться в качестве параметров циклов. Затем запрограммировать вывод результата в процедуре outdata так, как это требуется в условии задачи. Это поможет дальнейшей отладке программы,

5) При выполнении пунктов 3, 4 данной памятки или после следует подумать над подходами к решению задачи, для чего ответить себе на ряд вопросов и проделать ряд действий.

  • Проверить данные на фактическую корректность
  • Определить, относится ли данная задача к знакомому вам классу, или решение придется искать “с нуля”.
  • Попытаться найти на бумаге ( ! ) точное решение, возможно, только для малых размерностей. Такой подход зачастую позволяет обнаружить закономерности, которые затем можно попытаться распространить и на общий случай.
  • Попробуйте сформулировать условие существования решения, пусть только необходимое или только достаточное.
  • Продумайте и выпишите ( ! ) достаточную систему тестов.

6) Запрограммируйте решение задачи в виде вызовов процедур и функций. Таким образом, вы сможете отладить логику вашей программы, которая опять же должна оставаться “работающей”.

7) Затем следует по одной набивать и отлаживать уже описанные процедуры и функции, добиваясь, чтобы свое действие каждая из них выполняла правильно в любом случае. Особое внимание следует уделять программированию вырожденных случаев. Так, если у вас в программе встречается деление, то сразу подумайте, не может ли делитель быть нулем, и рассмотрите этот случай отдельно. При программировании циклов добивайтесь, чтобы зацикливания не происходило ни при каких начальных значениях переменных, использующихся в том или ином цикле, и т.д. и т.п.

8) Если вы не придумали эффективного решения задачи, то запрограммируйте его по-простому: например, с помощью полного перебора или простой эвристики. Если и это сложно, то упростите себе задачу, то есть отбросьте условия, которые вам мешают, или добейтесь, чтобы программа проходила на самых простых. Аналогично следует поступить с задачами, на решение которых у вас не хватило времени.

9) Прежде чем окончательно cоздавать EXE-файл, отрегулируйте размер необходимого вашей программе стека.

10) Постарайтесь запустить ваш EXE-файл непосредственно в операционной системе хотя бы для одного теста, чтобы убедиться в его работоспособности, и еще раз перечитайте условие.

Все эти приемы работы можно отработать, решая олимпиадные задачи, расположенные на Интернет-ресурсах: https://acmp.ru/, http://acm.timus.ru, https://informatics.mccme.ru/.

Начать решать олимпиадные задачи нужно с раздела Задачи для начинающих, постепенно увеличивая уровень сложности, отрабатывая подзадачи и увеличивая степень сложности решаемых задач.

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


По теме: методические разработки, презентации и конспекты

Рабочая программа по информатике3 класс Горячев

Рабочая программа составлена на основе авторской программы Горячева А. В. (Сборник программ «Образовательная система «Школа 2100» / под ред. А. А. Леонтьева. - М.: Баласс, 2004). Содержит разделы: поя...

Аттестационная работа по информатике8 класс

Экзаменационный материал по информатике и ИКТ составлен в соответствии с примерной программой основного общего образования по курсу «Информатика и ИКТ». Преподавание предмета «Информатика и ИКТ» ведет...

Типология туризма во взаимосвязи с физической культурой при подготовке "олимпиадников"

Типология туризма во взаимосвязи с физической культурой при подготовке "олимпиадников"...

Рабочая программа по информатике9 класс

Рабочая прогамма по информатике 9 класс 2 часа  в неделю...

статья:Обучение старшеклассников социальной информатике1.

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

Сборник заданий для олимпиадников

Данный сборник составлен на основании заданий, которые предлагались автором - составителем для использования в разные годы на районном турнире смекалистых....

Как подготовить олимпиадника по информатике?

Данная статья содержит общие рекомендации и приемы при подготовке к ВсОШ по информатике...