Программирование, по мнению А.П. Ершова, вторая грамотность. На уроках информатики преподавание основ программирования с использованием любого языка высокого уровня - обязательная составляющая учебного процесса.
Как учить элементам программирования? Этот вопрос каждый учитель решает по-своему. Многие учителя информатики сталкиваются с тем, что некоторые конструкции (конструкция цикла, конструкция ветвления, т.д.) языка программирования представляют трудность для понимания учащихся. Например, тема «Процедуры и функции пользователя» - одна из сложнейших тем в преподавании языка Паскаль и в понимании детей.
Вообще, человеческий мозг устроен так, что он лучше воспринимает информацию, представленную в графическом виде. И поэтому, например, при анализе расчетов, мы строим диаграммы; при структурировании информации – выводим её в виде графов или таблиц и т.д.
Поэтому возникает вопрос: «А нельзя ли знакомить учащихся с основными конструкциями программирования языка Паскаль с использованием графического режима, графический процедур и функций?» Оказывается, можно. Принцип наглядности в преподавании многих предметов, и в частности информатики, является одним из ведущих в обучении. Наглядность способствует развитию у школьников эмоционально – оценочного отношения к приобретаемым знаниям. Принцип наглядности повышают интерес к знаниям, позволяют облегчить процесс их усвоения, поддерживают внимание ребенка.
Конечно, есть в данном приёме и минусы (например, программы, написанные на языке Паскаль, получаются большими, громоздкими). Но принцип наглядности перекрывает все минусы.
Путь воплощения данной идеи сводится к методическим разработкам уроков, УМК по основам программирования с использованием графического режима и графических процедур и функций. Можно для усиления наглядности использовать наглядно-демонстрационные средства (интерактивную доску, проектор). Обязательным условием является введение темы «Графический режим. Графические процедуры и функции» в самом начале изучения языка программирования Паскаль. Так как эта тема – одна из любимых тем учащихся при изучении языка, то и другие темы, на основе данной, они рассматривают с удовольствием, без настороженности.
Мною была разработана серия уроков с использованием данного подхода при изучении основных конструкций языка Паскаль. Приведу пример фрагмента урока по теме «Процедуры и функции пользователя».
Ход урока
1. Повторение.
2. Построение графического изображения.
Демонстрация презентации.
Задача №1. Нарисовать в графическом режиме равносторонний треугольник в центре экрана (640х480). Сторона треугольника равняется 50.
Выводы:
…
Программа будет выглядеть так:
uses graph;
var L, i, j:integer; h:real;
begin
i:=0; initgraph(i,j,'C:\');
L:=50; h:=L*sin(pi/3);
line(320-L div 2,240+round(h/3),320+L div 2,240+round(h/3));
line(320+L div 2,240+round(h/3),320,240-round(h*2/3));
line(320,240-round(h*2/3),320-L div 2,240+round(h/3));
readln; closegraph
end.
Задача №2. Нарисовать три равносторонних треугольника, имеющих общий центр тяжести со сторонами 50 ,60, 70.
…
Заметим, что в программе трижды повторяется один и тот же фрагмент:
h:=L*sin(pi/3);
line(320-L div 2,240+round(h/3),320 +L div 2, 240+round(h/3);
line(320+L div 2,240+round(h/3),320, 240+round(h*2/3);
line(320,240-round(h*2/3),320 -L div 2, 240+round(h/3);
Возникает естественное желание, как и с переменными, дать этому фрагменту имя (например, Treug) и вместо повторений использовать это имя. Такой именованный фрагмент последовательности команд называется подпрограммой или процедурой.
3. Ввод понятия «Процедура».
Определение: Процедура – это часть программы (составной оператор), описывающая некоторый алгоритм, она имеет некоторое имя, к которой можно многократно обращаться из любой точки программы.
Описание процедуры в языке Паскаль очень похоже на описание программы. Только вместо слова program нужно писать слово procedure,а после end ставить не точку, а точку с запятой.
procedure Treug;
begin
h:=L*sin(pi/3);
line(320-L div 2,240+round(h/3),320 +L div 2, 240+round(h/3);
line(320+L div 2,240+round(h/3),320, 240+round(h*2/3);
line(320,240-round(h*2/3),320 - L div 2, 240+round(h/3);
end;
Тогда программа будет выглядеть так:
uses graph;
var L,i,j:integer;h:real;
procedure Treug;
begin
h:=L*sin(pi/3);
line(320-L div 2,240+round(h/3),320+L div 2,240+round(h/3));
line(320+L div 2,240+round(h/3),320,240-round(h*2/3));
line(320,240-round(h*2/3),320-L div 2,240+round(h/3))
end;
BEGIN
i:=0; initgraph(i,j,'C:\ ');
L:=50;treug; L:=60;treug; L:=70;treug; readln;
Closegraph
END.