3.5. Механизмы абстракции.
3.5.1. Классы и объекты, замыкания *
3.5.2. Процедуры, функции и итераторы как механизмы абстракции *
3.5.3. Механизмы параметризации (ссылки и значения) *
3.5.4. Модули в языках программирования *
3.6. Особенности программирования фундаментальных алгоритмов.
3.6.1. Стратегии решения задач
3.6.2. Роль алгоритмов в процессе решения задач
3.6.3. Стратегии реализации алгоритмов *
3.6.4. Реализация рекурсии *
3.6.5. Стратегии отладки **
4. Средства ИКТ
4.1. Цифровая логика
4.1.1. Системы счисления
4.1.2. Компьютерная арифметика
4.1.3. Логические схемы *
4.2. Представление данных в памяти компьютера
4.2.1. Биты, байты и слова *
4.2.2. Представление числовых данных **
4.2.3. Системы с фиксированной и плавающей точкой **
4.2.4. Представление со знаковым битом и в дополнительном коде **
4.2.5. Представление нечисловых данных (коды символов, графические данные) **
4.2.6. Представление массивов и записей **
4.3. Организация работы компьютера
4.3.1. Принципы фон Неймана
4.3.2. Управляющее устройство: выборка инструкций, декодирование и выполнение *
4.3.3. Набор инструкций и виды инструкций (манипуляция данными, управление, ввод-вывод) *
4.3.4. Форматы инструкций **
4.3.5. Режимы адресации **
4.3.6. Механизм вызовов и возвратов из процедур **
4.3.7. Ввод-вывод и прерывания **
4.4. Устройство памяти компьютера
4.4.1. Организация основной памяти и операции с ней
4.4.2. Иерархия памяти *
4.4.3. Кодирование данных, сжатие данных и целостность **
4.4.4. Кэш-память **
4.5. Взаимодействие и коммуникации
4.5.1. Интерфейс пользователя. Основы ввода-вывода информации. Основы скоростного клавиатурного ввода.
4.5.2. Введение в сетевые технологии
4.5.3. Внешняя память, физическая организация и устройства *
4.5.4. Прямой доступ к памяти **
5. Операционные системы
5.1. Основы операционных систем
5.1.1. Роль и задачи операционных систем
5.1.2. Функционирование типичной операционной системы
5.1.3. Директории: содержимое и структура
5.1.4. Именование, поиск, доступ, резервное копирование *
5.2. Основные функции операционных систем
5.2.1. Абстракции, процессы и ресурсы *
5.2.2. Организация устройств *
5.2.3. Защита, доступ и аутентификация *
5.3. Управление памятью
5.3.1. Обзор физической памяти и аппаратного обеспечения, предназначенного для управления памятью *
5.3.2. Страничная и сегментная организации памяти **
5.3.3. Кэширование **
6. Основы технологии программирования
6.1. Программные средства и окружения
6.1.1. Среды программирования
6.1.2. Инструментальные средства тестирования *
6.2. Проверка соответствия программного обеспечения
6.2.1. Основы тестирования программ
6.2.2. Создание тестового плана и генерация тестов *
6.2.3. Тестирование методом "черного ящика" и "белого ящика" *
6.2.4. Тестирование элементов, интеграционное, системное тестирование и проверка соответствия **
7. Методы вычислений и моделирование
7.1. Основы вычислительной математики
7.1.1. Основные методы вычислительной математики
· вычисление периметра и площади плоских фигур
· вычисление объема плоских фигур *
· вычисление значения и корней функции *
7.1.2. Арифметика с плавающей точкой *
7.1.3. Вычисление функций с шагом. Метод сеток **
7.1.4. Ошибка, устойчивость, сходимость**
7.2. Введение в моделирование
7.2.1. Понятия модели и моделирования
7.2.2. Основные типы моделей
7.2.3. Компоненты компьютерной модели и способы их описания: входные и выходные переменные, переменные состояния, функции перехода и выхода, функция продвижения времени *
7.2.4. Основные этапы и особенности построения компьютерных моделей *
7.2.5. Основные этапы использования компьютерных моделей при решении практических задач *
8. Компьютерные сетевые технологии
8.1. Сети и телекоммуникации.
8.1.1. Сетевые устройства
8.1.2. Среды передачи данных
8.1.3. Использование паролей и механизмов контроля доступа
8.1.4. Использование сетевых ресурсов
8.1.5. Сетевые архитектуры *
8.1.6. Вопросы качества обслуживания: производительность, восстановление после сбоев **
8.2. Беспроводные сети.
8.2.1. Специфические проблемы беспроводных и мобильных компьютеров
8.2.2. Установка программ на мобильные и беспроводные компьютеры *
8.2.3. Беспроводные локальные сети и линии связи *
Олимпиадные задачи для школьного этапа Олимпиады должны отличаться тематическим разнообразием и давать возможность использовать в процессе их решения знания и умения, характерные для основных этапов решения задач с помощью компьютеров. В частности, такими этапами являются:
- формализация задачи;
- выбор формального метода и разработка алгоритма решения задачи, включая оценку правильности и сложности алгоритма;
- программирование алгоритма и отладка программы;
- тестирование полученной программы.
Очевидно, что чем выше уровень Олимпиады, тем сложнее предлагаемые задачи и больший уровень знаний и умений требуется от участников. Но совершенно не правильно считать, что эта сложность возрастает только за счет программирования. Программирование здесь, как и в информатике в целом, играет важную, но не определяющую роль, и названный выше перечень знаний и умений участников в гораздо большей степени охватывает другие разделы информатики как науки.
При разработке задач для школьного этапа большую помощь могут оказать существующие печатные издания и имеющиеся в свободном доступе интернет-ресурсы, содержащие коллекции олимпиадных задач разного уровня сложности. Причем в качестве основы для разработки олимпиадной задачи могут использоваться даже задачи международных олимпиад. Дело в том, что сложность задач заключительных этапов и международных олимпиад в большинстве случае определяется размерностью задачи. Уменьшив эту размерность, можно получить задачу, которая вполне под силу школьникам, которые только начинают свой путь в олимпиадной информатике.
Если говорить о печатных изданиях, содержащих в достаточном количестве олимпиадные задачи по информатике, то здесь можно порекомендовать книги, перечень которых представлен в списке рекомендуемой литературы. Среди них можно выделить книги издательства «Просвещение» (http://prosv.ru/), непосредственно посвященные всероссийской олимпиаде школьников по информатике [15-18] и книги, изданные издательством «БИНОМ. Лаборатория знаний» в рамках библиотечки олимпиадной информатики [6, 9, 11, 12, 21, 26-30, 33, 36] (http://metodist.lbz.ru).
Среди интернет-ресурсов полезными при разработке олимпиадных задач для школьного и муниципального этапа являются следующие сайты:
http://algolist.manual.ru/olimp (сайт «Олимпиадные задачи по программированию»);
http://www.olympiads.ru/moscow (сайт московских олимпиад по информатике);
http://neerc.ifmo.ru/school (сайт «Олимпиады по информатике. Санкт-Петербург, Россия»);
http://contest.ur.ru (сайт Уральских олимпиад по информатике);
http://www.olympiads.ru (сайт по олимпиадной информатике);
http://www.olympiads.nnov.ru (сайт «Олимпиадная информатика в Нижнем Новгороде»);
http://acmp.ru или http://acm.dvpion.ru (сайт «Школа программиста» для школьников Красноярского края);
http://acmu.ru (сайт «Олимпиады по информатике для школьников Ханты-Мансийского автономного округа»);
http://olimpic.nsu.ru/nsu/archive/2005/index.shtml (сайт открытой Всесибирской олимпиады по программированию им. И.В. Поттосина);
http://imcs.dvgu.ru/works/school.html (сайт школьных олимпиад, проводимых в Приморском крае);
http://imcs.dvgu.ru/ru/event/jpa/2010/ai.html (сайт ДВГУ для проведения соревнований по игровому ИИ для школьников);
http://olymp.karelia.ru/pract.htm (сайт школьных олимпиад Республики Карелия);
http://school.sgu.ru (сайт по алгоритмизации и программированию Саратовского государственного университета);
http://www.olympiads.ru/moscow/2009/79/archive/index.shtml (сайт с задачами московской олимпиады школьников по программированию для 7-9 классов).
Можно также воспользоваться сайтами, которые содержат не только коллекции олимпиадных задач, но и обеспечивают возможность проверки решений представленных там задач. К таким сайтам относятся:
http://acm.timus.ru/ (сайт Уральского государственного университета, содержащий большой архив задач с различных соревнований по спортивному программированию);
http://informatics.mccme.ru (сайт дистанционной подготовки по информатике Московского института открытого образования и МЦНМО);
http://imcs.dvgu.ru/cats (сайт ДВГУ, содержащий архив задач с системой онлайн-проверки);
http://acm.sgu.ru (сайт Саратовского государственного университета, содержащий архив задач с системой онлайн-проверки).
Методику проверки и систему оценивания решений задач школьного этапа Олимпиады предоставляют организаторам и жюри школьная предметно-методическая комиссия. В случае автоматизированной проверки решений задач все необходимые для этого материалы должны поступить в распоряжение жюри как минимум за 7 дней до начала Олимпиады, чтобы члены жюри смогли настроить и проверить работоспособность соответствующего программного обеспечения.
Методика проверки решений каждой олимпиадной задачи зависит от типа этой задачи. Если решением задачи является программа, то оценка правильности ее решения осуществляется путем исполнения программы с входными данными, соответствующими каждому тесту из представленного предметно-методической комиссией школьного этапа комплекта тестов с последующим анализом получаемых в результате этого выходных файлов. Если решением задачи является набор выходных файлов для заданного в условии задачи набора входных файлов, то оцениваются только представленные на проверку выходные файлы.
Если участники Олимпиады должны сдавать на проверку решения в виде исходного текста программы на одном из разрешенных языков программирования, то проверка решений каждого участника должна осуществляться в следующей последовательности:
- компиляция исходного текста программы;
- последовательное исполнение программы с входными данными, соответствующими тестам из набора тестов для данной задачи, подготовленного предметно-методической комиссией по информатике соответствующего этапа;