akaVeta
  информатика.....методика.....программирование
                                                                                                                         методист МКУ ИМЦ г. Комсомольска - на - Амуре  - Кондратьева Вета
Методические рекомендации по изучению тем для подготовки к олимпиадам по информатике и ИКТ
Содержание олимпиад по информатике охватывает следующие ключевые разделы, которые и составляют на сегодняшний момент основное содержание олимпиад школьников по информатике:
- 
Математические основы информатики. 
- 
Разработка и анализ алгоритмов. 
- 
Основы программирования. 
- 
Средства ИКТ. 
- 
Операционные системы. 
- 
Основы технологии программирования. 
- 
Методы вычислений и моделирование. 
- 
Компьютерные сетевые технологии. 
1. Раздел «Математические основы информатики» школьники должны
знать/понимать:
- 
основы терминологии функций, отношений и множеств; 
- 
перестановки, размещения и сочетания множества; 
- 
формальные методы символической логики высказываний 
- 
основы построения рекуррентных соотношений; 
- 
основные методы доказательств; 
- 
основы теории чисел; 
уметь:
- 
выполнять операции, связанные с множествами, функциями и отношениями; 
- 
вычислять перестановки, размещения и сочетания множества, а также интерпретировать их значения в контексте конкретной задачи; 
- 
решать типичные рекуррентные соотношения; 
- 
осуществлять формальные логические доказательства и логическое рассуждение для моделирования алгоритмов; 
- 
определять, какой вид доказательства лучше подходит для решения конкретной задачи; 
- 
использовать основные алгоритмы теории чисел; 
- 
использовать при решении практических задач вышеназванные знания и умения. 
Основными темами этого раздела являются:
- 
Отношения, функции и множества. 
- 
Основные геометрические понятия. 
- 
Основы логики. 
- 
Основы вычислений. 
- 
Методы доказательства. 
- 
Основы теории чисел. 
- 
Основы алгебры. 
- 
Основы комбинаторики. 
- 
Теорию графов. 
- 
Основы теории вероятностей. 
- 
Основы теории игр. 
2. Раздел «Разработка и анализ алгоритмов»
знать/понимать:
- 
элементы теории алгоритмов; 
- 
основные структуры данных; 
- 
основные понятия теории графов, а также их свойства и некоторые специальные случаи; 
- 
связь графов и деревьев со структурами данных, алгоритмами и вычислениями; 
- 
свойства, присущие «хорошим» алгоритмам; 
- 
нотации для описания объема вычислений, производимых алгоритмом сложность по времени и памяти простых алгоритмов; 
- 
вычислительную сложность основных алгоритмов сортировки, поиска и хеширования; понятие рекурсии и общую постановку рекурсивно-определенной задачи; 
- 
хэш-функцию и ее назначение; 
- 
простые численные алгоритмы; 
- 
основные комбинаторные алгоритмы; 
- 
основные алгоритмы вычислительной геометрии; 
- 
наиболее распространенные алгоритмы сортировки; 
- 
наиболее важные алгоритмы на строках; фундаментальные алгоритмы на графах: поиск в глубину и в ширину, нахождение кратчайших путей от одного источника и между всеми узлами, транзитивное замыкание, топологическая сортировка, построение минимального остовного дерева; 
- 
основные алгоритмические стратегии: полный перебор, перебор с возвратом, "жадные", "разделяй и властвуй" и эвристические; 
- 
основы динамического программирования; 
- 
основные положения теории игр; 
уметь:
- 
выбирать подходящие структуры данных для решения задач; 
- 
использовать вышеназванные алгоритмы в процессе решения задач; 
- 
определять сложность по времени и памяти алгоритмов; 
- 
определять вычислительную сложность основных алгоритмов сортировки, поиска и хеширования; 
- 
использовать нотации для описания объема вычислений, производимых алгоритмом и асимптотических оценок; 
- 
реализовывать рекурсивные функции и процедуры; 
- 
использовать при решении практических задач вышеназванные знания и умения. 
Основными темами этого раздела являются:
- 
Алгоритмы и их свойства. 
- 
Структуры данных 
- 
Основы анализа алгоритмов. 
- 
Алгоритмические стратегии. 
- 
Рекурсия. 
- 
Фундаментальные вычислительные алгоритмы. 
- 
Числовые алгоритмы. 
- 
Алгоритмы на строках. 
- 
Алгоритмы на графах. 
- 
Динамическое программирование. 
- 
Алгоритмы теории игр. 
- 
Геометрические алгоритмы. 
3. Раздел «Основы программирования»
знать/понимать:
- 
основные конструкции программирования; 
- 
концепцию типа данных как множества значений и операций над ними; 
- 
основные типы данных; 
- 
основные структуры данных: массивы, записи, строки, связные списки, стек, очереди и хэш-таблицы; 
- 
представление данных в памяти; 
- 
альтернативные представления структур данных с точки зрения производительности; 
- 
основы ввода/вывода; 
- 
операторы, функции и передача параметров; 
- 
статическое, автоматическое и динамическое выделение памяти; 
- 
управление памятью во время исполнения программы; 
- 
методы реализации стеков, очередей и хэш-таблиц; 
- 
методы реализации графов и деревьев; 
- 
механизм передачи параметров; 
- 
особенности реализации рекурсивных решений; 
- 
стратегии, полезные при отладке программ; 
уметь:
- 
анализировать и объяснить поведение простых программ, включающих фундаментальные конструкции; 
- 
модифицировать и расширить короткие программы, использующие стандартные условные и итеративные операторы и функции; 
- 
разработать, реализовать, протестировать и отладить программу, которая использовать все наиболее важные конструкции программирования; 
- 
применять методы структурной (функциональной) декомпозиции для разделения программы на части; 
- 
реализовать основные структуры данных на языке высокого уровня; 
- 
реализовать, протестировать и отладить рекурсивные функции и процедуры; 
- 
использовать при решении практических задач вышеназванные знания и умения и уверенно программировать хотя бы на одном из допустимых на олимпиадах по информатике языков программирования. 
Основными темами этого раздела являются:
- 
Языки программирования. 
- 
Основные конструкции программирования. 
- 
Переменные и типы данных. 
- 
Типы структур данных. 
- 
Механизмы абстракции. 
- 
Особенности программирования фундаментальных алгоритмов. 
4. Раздел «Средства ИКТ»
знать/понимать:
- 
логические переменные, операции, выражения; 
- 
системы счисления; 
- 
форматы представления числовых данных; 
- 
как представление данных с фиксированной разрядностью влияет на точность; 
- 
внутреннее представление не числовых данных; 
- 
внутреннее представление символов, строк, записей и массивов; 
- 
организацию классической машины фон Неймана и ее основные функциональные блоки; 
- 
как инструкции представляются на машинном уровне; 
- 
основы ввода-вывода; 
- 
основные виды памяти; 
- 
основы управления памятью 
- 
использование прерываний для реализации управления вводом-выводом и передачей данных; 
- 
как осуществляется доступ к данным с магнитного диска; 
- 
интерфейсы, необходимые для поддержки мультимедиа; 
уметь:
- 
переводить числа из одной системы счисления в другую; 
- 
использовать математические выражения для описания функций простых последовательных и комбинационных схем; 
- 
преобразовывать числовые данные из одного формата в другой; 
- 
настраивать свое компьютерное место для выполнения поставленной задачи; 
- 
использовать при решении практических задач вышеназванные знания и умения, позволяющие школьнику уверенно чувствовать себя при работе с компьютером при решении олимпиадного задания. 
Основными темами этого раздела являются:
- 
Цифровая логика. 
- 
Представление данных в памяти компьютера. 
- 
Организация работы компьютера. 
- 
Устройство памяти компьютера. 
5. Раздел «Взаимодействие и коммуникации»
знать/понимать:
- 
функции современных операционных систем, 
- 
отличие примитивных пакетных систем от сложных многопользовательских операционных систем, 
- 
понятие логического уровня, 
- 
как вычислительные ресурсы используются прикладным ПО и управляются системным ПО, 
- 
преимущества и недостатки использования прерываний, 
- 
страничная и сегментная организация, 
- 
различные способы экономии памяти 
- 
различия между механизмами, используемыми для взаимодействия с устройствами компьютера, 
- 
преимущества и недостатки прямого доступа к памяти, 
- 
требования к восстановлению после сбоев. 
Основными темами этого раздела являются:
- 
Основы операционных систем. 
- 
Основные функции операционных систем. 
- 
Управление памятью. 
6 Раздел «Основы технологии программирования»
знать/понимать:
- 
назначение и состав сред программирования; 
- 
роль инструментальных средств в процессе разработки программного обеспечения; 
- 
свойства проектирования «хорошего» программного обеспечения; 
- 
отличия между различными типами и уровнями тестирования (тестирование модулей, интеграционное тестирование, системное тестирование) программных продуктов; 
уметь:
- 
выбрать и обосновать набор инструментальных средств для поддержки разработки программного обеспечения; 
- 
использовать инструментальные средства при разработке программного продукта; разработать программу в виде готового программного продукта; 
- 
использовать при решении практических задач вышеназванные знания и умения. 
Основными темами этого раздела являются:
- 
Программные средства и окружения. 
- 
Проверка соответствия программного обеспечения. 
7. Раздел «Методы вычислений и моделирование»
знать/понимать:
- 
понятия ошибки, устойчивости, машинной точности и погрешности приближенных вычислений; 
- 
источники погрешности в приближенных вычислениях; 
- 
основные алгоритмы решения задач вычислительной математики: вычисление значения и корней функции; вычисление периметра, площади и объема, вычисление точки пересечения двух отрезков и др.; 
- 
понятия модели и моделирования, основные типы моделей; 
- 
компоненты компьютерной модели и способы их описания: входные и выходные переменные, переменные состояния, функции перехода и выхода, функция продвижения времени; 
- 
основные этапы и особенности построения и использования компьютерных моделей; 
уметь:
- 
вычислять оценку погрешности приближенных вычислений; 
- 
использовать при решении задач основные методы вычислительной математики; 
- 
формализовывать объекты моделирования; 
- 
разрабатывать компьютерные модели простейших объектов; 
- 
использовать при решении практических задач компьютерные модели в виде «черного ящика»; 
Основными темами этого раздела являются:
- 
Основы вычислительной математики. 
- 
Введение в моделирование. 
8 Раздел «Компьютерные сетевые технологии» в информатике.
знать/понимать:
- 
иерархическую многоуровневую структуру сетевых архитектур; 
- 
наиболее важные сетевые стандарты; 
- 
роли и ответственности клиентов и серверов для различных приложений; 
- 
проблемы управления сетями, возникающие из-за угроз безопасности, включая вирусы, "червей", Троянских коней и атак, направленных на инициирование отказов в обслуживании; 
- 
области применения мобильных компьютеров в настоящее время и в перспективе, их возможности, ограничения и потенциал, 
уметь:
- 
эффективно использовать ряд распространенных сетевых приложений, включая электронную почту, web-браузеры, web-курсы и системы мгновенной передачи сообщений; 
- 
установить простую сеть с двумя клиентами и одним сервером, использующую стандартные средства конфигурации; 
- 
работать с приложениями, использующими мобильные и беспроводные коммуникации; 
- 
использовать при решении практических задач вышеназванные знания и умения, обеспечивающие школьнику работать во время проведения туров олимпиады по информатике в среде разработки решений олимпиадных задач и их автоматического тестирования. 
Основными темами этого раздела являются:
- 
Сети и телекоммуникации. 
- 
Беспроводные сети. 
Индивидуальная карта учащегося
Чтобы проводить самооценку, рекомендуется опираться на критерии оценивания хода олимпиадной подготовки. Десять критериев для участников тренировочных мероприятий по подготовке к Всероссийской олимпиаде школьников и международной олимпиаде по информатике:
- 
Владеть технологией программирования с использованием не менее двух языков программирования, уметь сравнивать их возможности. Для подготовки к IOI - владение языком Си (версии см. на сайте IOI). 
- 
Владеть математическими основами решения алгоритмических задач по темам, обозначенным содержанием программы подготовки к олимпиадам по информатике (не ниже (*) - для подготовки к заключительному этапу ВсОШ, не ниже (**) для подготовки к IOI). 
- 
Свободно вслепую владеть клавиатурным набором. 
- 
Свободно владеть средствами отладки и тестирования программ, знать принципы написания тестов к программам. 
- 
Быть знакомым с операционной системой Линукс. 
- 
Ежедневно самостоятельно решать задачи из коллекции задач ВсОШ/IOI, знать возможности современных систем автоматической проверки решений и уметь ими свободно пользоваться. Вести дневник решений в форме таблицы – год ВсОШ/IOI, номер тура, номер задачи, тема программы подготовки, набранный балл при самостоятельном решении. Стремиться доводить все решения до 100 балльной оценки. 
- 
Обязательно участвовать в международных и российских он-лайн соревнованиях в течение года. 
- 
Участвовать и успешно продвигаться по рейтингу в Codeforces /TopCoder. 
- 
Иметь рекомендованную подборку книг по олимпиадной информатике и математике, получить на сборах уточнения по личной библиотеке книг. Учиться внимательно работать с книгой. 
- 
Знать правила для участия в ВсОШ/ IOI, владеть элементарными навыками разговорной речи и чтения текстов задач на английском языке.