Методические рекомендации по разработке заданий для школьного и муниципального этапов Всероссийской олимпиады школьников по информатике в 2008/2009 учебном году Москва 2008 г
СОДЕРЖАНИЕ: Порядок проведения школьного и муниципального этапов Всероссийской олимпиады школьников по информатикеВСЕРОССИЙСКАЯ ОЛИМПИАДА ШКОЛЬНИКОВ ПО ИНФОРМАТИКЕ
В.М. Кирюхин
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
по разработке заданий для школьного и муниципального этапов Всероссийской олимпиады школьников по информатике
в 2008/2009 учебном году
Москва 2008 г.
ОГЛАВЛЕНИЕ
Введение …………………………………………………………..………..… 3
1. Порядок проведения школьного и муниципального этапов Всероссийской олимпиады школьников по информатике …….…....... 4
2. Общая характеристика задач для школьного и муниципального
этапов ……………….…………………………………………….……… 7
2.1. Критерии отбора олимпиадных задач ……………………….……. 7
2.2. Общая характеристика содержания олимпиадных задач ………... 9
2.3. Порядок разработки оригинальных олимпиадных задач …….…. 12
3. Рекомендации по системе оценивания и проверке решений
участников …………………………...…………………….……....….... 14
Список рекомендуемой литературы ………………………………………. 19
Введение
Настоящие методические рекомендации подготовлены центральной методической комиссией по информатике Центрального оргкомитета Всероссийской олимпиады школьников и направлены на помощь соответствующим методическим комиссиям и жюри в составлении заданий для школьного и муниципального этапов Всероссийской олимпиады школьников по информатике в субъектах Российской Федерации.
Методические материалы содержат рекомендации по порядку проведения олимпиад по информатике, требования к структуре и содержанию олимпиадных задач, рекомендуемые источники информации для подготовки задач, а также рекомендации по оцениванию решений участников олимпиад.
Центральная методическая комиссия по информатике выражает надежду, что представленные методические рекомендации окажутся полезными при проведении школьного и муниципального этапов Всероссийской олимпиады школьников по информатике, и желает успехов организаторам в их проведении. В случае необходимости, дополнительную информацию по представленным методическим материалам можно получить по электронной почте, обратившись по адресу support@rusolymp.ru в центральную методическую комиссию по информатике.
Председатель центральной методической
комиссии по информатике В.М. Кирюхин
1. Порядок проведения школьного и муниципального этапов Всероссийской олимпиады школьников по информатике
При организации и проведении школьного и муниципального этапов Всероссийской олимпиады школьников по информатике необходимо руководствоваться Положением о Всероссийской олимпиаде школьников, утвержденным Приказом Минобрнауки России от 22 октября 2007 г. № 286, а также нормативными документами, регламентирующими проведение Всероссийской олимпиады школьников в 2008-2009 учебном году (все документы представлены на портале Всероссийской олимпиады школьников http://rusolymp.ru в разделе «Нормативные документы»).
Центральная методическая комиссия по информатике рекомендует при проведении школьного и муниципального этапов Всероссийской олимпиады школьников по информатике придерживаться следующего порядка.
1. Олимпиада должна проводиться в два компьютерных тура, длительность каждого из которых не превышает 5-и часов.
2. При проведении компьютерных туров рекомендуется предоставить в распоряжение каждого участника олимпиады персональный компьютер на базе процессора с частотой не ниже 866 МГц и оперативной памятью не менее 256 Мбайт, стандартной клавиатурой US/РУС, мышью и SVGA монитором.
3. Для обеспечения равных условий всем участникам используемые во время соревнований компьютеры должны иметь одинаковые или близкие технические характеристики.
4. При обеспечении каждого участника соревнований необходимым программным обеспечением следует учитывать, что при проведении заключительного этапа Всероссийской олимпиады школьников по информатике допустимыми языками программирования являются C, C++, Pascal, Visual Basic и на рабочем месте каждого участника олимпиады инсталлируется следующее программное обеспечение:
· Microsoft Windows XP Professional EN SP 2
· Far manager;
· Borland Delphi 7.0
· FreePascal 2.2.0
· Microsoft Visual C/C++ 2005
· Microsoft Visual Basic 2005
· MSDN
· Borland Pascal 7.0
· Borland C/C++ 3.1
· MinGW
· Dev C++
5. Рекомендуется в течение двух часов с момента начала тура предоставить возможность каждому участнику олимпиады задать вопросы членам жюри по условиям задач. Вопросы должны задаваться в письменном виде и формулироваться так, чтобы ответ был либо да, либо нет. Ответы жюри на вопросы участников могут быть следующими: да, нет, «без комментариев».
6. Участникам олимпиады категорически запрещается во время туров пользоваться личными компьютерами, калькуляторами, электронными записными книжками, средствами связи (пейджерами, мобильными телефонами и т.п.), принесенными электронными носителями информации (дискетами, CD- и DVD-дисками, модулями флэш-памяти и т.п.), а также учебной литературой и заготовленными личными записями.
7. Участникам олимпиады разрешается использование в решениях задач любых внешних модулей и заголовочных файлов, включенных в стандартную поставку соответствующего компилятора.
8. В решениях задач участникам запрещается:
· использовать инструкции ассемблера в тексте программы;
· использовать расширенную и дополнительную память в программах на Borland Pascal и Borland C/C++;
· создавать каталоги и временные файлы при работе программы;
· осуществлять чтение и запись векторов прерываний;
· любое использование сетевых средств;
· любые другие действия, нарушающие работу проверяющей системы, если такая система используется при проведении олимпиады.
9. Во время тура участники олимпиады имеют право общаться только с представителями жюри и технической службы, а также с находящимися в аудитории дежурными учителями.
10. В случае возникновения во время тура не по вине участника сбоев в работе компьютера или используемого программного обеспечения по решению жюри время, затраченное на восстановление работоспособности компьютера, может быть компенсировано.
2. Общая характеристика задач для школьного и муниципального этапов
Ответственность за подготовку задач для школьного и муниципального этапов Всероссийской олимпиады школьников по информатике несет региональная методическая комиссия по информатике, формируемая органом управления образованием субъекта РФ до начала олимпиады. Рекомендуется на каждом туре соответствующего этапа предлагать участникам олимпиады одни и те же задачи. В зависимости от существующих традиций в регионе можно проводить соревнования по параллелям, и в этом случае должны быть подготовлены комплекты задач для каждой параллели. Количество задач на каждом туре определяется организаторами соревнований и зависит от состава участников. Рекомендуемое количество задач – три. Задачи должны быть такой сложности, чтобы дать возможность проявить себя как недостаточно подготовленным, так и сильным участникам.
Наилучшим вариантом проведения школьного и муниципального этапа Всероссийской олимпиады школьников по информатике является формирование в субъекте РФ для каждого этапа единого комплекта задач и проведение школьного этапа в единое для всех школ время и муниципального этапа – в одно и то же время для всех муниципальных округов. Это даст возможность более квалифицированно подойти к подготовке условий задач, а также минимизировать затраты на их подготовку и проверку.
2.1. Критерии отбора олимпиадных задач
Для проведения школьного и муниципального этапов Всероссийской олимпиады школьников по информатике могут использоваться как задачи, ранее использованные на других олимпиадах по информатике, так и задачи, разработанные муниципальными и региональными методическими комиссиями. Основными критериями отбора олимпиадных задач должны быть следующие показатели [7]:
· оригинальная формулировка задачи или оригинальная идея ее решения для конкретного состава участников олимпиады;
· в тексте условия задачи не должны встречаться термины и понятия, выходящие за пределы изучаемых в рамках базового учебного плана предметов; в крайних случаях, они должны быть определены или конкретизированы;
· задача должна быть однозначно определена, т.е. в ее формулировке не должно быть неоднозначностей, чтобы участник олимпиады решал именно ту задачу, которую придумали авторы;
· задача не должна требовать для своего решения специальных знаний;
· формулировка задачи должна предполагать наличие этапа формализации при ее решении, т.е. переход от неформальной постановки задачи к формальной;
· задача должна быть разумной сложности и трудоемкости.
При подготовке задач необходимо учитывать, что олимпиадные задачи могут быть трех типов. К задачам первого типа относятся стандартные задачи, решением которых является программа, формирующая по заданному входному файлу выходной файл. Задачи второго типа являются интерактивными. Решением задач этого типа также является программа, однако, в отличие от задач первого типа, вместо чтения исходных данных из входного файла и записи результата в выходной файл эта программа должна обмениваться данными с другой программой, определенной в условии задачи. В задачах третьего типа решением является не программа, как в задачах первого и второго типов, а файлы выходных данных, соответствующие заданным в условии задачи входным файлам.
Разные задачи можно решать с использованием разных языков программирования. Список допустимых языков программирования устанавливается до начала проведения олимпиады с учетом порядка проведения заключительного этапа Всероссийской олимпиады школьников по информатике.
Для задач, в которых решением является программа, в тексте условия указывается максимальное время работы программы на каждом тесте и размер доступной программе памяти. В случае превышение установленных ограничений, тест должен считаться не пройденным. При этом указанные ограничения по памяти включают всю память, используемую программой, в том числе память под код программы, системные нужды и т.д.
Решение должно выдавать одинаковые ответы на одинаковые тесты, вне зависимости от времени запуска и программного окружения. Жюри вправе произвести неограниченное количество запусков программы участника и выбрать наихудший результат по каждому из тестов.
2.2. Общая характеристика содержания олимпиадных задач
При определении содержания задач для школьного и муниципального этапов олимпиады по информатике основными документами, на которые можно ориентироваться в настоящее время, являются стандарт основного и среднего (полного) общего образования по информатике и ИКТ базового и профильного уровней, а также соответствующие примерные программы, приведенные в книгах [7, 9].
Важной особенностью задач, используемых при проведении школьного и муниципального этапов Всероссийской олимпиады школьников по информатике, является ориентация их на проверку развития у школьников теоретического мышления, логики, а также творческих способностей и интуиции. В отличие от задач ЕГЭ или студенческих олимпиад по информатике, которые, помимо всего прочего, направлены еще и на проверку обученности участников, задачи школьных олимпиад должны предоставлять возможность школьникам без специальных знаний решать нестандартные и новые для них задачи. Каждая задача должна позволять участникам сделать для себя небольшое открытие и в полной мере раскрыть имеющийся у них творческий потенциал.
Олимпиадные задачи для школьного и муниципального этапов олимпиады по информатике должны отличаются тематическим разнообразием. Из опыта проведения таких олимпиад в прошлые годы можно выделить наиболее часто встречающиеся разделы информатики, к которым с определенной долей условности можно отнести тематику той или иной олимпиадной задачи. В частности, такими разделами информатики являются:
· комбинаторика;
· сортировка и поиск;
· обработка последовательностей;
· алгоритмы на графах;
· элементы вычислительной геометрии.
· перебор вариантов и методы его сокращения;
· динамическое программирование;
Олимпиадная задача по информатике должна гармонично покрывать не только теоретические разделы курса информатики, но и давать возможность использовать в процессе ее решения знания и умения, характерные для основных этапов решения задач с помощью компьютеров. В частности, такими этапами являются:
· формализация задачи;
· выбор формального метода и разработка алгоритма решения задачи, включая оценку правильности и сложности алгоритма;
· программирование алгоритма и отладка программы;
· тестирование полученной программы.
Опыт проведения олимпиад по информатике в нашей стране показывает, что содержание и основные знания, умения и навыки, востребованные при решении олимпиадных заданий по информатике, строятся на основе сформированного уровня освоения школьниками содержания информатики и информационных технологий основной школы и развития профильного уровня освоения стандарта среднего образования по информатике [9]. Все представленные там дидактические единицы, в той или иной степени, обязательно заложены в олимпиадных задачах конкретного соревнования. Более того, анализ показывает, что все блоки содержания образования профильного уровня стандарта по информатике, а также требуемые компетентностные качества, в полной мере могут проверяться олимпиадными заданиями.
В частности, можно отметить следующие компетентностные качества, которые выявляются в результате участия школьников в олимпиадном движении:
· углубленные знания математических основ информатики;
· развитые умения и навыки в теории алгоритмов;
· устойчивые знания об информационных процессах, типах информации, способах представления и передачи информации;
· устойчивые практические навыки самостоятельного построения компьютерных моделей;
· расширенные представления о составе компьютера, программном принципе работы компьютера и прикладном программном обеспечении;
· беглое владение клавиатурным вводом на русском и английском языке;
· свободное владение компьютерным графическим интерфейсом;
· устойчивые навыки работы с периферийным оборудованием и разнообразными носителями информации;
· свободные навыки работы с компьютером: файловой системой, операционной системой, архивирующими средствами, конвертирующими средствами, программными приложениями, поисковой системой;
· устойчивые навыки работы с общими и персональными ресурсами в локальной компьютерной сети;
· устойчивые навыки работы со специализированным ПО (среды программирования, трансляторы, отладчики);
· свободные навыки работы с инструментальными средствами глобальной компьютерной сети (регистрация, передача данных, защита информации);
· ясное представление о нормах работы с информацией;
· развитое чувство самоконтроля и ответственности;
· навыки самостоятельного планирования заданий;
· общекультурные навыки организации рабочего места;
· общекультурные навыки этикета;
· проявление волевых качеств.
Очевидно, что чем выше уровень олимпиады, тем сложнее предлагаемые задачи и больший уровень знаний и умений требуется от участников. Но совершенно не правильно считать, что эта сложность возрастает только за счет программирования. Программирование здесь, как и в информатике в целом, играет важную, но не определяющую, и названный выше перечень знаний и умений участников в гораздо большей степени охватывает другие многочисленные разделы информатики как науки.
2.3. Порядок разработки оригинальных олимпиадных задач
Разработать олимпиадную задачу по информатике не так просто, особенно если в олимпиаде участвуют достаточно сильные школьники, способные успешно решать задачи для заключительных этапов Всероссийской олимпиады школьников. Хорошая задача – это, как правило, штучный и эксклюзивный продукт, для создания которого необходимо провести даже небольшое исследование.
В общем случае процесс создания олимпиадной задачи включает следующие основные этапы:
1) разработка идеи и подготовка текста условия задачи;
2) разработка различных алгоритмов решения задачи;
3) написание и отладка программ решений на всех разрешенных на олимпиаде языках программирования;
4) подготовка системы оценивания задачи;
5) разработка системы тестов для проверки решения задачи;
6) разработка проверяющей программы для включения ее состав программной проверяющей системы, если таковая используется при проведении олимпиады.
Вполне очевидно, что процесс создания олимпиадной задачи является итерационным. Очень часто случается, что условие задачи может кардинально измениться в зависимости от результатов выполнения последующих этапов.
Что касается разработки задач для школьного и муниципального этапов, то большую помощь в этом могут оказать существующие печатные издания и интернет-ресурсы, содержащие коллекции олимпиадных задач. Причем в качестве основы для разработки олимпиадной задачи могут использоваться даже задачи международных олимпиад. Дело в том, что сложность задач заключительных этапов и международных олимпиад в большинстве случае определяется размерностью задачи. Уменьшив эту размерность, можно получить задачу, которая вполне под силу школьникам, которые только начинают свой путь в олимпиадной информатике.
Если говорить о печатных изданиях, содержащих в достаточном количестве олимпиадные задачи по информатике, то здесь можно порекомендовать книги, перечень которых представлен в списке рекомендуемой литературы. Часть из них, изданных издательством «БИНОМ. Лаборатория знаний» можно заказать на сайте издательства http://metodist.lbz.ru .
Среди интернет-ресурсов полезными при формировании и разработке набора олимпиадных задач являются следующие сайты:
http://info.rusolymp.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://acmp.ru (сайт школы программиста в Ханты-Мансийском автономном округе);
http://olimpic.nsu.ru/nsu/archive/2005/index.shtml (сайт открытой Всесибирской олимпиады по программированию им. И.В. Поттосина).
Можно также воспользоваться сайтами, которые содержат не только коллекции олимпиадных задач, но и обеспечивают возможность проверки решений представленных там задач. К таким сайтам относятся:
http://acm.timus.ru/ (сайт Уральского государственного университета, содержащий большой архив задач с различных соревнований по спортивному программированию);
http://acm.sgu.ru (сайт Саратовского государственного университета, содержащий архив задач с системой онлайн-проверки).
4. Рекомендации по системе оценивания и проверке решений участников
До начала проведения туров жюри школьного или муниципального этапов олимпиады должно иметь в своем распоряжении готовые условия задач, отлаженные варианты программы различных типов решений для каждой предлагаемой задачи, набор тестов и методику проверки и оценки решений участников.
С целью достижения объективности в оценке полученных участниками решений рекомендуется при проверке программ использовать тесты. Тесты должны в максимальной степени способствовать выявлению особенностей алгоритма решения задачи и давать возможность жюри дифференцировать полученные участниками решения по степени их корректности и эффективности.
Наборы тестов должны охватывать все возможные случаи, допустимые условием задачи. В наборе должны присутствовать:
- простые тесты;
- тесты на все частные случаи, позволяющие выявить особенности используемых алгоритмов;
- тесты для проверки решений средней сложности (разные тесты в зависимости от размерности входных переменных);
- максимальные тесты (тесты с использованием максимальных значений входных переменных), позволяющие оценить эффективность предложенных алгоритмов или их работоспособность в экстремальных условиях.
Конечно, об использовании на олимпиадах по информатике полной системы тестов для каждой задачи говорить не приходится, но можно разработать тесты, которые полностью проверяют логику возможных алгоритмов, используемых при ее решении. О том, что это можно успешно делать, говорит тот факт, что на заключительных и федеральных окружных этапах всероссийских олимпиад по информатике претензий к тестам во время олимпиады и после нее практически ни у кого не возникало.
Если в условиях задач приведены рекомендуемые ограничения по времени тестирования для каждого теста, то следует учитывать, что данные ограничения годятся для проведения тестирования на компьютерах с определенными характеристиками по быстродействию и объему оперативной памяти. Поэтому в каждом конкретном случае жюри необходимо использовать только те компьютеры, которые соответствуют заданным в условии задачи ограничениям.
Лучший вариант проверки решений участников олимпиады – использование программных проверяющих систем. Несмотря на то, что такие проверяющие системы значительно упрощают процесс проверки решений, подготовка и настройка их для проведения конкретной олимпиады требует достаточной квалификации и не малых усилий. В частности, для обеспечения функционирования такой системы, помимо наборов тестов, требуется предварительно разработать правила оценивания всех решений и проверяющие программы для каждой задачи.
Основная задача проверяющей программы состоит в сравнении полученного для каждого теста результата участника с правильным ответом и формировании оценки за этот тест. Понятно, что для каждой задачи разрабатывается своя проверяющая программа.
Алгоритмы работы проверяющих программ могут быть самые разнообразные. В простейшем случае, когда решение задачи однозначно определено, проверяющая программа только сравнивает полученный ответ с правильным. Если предполагаются различные варианты правильных ответов, то проверяющая программа либо проверяет все варианты путем сравнения, либо дополнительно преобразует полученный ответ к нужной форме, чтобы осуществить необходимые сравнения. Существуют и более сложные алгоритмы проверки, но в любом случае на выходе проверяющей программы формируется оценка в баллах, которую получает решение участника на соответствующем тесте.
Использование на олимпиадах по информатике программных проверяющих систем требует от участников знаний правил взаимодействия с компонентами такой системой и навыки использования всех предоставляемых ей сервисных функций. Чтобы школьники, которые впервые будут участвовать в олимпиаде, смогли всем этим овладеть, перед началом соревнований необходимо специально провести пробный тур, основная цель которого - ознакомиться со своим рабочим местом и приобрести основные навыки работы с программной средой соревнований. Желательно также перед началом тура раздать каждому участнику памятку, в которой описаны все правила взаимодействия с используемой программной средой.
В настоящее время во многих регионах страны вышеназванные программные проверяющие системы уже используются. В случае их отсутствия можно воспользоваться аналогичными системами, бесплатно распространяемыми в интернете. Однако, как правило, свободно распространяемые программные продукты бесплатно не поддерживаются разработчиками и, более того, разработчики не отвечают за их работоспособность и достоверность получаемых результатов.
В этом плане более надежными и удобными с точки зрения их использования являются промышленные системы. Одной из таких систем является информационная система проведения олимпиад, разработанная компанией «Кирилл и Мефодий». Данная система прошла достаточно эффективную апробацию во время проведения интернет-туров заключительных этапов Всероссийской олимпиады в 2006 и 2007 годах и с успехом использовалась во время проведения федерального окружного этапа в форме интернет-олимпиады в 2008 году. По вопросам условий ее приобретения можно обращаться по электронной почте support@rusolymp.ru .
В качестве примера подготовки тестов и проверяющих программ для проверки решений участников в автоматизированном режиме можно ориентироваться на тесты и проверяющие программы, использованные во время проведения региональных, федеральных окружных и заключительных этапов Всероссийской олимпиады в прошлые годы. Вся эта информация размещена на портале Всероссийской олимпиады школьников http://rusolymp.ru/ в разделах соответствующих олимпиад по информатике.
Говоря о системе оценивания решений участников, центральная методическая комиссия по информатике рекомендует каждую задачу независимо от ее сложности оценивать из 100 баллов. Возможны и другие варианты, например, определять максимальное количество баллов с учетом сложности решения задачи. Однако делать это можно только в том случае, если есть полная уверенность в такой оценке сложности задач.
Количество баллов за тест в случае правильной работы программы на этом тесте назначается жюри, исходя из максимального балла оценки решения задачи, общего количества тестов и особенностей конкретного теста. Во многих случаях правильно работающую на каждом тесте программу целесообразно оценивать одинаковым количеством баллов, хотя не исключено иное, но это определяется выбранной системой оценивания задачи.
Если возможны различные по сложности решения одной и той же задачи, которые определяются размерностью входных данных, то в этом случае целесообразно использовать следующее правило: правильное, но не эффективное решение задачи должно набирать ориентировочно от 30 до 60% баллов. Конкретное количество баллов определяется в зависимости от возможных по сложности вариантов решений.
В заключение хотелось бы отметить, что в настоящих методических рекомендациях не возможно предусмотреть все ситуации, которые могут возникнуть при разработке заданий для школьного и муниципального этапов Всероссийской олимпиады школьников по информатике. Поэтому в случае возникновения каких-либо проблем следует, в первую очередь, обращаться в региональную методическую комиссию по информатике. Если возникающие проблемы требуют вмешательства центральной методической комиссии по информатике, то для этого можно использовать адрес электронной почты support@rusolymp.ru .
Список рекомендуемой литературы
1. Арсак Ж. Программирование игр и головоломок. – М.: Наука, 1990. – 224 с.
2. Бентли Д. Жемчужины творчества программистов: пер. с англ. – М.: Радио и связь, 1990. – 224 с.
3. Брудно А.Л., Каплан Л.И. Московские олимпиады по программированию/ Под ред. акад. Б.Н. Наумова.- 2-е изд., доп. и пераб. – М.: Наука, гл. ред. физ.-мат. лит., 1990. – 208 с.
4. Долинский М.С. Алгоритмизация и программирование на Turbo Pascal: от простых до олимпиадных задач: Учебное пособие. – СПб.: Питер Принт, 2004. – 240 с.
5. Задачи по программированию /С.М. Окулов, Т.В. Ашихмина, Н.А. Бушмелева и др.; Под ред. С.М. Окулова. – М.: БИНОМ. Лаборатория знаний, 2006. – 820 с.
6. Кирюхин В.М. Всероссийская олимпиада школьников по информатике. М.: АПК и ППРО, 2005. –212 с.
7. Кирюхин В.М. Информатика. Всероссийские олимпиады. Вып. 1. – М.: Просвещение, 2008. – 220 с. – (Пять колец).
8. Кирюхин В.М., Окулов С. М. Методика решения задач по информатике. Международные олимпиады. – М.: БИНОМ. Лаборатория знаний, 2007. – 600 с.
9. Кирюхин В.М., Цветкова М.С. Всероссийская олимпиада школьников по информатике в 2006 году. – М.: АПК и ППРО, 2006. – 152 с.
10. Меньшиков Ф.В. Олимпиадные задачи по программированию. – СПб.: Питер, 2006. – 315 с.
11. Московские олимпиады по информатике /Под ред. Е.В. Андреевой, В.М. Гурвица и В.А. Матюхина. – М.: МЦНМО, 2006. – 256 с.
12. Окулов С. М. Основы программирования. – М.: БИНОМ. Лаборатория знаний, 2005. – 440 с.
13. Окулов С. М. Программирование в алгоритмах. – М.: БИНОМ. Лаборатория знаний. 2002. – 341 с.
14. Окулов С.М., Пестов А.А., Пестов О.А. Информатика в задачах. – Киров: Изд-во ВГПУ, 1998. - 343 с.
15. Окулов С.М., Пестов А.А. 100 задач по информатике. – Киров: Изд-во ВГПУ, 2000. – 272 с.
16. Пинаев В.Н. Олимпиадные задачи по программированию: Учебное пособие / РГАТА. – Рыбинск, 1997. – 41 с.
17. Уэзерелл Ч. Этюды для программистов. – М.: Мир, 1982. – 288 с.
18. Шень А. Программирование: теоремы и задачи. – М.:МЦНМО, 1995. – 264 с.