В этой статье рассказано о практическом опыте подготовки выпускников 9 и 11 классов к итоговой аттестации по теме "Алгоритмизация. Программирование". Подробно проанализировано, на что следует обратить внимание при решении задач на эту тему при подготовке к ОГЭ. Указаны источники материалов.
Подготовка выпускников 9 и 11 класса к решению задач по
программированию
Учитель информатики
144 лицея СанктПетербурга
Богачевой Г.В.
Контрольноизмерительные материалы ЕГЭ и ОГЭ по информатике почти
непрерывно совершенствуются и усложняются, но, если выпускники 11ых классов нашего
лицея этот экзамен сдают более 10 лет, то девятиклассники в СанктПетербурге стали
сдавать ОГЭ по информатике сравнительно недавно. Поэтому последние годы мы с
коллегами особенно внимательно анализируем ошибки, допущенные на весенних
диагностических работах в 9ых классах, и разрабатываем презентации, направленные на
подготовку ребят по самым сложным для них заданиям. Своей методической темой я
выбрала анализ задач на программирование, разработку методики их решения и подготовки
выпускников к экзамену, так как считаю эту тему актуальной. В базовом курсе
информатики темы «Алгоритмизация и программирование» в программах, рассчитанных
на 1 час в неделю (программа Семакина И.Г., Хеннера Е.К, программа Угриновича Н.Д), в
1011 классах нет. Знания, полученные в основной школе, к моменту выпуска частично
теряются. Именно поэтому задания на анализ предложенных программ, на
программирование обязательно должны быть включены во все занятия, направленные на
повторение, обобщение и подготовку к экзаменам. Актуально повторение и при подготовке
ребят 9го класса (например, по программе Босовой Л.Л. эта тема изучается в 8ом
классе).
Работу над темой я начала с обработки источников, среди которых были сборники
заданий, в составлении которых участвовали специалисты Федерального института
педагогических измерений и популярные сайты, на которых публикуются материалы по
подготовке выпускников, а также материалы ЕГЭ и ОГЭ прошлых лет и демонстрационные
версии ЕГЭ и ОГЭ. После анализа большого количества заданий можно сделать вывод, что
ребят надо научить не только разрабатывать алгоритмы, но и читать и понимать готовые
программы.
Задания в ОГЭ на программирование – это задания №6 (умение исполнить алгоритм для
конкретного исполнителя с фиксированным набором команд), №8 (умение исполнить
линейный алгоритм, записанный на алгоритмическом языке), №9 (умение исполнить
простейший циклический алгоритм, записанный на алгоритмическом языке), №10 (умение
исполнить циклический алгоритм обработки массива чисел,
записанный на
алгоритмическом языке), №14 (умение записать простой линейный алгоритм для
формального исполнителя), а также №20 (умение написать короткий алгоритм в среде
формального исполнителя (вариант задания 20.1) или на языке программирования (вариант
задания 20.2). В ОГЭ больше всего заданий именно на эту тему. В этой статье я хочу
рассмотреть подготовку к заданиям №№ 8, 9, 10 и 20_2, то есть работу на
алгоритмическом языке, хотя на моём сайте (nsportal.ru/boggal) выложены презентации и
по другим вопросам.
При подготовке к решению заданий №8 и 9 необходимо понимать, что такое переменная,
знать основные операторы изучаемого языка (в нашем лицее – это Паскаль), а также знать и
уметь трассировать программу – на экзамене все ребята волнуются, не всегда сразу
понимают, что эта программа делает, а в процессе трассировки приходит понимание, какие
действия повторяются, что будет в результате выполнения этой программы.При подготовке к решению задания №20_2 обращаем внимание детей на то, что:
числа не надо хранить в программе, к тому же мы не знаем, сколько чисел будет
введено, поэтому отказываемся от массивов (в классическом Паскале нет
динамических массивов в описании необходимо указать число элементов
массива).
Если в задании указано, что программа получает на вход количество чисел в
последовательности, а затем сами числа, то вначале вводим в переменную
количество чисел, а затем организуем цикл используем или цикл с параметром
(for), или цикл с предусловием (while). Если количество чисел не задано, а есть
признак окончания ввода, используем цикл с постусловием repeat (сначала
вводим число, затем его анализируем).
Необходимо знать операции mod – остаток от деления (if a mod 10 = 8) и div –
деление нацело (x := x div 10), понимать, что условие (a mod 10 = 8) проверяет
последнюю цифру в числе (10 с.с.), а условие (a mod 6 = 0) проверяет кратность
переменной a на 6 (остаток от деления на 6 равен 0). Оператор x := x div 10
меняет значение переменной x, отбрасывая цифру младшего разряда ((10 с.с.).
Знать, как считается количество (b := b +1 – в цикле к значению переменной
прибавляем по 1) и сумма ( s := s + a – в цикле к старому значению переменной
прибавляем очередное число и сохраняем в той же переменной).
Уметь использовать сложные условия (if (a mod 10 =2) and (a mod 6 =0)), знать
логические операции not, and, or; помнить, что простые условия в логическом
выражении берутся в круглые скобки; знать приоритет логических операций.
Можно использовать вложенные условные операторы, при этом надо помнить,
что внутренний условный оператор целиком вкладывается во внешний (как
матрёшка).
Уметь сравнивать и находить в последовательности наибольшее или наименьшее
число.
Избегаем подсказок и пояснений в операторах вывода. Мы требуем их
применение на уроках, но на экзамене их использование не обязательно.
При подготовке к решению заданий №20_2 и №10 необходимо повторить и научить легко
узнавать типовые алгоритмы – поиск максимального элемента массива или
последовательности чисел, поиск минимального элемента, определение суммы чисел,
соответствующих определённым критериям,
определение количества чисел,
соответствующих условию. Дети должны понимать, чем отличаются индекс элемента
массива и значение элемента массива, обращать внимание, поиск идёт во всем массиве или
только среди части элементов, фиксировать, что именно выводится на экран.
Задания в ЕГЭ на программирование – это №6 (формальное исполнение алгоритма,
записанного на естественном языке или умение создавать линейный алгоритм для
формального исполнителя с ограниченным набором команд), №8 (знание основных
конструкций языка программирования, понятия переменной, оператора присваивания),
№11 (умение исполнить рекурсивный алгоритм), №14 (умение исполнить алгоритм для
конкретного исполнителя с фиксированным набором команд), №19 (работа с массивами
(заполнение, считывание, поиск, сортировка, массовые операции и др.), №20 (анализ
алгоритма, содержащего цикл и ветвление), №21 (умение анализировать программу,
использующую процедуры и функции), №22 (умение анализировать результат исполнения
алгоритма), №24 (умение прочесть фрагмент программы на языке программирования и
исправить допущенные ошибки), №25 (умение написать короткую (10–15строк) простую
программу на языке программирования), №27 (умение создавать собственные программы
(30–50 строк) для решения задач средней сложности)Здесь сложнее написать, что необходимо учесть при подготовке к экзамену. Ученики
должны научиться использовать в практике построения алгоритмов основные управляющие
структуры: следование, ветвление, цикл; уметь разбивать задачу на подзадачи, применять
метод последовательной детализации алгоритма. Разумеется, необходимо знать основные
операторы языка программирования, типы переменных, что такое рекурсия, уметь
использовать подпрограммы – процедуры и функции, уметь работать с массивами. Надо
помнить, что для решения задачи №27 требуется написать эффективную по времени и по
памяти программу.
Материалы для подготовки я беру с сайта Константина Юрьевича Полякова
(kpolyakov.narod.ru), различных сайтов для учителей информатики ( videouroki.net, metod
kopilka.ru, uchportal.ru, zavuch.info, nsportal.ru, znanio.ru), с демонстрационных версий
прошлых лет, c открытого банка заданий ФИПИ. Но большинство материалов по
подготовке к экзаменам предназначено для индивидуального использования, мне же
хотелось сделать презентации, которую я могла бы использовать для групповых занятий
(через проектор) во время уроков, на занятиях по подготовке к ЕГЭ и ОГЭ,во время
предэкзаменационных консультаций для повторения пройденного материала. Такие
презентации я публикую на своём сайте nsportal.ru/boggal, а также на своей странице сайта
лицея
lyceum144.ru/lyceum/strukturalitseya/metodkabinet/kafedramif/bogachevagalina
vladimirovna/.
В процессе работы над темой я веду блог по адресу
http://galinabogacheva.livejournal.com. Работа с блогом ведётся следующим образом – я
публикую экзаменационные материалы несколько раз в месяц. Ребята читают эти
материалы дома, на занятия приходят с вопросами. Так как все задачи из блога были
собраны в презентации, то достаточно оперативно можно найти нужную задачу и объяснить
её ещё раз. Решаются аналогичные задачи. На предэкзаменационной консультации ещё раз
просматриваем все задачи, чтобы вспомнить весь пройденный материал. Апробация такой
формы работы показала её эффективность – за последние годы все выпускники нашего
лицея, выбравшие информатику, сдали ЕГЭ с результатом лучше, чем средний балл по
СанктПетербургу.