Елютина Л.Н., учитель математики и информатики и ИКТ
МОУ Стрелицкая СОШ Семилукского района Воронежской области
Раздел «Программирование» – один из наиболее важных в информатике. Программирование развивает алгоритмическое мышление, логику, тренирует память, внимательность, повышает творческую активность, формирует умение применять полученные знания при решении задач различной направленности. Без прочных навыков, полученных в этом разделе, нельзя качественно подготовить учащихся к итоговой аттестации, в том числе и в форме ЕГЭ, поступлению в вузы и участию в олимпиадах различного уровня.
По результатам ЕГЭ именно в задачах на программирование учащиеся допускают наибольшее количество ошибок. Приведу результаты ЕГЭ по Воронежской области за 2008-09 уч. год по информатике. Наибольшие затруднения учащиеся испытывали при выполнении заданий: А18 – 28% (выполнение алгоритма для конкретного исполнителя), В8 – 53% (исполнение алгоритма, записанного на естественном языке), С2 – 42% (умение написать короткую простую программу), С4 – 16% (Умение создавать программы средней сложности).
В любом случае уметь решать типовые задачи по программированию должны все ученики, не зависимо от того нравится ему программировать или нет. В обучении программированию – решение сложных задач начинается с основ. И от того, как учащийся усвоит азы, зависит его дальнейшее успешное обучение.
При изучении основ языка программирования Турбо Паскаль я столкнулась с проблемой: нередко дети не понимают как работают операторы, а значит им сложнее решить ту или иную задачу. А, учитывая отсутствие навыка набора латиницей и соответственно низкую скорость набора написанных ребятами программ, получается, что ученики со средними способностями даже не пытаются разобраться, что именно делают операторы в памяти компьютера, как происходит их работа с переменными. Работа сводится к «Получилось?» – «Ага! Он что-то пишет!», а правильность выполнения идет как «сверка ответов». Чтобы научить всех учащихся основам языка программирования я выделила несколько уровней понимания:
° 1 уровень – «сделай» - умение выполнять готовый алгоритм;
° 2 уровень – «перефразируй» - умение понять суть фрагмента программы и рассказать на естественном языке или с помощью блок-схемы;
° 3 уровень – «вылови ошибку» - умение найти синтаксическую ошибку и исправить ее;
° 4 уровень – умение интерпретировать результат, оттестировать программу.
В своей практической работе на этапе теоретического изучения и закрепления материала я уделяю особое внимание первым трем уровням. Для формирования навыка составления программ на языке программирования я использую различные типы заданий.
Ряд заданий, которые развивают умение выполнять готовый алгоритм и умение понять суть фрагмента программы, я почерпнула в сборнике «Задачи по информатике» П.Н.Карасева. Из них несколько задач категории «устного счета» мне показались особенно толковыми. Во-первых, эти задачи не привязаны к какому-либо условию – отвлеченные, а чаще даже бессмысленные – тем проще было привлечь учащихся к их решению – «что же в результате получится?», т.е. я ставила ребят в рамки формального Исполнителя. Во-вторых, последовательность решения таких заданий не привычная: условие → алгоритм → программа, а наоборот, уже дан готовый фрагмент программы и необходимо разобрать его действие.
Я выделила следующие типы заданий (конечно, вначале я делала оговорку, если переменные не описаны, то считать их переменными целого типа.):
- Задание на определение количества выполнения операторов тела цикла
k:=7;
m:=14;
repeat k:=k-1;
n:=m mod 2;
m:=m div 2;
until (m=1) or (k=5); write(m,‘kg’);
|
В данном фрагменте операторы тела цикла выполнятся 2 раза, выход из цикла по условию k=5. |
- Задание на определение значения переменных после выполнения этого фрагмента
x:=3;
for t:=1 to 5 do
begin
if x div 5<>0
then write (x:5)
else begin writeln (‘ net ’); n:=t; end; x:=x-2; end;
|
После выполнения данного фрагмента программы переменные имеют следующие значения: x = -7, t = 5, n = 4. |
- Задание на определение конечного результата - что будет напечатано на экране
x:=3;
for t:=-1 to 2 do
begin
if x mod 2=0
then writeln(‘x=’,x)
else writeln(x,’ mod 2 ¹ 0’);
x:=x+3; end;
write(x,t:4)
|
|
- Задание на построение блок-схемы к заданному фрагменту программы
y:=6;
while y+x<1 do
begin
x:= y+1; y:=y-1;
writeln(x,y);
end;
Sum:=x+y; write(x,y,sum);
|
|
- Задание на нахождение ошибок в тексте фрагмента программы
Вычислить значение функции
Значения параметра а и переменной x, ввести с клавиатуры.
|
|
PROGRAM ZNACENIE FUNCTII;
VAR
A,X,Y : INTEGER;
BEGIN;
WRITE (‘Введите A,X’);
READLN (A , X);
IF X > A
THEN Y = A + SQR (X - A)
ELSE Y = COS (ABS X) + SIN (2X);
WRITELEN(‘Y=’,Y,’X=’, X:5:2,); END
|
После исправления ошибок
PROGRAM ZNACENIE_FUNCTII;
VAR A,X,Y : REAL;
BEGIN
WRITE (‘Введите A,X’);
READLN (A , X);
IF X > A
THEN Y := A +SQRT(X - A)
ELSE Y:=COS(ABS(X))+SIN(2*X);
WRITELN(‘Y=’,Y:10:2,’X=’, X:5:2,); END.
|
И отрабатывала эти задания до автоматизма. Этим я добивалась сразу двух целей: при решении таких примеров ребята не только разбирали и понимали весь механизм языка программирования, но и запоминали операторы без домашней зубрежки.
Таким образом, после решения ряда этих заданий короткие простые программы составляли осмысленно даже слабые ученики.
Литература
1. Карасев П.Н. Задачи по информатике//Учитель-АСТ. – 2001.
|
На: Статья "Учим Паскаль легко"
Статья - наглядный образчик изобретения велосипеда.
Причину вижу в слабом владении предметом и методикой его преподавания.
"дети не понимают как работают операторы"
нарушение логики преподавания
"как работают операторы"
автор не владеет основами предмета: непонимание программного принципа УПРАВЛЕНИЯ исполнителем.
"Чтобы научить всех учащихся основам языка программирования"
Неужели ставится такая цель?!
То, что вы впишите в текстовом поле "Подпись" на странице http://www.openclass.ru/user/***/edit ("звёздочки" обозначают Ваш порядковый номер в ОпенКлассе) - появится именно в этом месте.
На: Статья "Учим Паскаль легко"
На: Статья "Учим Паскаль легко"
Любовь Николаевна! Я не информатик, поэтому, наверное, для меня важнее то, что при решении примеров ребята не только разбирали и понимали весь механизм языка программирования, но и не было домашней зубрежки. И что, пусть даже короткие простые программы, но составляли осмысленно даже слабые ученики. Удачи Вам!
На: Статья "Учим Паскаль легко"
На: Статья "Учим Паскаль легко"
Любовь Николаевна! Не надо зацикливаться на "анонимных" посетителях. Хотелось бы посмотреть критику "в глаза", так что...учитесь и
учите!
Для остановки нет причин. Иду...
На: Статья "Учим Паскаль легко"
Спасибо, Людмила Михайловна, за поддержку.