МЕТОДИКА
ОБУЧЕНИЯ РЕШЕНИЮ ЗАДАЧ ЕГЭ ПО ИНФОРМАТИКЕ И ИКТ ТИПА C1(24)
Смирнов
Александр Петрович,
Кандидат физико-математических
наук, Астраханский государственный университет, г. Астрахань
E-mail: apsmir@yandex.ru,
Рыженко
Елена Владимировна,
Магистрант
кафедры прикладной математики и информатики, Астраханский государственный
университет, г. Астрахань
E-mail: elenarizenko@gmail.com
АННОТАЦИЯ
В статье описывается методический подход к
обучению решения задач ЕГЭ по информатике и ИКТ типа C1(24)
способствующий преодолению проблем различного характера, возникающих при
изучении раздела «Программирование». Представлена разобранная задача C1(24)
за 2015 год(проект), описан факультативный курс по обучению решению таких задач
в 10-11 классах.
Ключевые слова: обучение;
ЕГЭ, методический подход; программирование, трассировочные таблицы, поиск
семантических ошибок.
METHODS
of TEACHING the SOLUTION of exam ination tasks C1(24) ON INFORMATICS
Alexander P. Smirnov,
Candidate of physico-mathematical Sciences, Astrakhan
State University, Astrakhan
E-mail:mosmir1@gmail.com,
Helena V.
Ryzhenko
The student
of magistrates of Applied Mathematics and Informatics,
Astrakhan State University, Astrakhan
E-mail: elenarizenko@gmail.com
ABSTRACT
This article describes a methodological point
of view teaching the solution of examination tasks in informatics. It is
especially noted tasks number C1(24). This method promotes overcoming different
difficulties in learning in programming. It is given the complete decision of
the tack C1(24) from project of 2015. It is described an elective course of
teaching same tasks in 10-11 forms.
Keywords: teaching; EGE,
methodical approach; programming, trace tables, search semantic errors.
С 2004 года в системе ЕГЭ
присутствует экзамен по информатике в качестве необязательного предмета по
выбору. Перед учителем и учеником стоит цель не просто сдать ЕГЭ по
информатике, а сделать это как можно более качественно, получив при этом как
можно более высокие баллы. Выполнение этой задачи невозможно без решения
заданий из 2 части КИМ.
При этом, следует отметить, что по
данным сайта Официального информационного портала Единого Государственного
Экзамена [1,2]. доля участников ЕГЭ по информатике, не приступавших к
выполнению заданий с развёрнутым ответом (часть С) в 2011 году - 22,1%, в 2012
году - 19,9 %, в 2013 году - 26,1 % от всех учащихся выбравших предмет. Это
обусловлено тем, что ГОС по информатике и ИКТ для базового уровня изучения не
может обеспечить подготовку выпускников школы к сдаче ЕГЭ. Некоторые темы,
которые присутствуют в кодификаторе ЕГЭ, либо не включены в него, либо
недостаточно представлены. К числу таких тем относятся в частности такие темы,
как: системы счисления, логика, алгоритмизация, программирование на языках
высокого уровня [3].
Выше приведенная ситуация говорит о
недостаточной подготовке выпускников и требует разработки эффективных методик
обучения решению задач части С, и в частности заданий типа C1(24).
Задание C1(24)
Части 3 ЕГЭ по информатике относится к заданиям повышенного уровня сложности. К
проверяемым элементам содержания относятся умение читать фрагменты программ на
языках программирования, находить и исправлять допущенные в нём ошибки.
И хотя все виды ошибок предсказать
невозможно, анализ заданий типа C1(24) за 2004-2015 г. г. позволяет выделить
несколько типичных ошибок, которые необходимо обнаружить и исправить при
выполнении этих заданий:
1) ошибки,
связанные с вводом неверных исходных данных (вводятся не те данные, которые
указаны в условии); необходимо чётко следить за тем, что дано в условии задачи;
a) ввод
промежуточной переменной в задаче, где требуется поменять местами две
переменные, используя промежуточную переменную;
b)
отсутствует ввод переменной N (количества элементов массива) перед вводом
массива из N элементов и т. д;
2) ошибки,
связанные с выводом неверных итоговых данных (выводится не то, что требовалось
найти по заданию);
3) ошибки
в логике программы:
a) неверно
вложенные условные операторы;
b) неверно
сформулированные условия в условных операторах, не соответствующие поставленной
задаче;
c) неверное
условие продолжения цикла;
d) использование
неверно выбранных стандартных функций для достижения необходимого результата;
e) не
учитываются частные случаи решения задачи, краевые точки областей и т. д:
f) частично
решённые задачи;
g) программы,
решающие немного другую задачу и т.д.
Разберём задачу 2015 года: На
обработку поступает последовательность из четырёх неотрицательных целых чисел
(некоторые числа могут быть одинаковыми). Нужно написать программу, которая
выводит на экран количество нечётных чисел в исходной последовательности и
максимальное нечётное число. Если нечётных чисел нет, требуется на экран
вывести «NO». Известно, что вводимые числа не превышают 1000. Программист
написал программу неправильно. Ниже эта программа для Вашего удобства приведена
на пяти языках программирования (рассмотрим Паскаль).
Паскаль
|
Пояснения
|
const n = 4;
|
Постоянная n=4
|
var i, x: integer;
var maximum, count: integer;
|
Объявление переменных
I, x – целые maximum, count целые
|
begin
|
Начало
|
count := 0;
|
Первичное значение count=0
|
maximum := 999;
|
Первичное значение maximum=999
|
for i := 1 to n do
begin
|
Для от 1 до n (4) выполняй (заголовок
цикла)
Начало тела цикла
|
read(x);
|
Ввод x
|
if x mod 2 <> 0 then
begin
|
Если остаток от деления x на 2 не равен 0 (т.е. x– нечётное) делай
Начало действий
|
count := count + 1;
|
Увеличить значение count на 1
|
if x > maximum then
|
Если x> maximum (т. е. 999) тогда
делай
|
maximum := i
|
Значению переменной maximum присвоить
значение переменной i
|
end
|
Конец действий
|
end;
|
Конец тела цикла
|
if count > 0 then
begin
|
Если значение переменной count >0 то
делай
Начало действий
|
writeln(count);
|
Вывести значение переменной count
|
writeln(maximum)
|
Выведи значение переменной maximum
|
end
|
Коней действий
|
else
|
Иначе (т. е. если значение переменной
count <или =0) делай
|
writeln('NO')
|
Выведи слово NO
|
end.
|
Конец программы
|
Последовательно
выполните следующее:
1. Напишите,
что выведет эта программа при вводе последовательности: 2 9 4 3. Для
этого составим трассировочную таблицу программы.
Таблица 1
№
шага
|
действия
|
n
|
count
|
maximum
|
i
|
Условие цикла i<=n
|
x
|
Условие
x mod 2 <> 0
|
Условие
x >maximum
|
Условие
count > 0
|
Вывод
|
1
|
4
|
|
|
|
|
|
|
|
|
|
2
|
|
0
|
|
|
|
|
|
|
|
|
3
|
|
|
999
|
|
|
|
|
|
|
|
4
|
|
|
|
1
|
1<=4
да
|
|
|
|
|
|
5
|
|
|
|
|
|
2
|
|
|
|
|
6
|
|
|
|
|
|
|
2
mod 2 <> 0 нет
|
-
|
|
|
7
|
|
|
|
2
|
|
|
|
|
|
|
8
|
|
|
|
|
2<=4
да
|
|
|
|
|
|
9
|
|
|
|
|
|
9
|
|
|
|
|
10
|
|
|
|
|
|
|
9
mod 2 <> 0 да
|
|
|
|
11
|
|
1
|
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
|
9
>
999 нет
|
|
|
13
|
|
|
|
3
|
|
|
|
|
|
|
14
|
|
|
|
|
3<=4
да
|
|
|
|
|
|
15
|
|
|
|
|
|
4
|
|
|
|
|
16
|
|
|
|
|
|
|
4
mod 2 <> 0 нет
|
-
|
|
|
17
|
|
|
|
4
|
|
|
|
|
|
|
18
|
|
|
|
|
4<=4
да
|
|
|
|
|
|
19
|
|
|
|
|
|
3
|
|
|
|
|
20
|
|
|
|
|
|
|
3
mod 2 <> 0 да
|
|
|
|
21
|
|
2
|
|
|
|
|
|
|
|
|
22
|
|
|
|
5
|
|
|
|
3>
999 нет
|
|
|
23
|
|
|
|
|
5<=4
нет
|
|
|
|
|
|
24
|
|
|
|
|
|
|
|
|
2>0
да
|
|
25
|
|
|
|
|
|
|
|
|
|
Count=2
Maximum=999
|
Из таблицы видно, что для
последовательности 2 9 4 3 будут выведены числа 2 и 999.
2.
Приведите пример такой последовательности,
содержащей хотя бы одно нечётное число, что, несмотря на ошибки, программа
печатает правильный ответ.
Анализируя текст программы, а именно
фрагмент if x
> maximum then maximum
:= I можно заметить,
что изменение значения переменной maximum
возможно лишь в случае, когда x>999.
По условию вводимые числа не превышают 1000. Соответственно, программа будет
работать верно, если в последовательности есть 999. Выведенное количество
нечётных чисел будет правильным в любом случае. Следовательно, примером
последовательности, содержащей хотя бы одно нечётное число, при которой,
несмотря на ошибки, программа печатает правильный ответ может служить
последовательность 1 3 5 999.
3.
Найдите все ошибки в этой программе (их
может быть одна или несколько). Известно, что каждая ошибка затрагивает только
одну строку и может быть исправлена без изменения других строк. Для каждой
ошибки:
1) выпишите строку, в которой сделана
ошибка;
2) укажите, как исправить ошибку,
т.е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их
исправления для одного языка программирования. Обратите внимание, что требуется
найти ошибки в имеющейся программе, а не написать свою, возможно, использующую
другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в
которой находится ошибка.
Так как по условию задачи необходимо
чтобы программа находила максимальное нечётное значение среди вводимой
последовательности чисел, то логично первоначальное значение переменной maximum
задать 0 или 1 (как наименьшее из возможных нечётных чисел).
Следовательно, первая ошибка: неверная
инициализация maximum.
Строка с ошибкой: maximum := 999;
Верное исправление: maximum := 0;
или maximum:=1;
Так как maximum
должен определяться среди последовательности вводимых чисел, т. е. среди
значений переменной x. А в программе
присваивается значение переменной i
(счётчика цикла), то вторая ошибка: неверное присваивание при вычислении
максимума.
Строка с ошибкой: maximum = i;
Верное исправление: maximum = x;
После такого подробного разбора
задачи учителем, учащимся предлагается самостоятельно решить аналогичные,
типовые задачи. Если необходимо, при затруднениях, возможна консультативная
помощь учителя отдельным учащимся.
Работа по обучению решению задач типа
C1(24)
должна начинаться с пропедевтического этапа ещё в 9 классе. Именно в 9 классе,
согласно УМК «Информатика и ИКТ» для основной школы (8–9 классы) Л.Л. Босовой и
А.Ю. Босовой рассматриваются соответствующие разделы «Алгоритмизация» и
«Программирование». Важно добиваться от учащихся не формального усвоения
программного материала, но его глубокого осознанного понимания.
В плане практически каждого урока
может быть предусмотрено время (от 5 до 15 минут) на тестирование, объем таких
мини-тестов – 5–10 вопросов. Желательно при закреплении материала на уроке
давать контрольные вопросы и задания в стандартном формате, соответствующем
ЕГЭ. Важно систематически проводить тренировочные тесты по подготовки к ЕГЭ,
выбирая материал уже пройденный учащимися.
Например, задания на поиск ошибок в
записи операторов:
В
каком из условных операторов допущена синтаксическая ошибка?
a)
if B = 0 then Writeln ('Деление на нуль
невозможно.');
b)
if a > b then max := a
else max := b;
c)
if
(a>b) and (b>0) then c:=a+b;
d)
If
a < b then min: = a; else min: = b.
Особое внимание при изучении раздела «Программирование»
в 9 классе предполагается уделить формированию и развитию навыку построения
трассировочных таблиц выполнения программ.
Для преодоления временного разрыва
при изучении программирования между 9 и 11 классами было предложено
организовать факультатив по решению задач ЕГЭ по информатике и ИКТ типа С1(24).
Цели курса:
•
научить учащихся использовать язык программирования для решения различных
алгоритмических задач повышенного уровня.
Задачи курса:
•
Развитие познавательных интересов, интеллектуальных и творческих способностей в
процессе решения задач на компьютере и самостоятельного приобретения новых
знаний.
•
Воспитание духа сотрудничества в процессе совместного выполнения задач.
•
Использовать приобретенные знания и умения для решения практических задач в
новой ситуации:
- решать сложные логические
высказывания;
- анализировать текст программы с точки
зрения соответствия записанного алгоритма поставленной задаче и изменять его в
соответствии с заданием;
- реализовывать сложный алгоритм с использованием
современных систем программирования.
Курс рассчитан на 10 часов и включает
в себя следующие темы:
·
Повторение основных элементов языка
программирования Паскаль.
·
Линейная программа. Трассировочные
таблицы.
·
Оператор условного перехода.
·
Логические связки AND, NOT, OR
·
Циклические процессы.
·
Целочисленная арифметика.
· Разбор
задач. Тестирование.
На
занятиях по факультативу необходимо использовать задания, напрямую связанные с
задачами типа C1(24) ЕГЭ по информатике. Например, поиск строк, содержащих
ошибки, запись логического выражения, соответствующего попаданию точки
указанной области и т.п.
Предполагается, что данный
факультатив будет проводиться по усмотрению учителя либо во II полугодии 10
класса, либо в I полугодии 11 класса. Педагог может сам определять
целесообразность выбора времени проведения факультатива с целью повторения и
углубления знаний, умений и навыков по программированию.
Предложенные методические
рекомендации позволяют развить у учащихся умения анализировать программы, находить
в них синтактические и семантические ошибки и способы их исправления, то есть,
обучить учащихся решению задач типа С1(24).
Список литературы
1.
Официальный информационный портал Единого
Государственного Экзамена. Доля (в %) участников ЕГЭ, не приступавших к
выполнению заданий с развернутым ответом (часть С), в 2012 г. [Электронный
ресурс]. –URL:http://ege.edu.ru/common/upload/docs/ege3_satistics_kol2012_not_c.xls
(29.11.2013).
2.
Официальный информационный портал Единого
Государственного Экзамена. Доля (в %) участников ЕГЭ, не приступавших к
выполнению заданий с развернутым ответом (часть С), в 2013 г. [Электронный
ресурс]. –URL:http://ege.edu.ru/common/upload/docs/app8.xls (29.11.2013).
3.
Семакин И.Г. Программа курса «Информатика
и ИКТ» (базовый уровень) для 10-11 классов, рассчитанная на учебный план 140
часов. [Электронный ресурс]. -URL:http://metodist.lbz.ru/authors/informatika/2/files/140.doc.
(29.11.2013).
4.
Ключева Е. Е. Решение задач типа C1 (9 класс).
[Электронный ресурс]. -URL:http://www.basicschool.ru/index.php?page=lessons_info_1&uref=http://yandex.ru/clck/jsredir//
(11.10.2013).
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.