Общая информация
АИШ 10 лет Бронирование О программе Схема обучения Программа обучения Стоимость обучения Преподаватели Новости и успехи Дни открытых дверей Работы слушателей О филиале АИШ Летняя школа
Обучающимся
Расписание занятий Списки групп и оценки Поиск школьника
Внеучебная жизнь
Олимпиады Политех-квест КРОСС И3 Курс для родителей Small Basic - клуб Битва роботов
Обратная связь
Форум Как нас найти Контакты

Дни открытых дверей Академии информатики для школьников — 10 января (Среда) в 19:00 Аудитория №148
17 января,

Печать

Олимпиадное программирование (Паскаль)


График обучения: 52 академических часа

Преподаватели

Аннотация

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

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

Курс «Олимпиадное программирование» предназначен для тех, кто уже усвоил основы алгоритмизации и приобрел базовые навыки программирования на одном из языков. В качестве базового языка курса был выбран Pascal, так как он является одним из самых распространённых на олимпиадах и достаточно легок для школьников.

Цель первой части курса – помочь будущим программистам освоить базовый синтаксис языка программирования Pascal, получить навыки написания, отладки, автоматической проверки программ на этом языке с целью подготовки к рейтинговым олимпиадам. Материал курса охватывает все разделы языка Pascal, которые могут пригодиться при решении олимпиадных задач - структура программы, ввод/вывод данных, условный оператор, операторы цикла, массивы, процедуры/функции, текстовые файлы.

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

Итогом курса является экзамен – имитация Олимпиады, – на котором учащимся будут предложены задачи разного уровня сложности с автоматической проверкой правильности предложенного решения.

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

Знания и умения, полученные в результате обучения

Изучение языка Pascal

  • Простые типы данных.
  • Понятие переменной. Оператор присваивания.
  • Операторы ввода/вывода.
  • Условные операторы.
  • Операторы цикла с параметром, с предусловием, c постусловием.
  • Структурированные данные: массив, строка.
  • Применение стандартных процедур и функций.
  • Функции и процедуры программиста.
  • Рекурсия.
  • Текстовые файлы.

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

  • Способы тестирования программы.
  • Виды ошибок в программах, способы их выявления и локализации.
  • Опции компилятора.
  • Основные приёмы работы с отладчиком.
  • Особенности автоматической проверки правильности программ.

Олимпиадные задачи и способы их решения

  • Типы олимпиадных задач.
  • Техника решения «многословных» задач.
  • Способы организации перебора вариантов.
  • Приёмы решения комбинаторных задач.
  • Организация работы в команде программистов.

Требования к начальному уровню знаний

  • Курс ориентирован на школьников не младше 9 класса.
  • Вступительное тестирование.

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

Необходимо владение навыками алгоритмизации и опыт работы на каком-либо языке программирования (предпочтительно Visual Basic).

Ученики АИШ, закончившие 3 семестр («Практикум по программированию») или выполнившие курсовую работу за этот семестр, зачисляются на курс без тестирования, для остальных необходим вступительный тест.

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

Программа курса

Занятие 1

Введение

  • Цель и содержание семестра, организация занятий.
  • Входной тест.
  • Сравнительный анализ языков Basic и Pascal.
  • Обзор сред программирования на языке Pascal.

Программы, реализующие линейные и разветвлённые алгоритмы

  • Алфавит языка и основные типы данных.
  • Консольный ввод/вывод и оператор присваивания.
  • Структура простой программы .
  • Логический тип данных, логические выражения и условный оператор.

Решение олимпиадных задач по пройденным темам

Занятие 2

Программы циклической структуры

  • Циклы с заранее известным и заранее неизвестным числом повторений.
  • Циклы с параметром.
  • Управляющая переменная цикла.

Решение олимпиадных задач по пройденным темам

Занятие 3

Программы циклической структуры (продолжение)

  • Циклы с предусловием.
  • Циклы с постусловием.

Решение олимпиадных задач по пройденным темам

Проверочная работа по пройденным темам

Занятие 4

Одномерные массивы

  • Массив как структурированный тип данных.
  • Раздел описания типов, объявление массива.
  • Индексы. Доступ к элементам массива.
  • Обработка элементов массива с помощью цикла.

Решение олимпиадных задач по пройденным темам

Занятие 5

Многомерные массивы

  • Объявление многомерного массива.
  • Доступ к элементам многомерного массива.

Решение олимпиадных задач по пройденным темам

Проверочная работа по структурному программированию в формате олимпиады с автопроверкой.

Занятие 6

Процедуры и функции (подпрограммы). Рекурсия

  • Сравнение процедур и функций.
  • Объявление и параметры подпрограммы.
  • Глобальные и локальные переменные.
  • Тип функции и возвращаемое значение функции.
  • Рекурсивные подпрограммы.

Решение олимпиадных задач по пройденным темам

Занятие 7

Консультация

Занятие 8

Работа с файлами

  • Файлы и файловые переменные.
  • Текстовые файлы.
  • Ввод из файла, вывод и добавление в файл.

Решение олимпиадных задач по пройденным темам

Проверочная работа - задачи с автопроверкой с файловым вводом-выводом

Занятие 9

Особенности и типы олимпиадных задач

  • Основные типы олимпиадных задач.
  • «Многословные» задачи и способы их решения.

Тренинг по решению многословных олимпиадных задач.

Занятие 10

Перебор вариантов в программировании

  • Понятие перебора.
  • Многомерный перебор.
  • Перебор на основе рекурсии.
  • Перебор генерацией вариантов.

Решение олимпиадных задач на перебор

Занятие 11

Обзор полезных алгоритмов и структур данных

  • Волновой алгоритм.
  • Поиск пути в графе.
  • Дерево, его реализация с помощью списка.

Обзор информационных ресурсов по олимпиадному программированию

Занятие 12

Работа в команде

  • Техника командного программирования.
  • Тренинг – командная олимпиада.

Занятие 13

Экзамен

  • Олимпиада по программированию с автопроверкой.