Volume: 3, Issue: 2

1/12/2011

Методические приемы изложения учебного материала в электронном формате
С.П. Шоленкова [about]

В связи с переходом российских вузов на образовательные стандарты третьего поколения в учебных планах происходит изменение соотношения аудиторной и самостоятельной работы студентов в сторону увеличения доли самостоятельной работы. Рекомендуемый объем аудиторной нагрузки на младших курсах составляет 23-25 часов, на старших курсах – 18-20 часов1. В числе основных мероприятий, направленных на усиление самостоятельной работы студентов, названы оптимизация методов обучения и широкое использование информационных технологий. Учебно-методические комплексы в новых условиях должны содержать, по крайней мере, элементы курсов в электронном виде или ссылки на ресурсы Интернет. Электронные учебные материалы могут использоваться как во время аудиторной работы студентов, так и во время самостоятельной работы в компьютерном классе и дистанционно. Новые требования к организации учебного процесса порождают новые способы взаимодействия студентов и преподавателя. Если во время традиционной лекции или практического занятия преподаватель по реакции аудитории может корректировать ход занятия (обратная связь в режиме реального времени), то при изучении электронного курса обратная связь, а, следовательно, и корректировка методов обучения будут отсроченными. Поэтому для разработки учебно-методического обеспечения в электронном формате от преподавателя потребуется не только освоение программных и технических средств, но также применение имеющегося у него педагогического (методического) мастерства для разработки новых методов, изучение опыта других педагогов, использующих информационные технологии в своей деятельности.

На наш взгляд, при изложении в виде электронных курсов дисциплин, связанных с языками программирования, эффективным приемом повышения методической ценности разработки является применение комментариев в программах и фрагментах программ. Комментарий в программе выполняет чисто информационную функцию, он служит для описания и пояснения отдельных подпрограмм, операторов, данных и т.п. Большинство специалистов сходятся во мнении, что комментарии должны объяснять намерения программиста. Так, разработчик концепции грамотного программирования  Д.Кнут2 в своей ранней статье «Грамотное программирование» («Literate Programming»)  предлагает изменить основную парадигму: «Вместо того, чтобы полагать своей главной задачей инструктирование компьютера, давайте сконцентрируемся на объяснении того, чего мы хотим от компьютера, человеку».3 С методической точки зрения применение комментариев позволяет понять, как перейти от предложений естественного языка, на котором описывается алгоритм решения задачи, к предложениям формального языка программирования, на котором алгоритм реализуется.

Проиллюстрируем применение комментариев в учебных целях при изложении курса «Информатика и программирование», который изучают студенты-бакалавры по направлению «Прикладная информатика».

Электронный учебный курс «Информатика и программирование» разработан в свободно распространяемой среде Moodle. В состав курса входят лекции, задания, тесты и др. Лекции и задания содержат программы и фрагменты программ. Рассмотрим методику изложения темы «Рекурсия» в электронном учебном курсе «Информатика и программирование». При составлении электронных учебно-методических материалов по данной теме использовалось учебное пособие Марченко А.И. «Программирование в среде Borland Pascal 7.0».4

Использование рекурсии для реализации метода быстрой сортировки К. Хоара.

Задача: выполнить быструю сортировку одномерного массива, используя самовызывающуюся  рекурсивную процедуру.
Вначале в словесной форме описывается алгоритм быстрой сортировки и приводится его графическая иллюстрация, а затем  дается текст программы с подробными комментариями. В приводимом тексте программы комментарии предшествуют операторам.

ProgramSort;
UsesCrt;
Const
n = 20;   {       количество элементов массива            }
Var
                A : array [1..n] of integer;
                i: word;

{       Процедура быстрой сортировки        }
procedure Qsort ( L, R : word );
{              L и R – параметры-значения,                                                                                                         }
{              L-индекс левого элемента массива, R – индекс правого элемента массива     }
var
B, Tmp : integer;
{              переменная В используется для хранения центрального элемента массива    }
{              переменная Tmp используется для перестановки элементов массива                              }
i, j : word;                            
begin
{              выбираем центральный элемент массива и записываем его в В                         }
B := A [(L+R) div 2];          
{              просматриваем массив поочередно слева направо и справа налево                 }
i := L;  j := R;                       
                while      i <= j       do
                begin
{если при движении слева направо найден элемент >=B, то запоминаем его позицию}
while A[i] < B do i := i+1;
{если при движении справа налево найден элемент <=B, то запоминаем его позицию}
while A[j] > B do j := j-1;
{              найденные элементы меняем местами и так далее, пока при очередной         }
{              итерации встречные индексы i и j не пересекутся                                                 }
if i <= j then
                                begin
                                                Tmp := A[i];
                                                A[i] := A[j];
                                                A[j] := Tmp;
                                                i:= i + 1;
                                                j := j-1;
end;
end;
{              закончен первый этап сортировки;                                                                                             }
{              массив разделен на две части относительно В – все элементы, которые       }
{              меньше или равны В будут располагаться слева от пересечения индексов i }
{              и j, а все элементы, которые больше или равны В, будут располагаться       }
{              справа от границы; таким образом, относительно В массив отсортирован,}
{              но его левая и правая части еще не упорядочены.                                                   }

{              Сортировка левой части массива                               }
ifL < jthenQsort ( L, j );
                {              Сортировка правой части массива            }
ifi < RthenQsort ( i, R );
end;

{              Главная программа           }
Begin
ClrScr;
Writeln (‘Введите элементы массива:’);
For i:= 1 to n do Read ( A[i] ); Readln;
{              Вызов процедуры сортировки                                      }
               {               В процедуру передаются фактические значения левого и правого    }
{               индексов массива                                                                                                                              }
Qsort ( 1,n )
{              Вывод отсортированного массива на экран            }
Writeln (‘Отсортированныймассив:’);
                For i := 1 to n do Write ( A[i] : 8);
                Writeln;
End.

Рассмотрим еще один интересный методический прием, который можно использовать при изучении студентами языков программирования. Он также основан на комментариях, и суть его заключается в следующем. Студент получает исходный текст программы, в котором нет комментариев. Его задача – дополнить программу комментариями, сформулировать задачу, для решения которой составлена программа, и описать в словесной форме алгоритм решения. Задания такого типа могут быть реализованы в Moodle в форме эссе. Приведем небольшой пример такого задания.

Студент получает  следующее задание: Дан  исходный текст программы, дополните текст комментариями, сформулируйте условие задачи, для которой составлена программа и приведите словесное описание алгоритма.

Program                Pr;
Uses Crt;
Const
                n = 20;
Type
                Tvector = array [1..n] of real;
Var
                Vector : Tvector;
                X : real;
                L, R : integer;
                i : integer;
Begin
                ClrScr;
                Writeln (‘’);
                For i := 1 to n do read (Vector[i]); Readln;
                Write (‘’);
                Readln (X);
{-------------------------------------------------------------------------------------------------------------}
                L := 1; R := n;
                while ( L <= R ) do
                begin
                                i := ( L+R ) div 2;
                                if Vector [i] = X then
                                                Break
                                else
                                                if Vector [i] < X then L := i + 1
                                                                                   else R := i – 1;
                end;
                if Vector [i] = X then
                                Writeln (‘’)
                                                Else Writeln (‘’,i);
{-------------------------------------------------------------------------------------------------------------}
End.

Заметим, что текст в процедурах вывода на экран опущен сознательно.
Решение данной задачи начинается с попытки понять действия, выполняемые операторами, затем формулируем задачу и приводим словесное описание алгоритма. В данном случае решение может иметь следующий вид:

ProgramPr;
UsesCrt;
Const
n = 20;                   {              размерность массива       }
Type
                Tvector = array [1..n] of real;
Var
                Vector : Tvector;
                X : real;
                L, R : integer;
                i : integer;
Begin
                ClrScr;
                Writeln (‘Введитеэлементымассива’);
                For i := 1 to n do read (Vector[i]); Readln;
                Write (‘Введите искомый элемент’);
Readln (X);
{-------------------------------------------------------------------------------------------------------------}
L := 1; R := n;                       {L – левый индекс, R –правый индекс            }
while ( L <= R ) do
begin
i := ( L+R ) div 2;                 {находим индекс среднего элемента            }
ifVector [i] = Xthen{если средний элемент массива равен X, }
Break{ то выход из цикла, т.к.элемент найден    }
else{ иначе продолжаем поиск             }
ifVector [i] < XthenL := i + 1         { в левой части массива  }
elseR := i – 1;   {в правой части массива                }
end;
                if Vector [i] = X then
                                Writeln (‘Искомый элемент находится на позиции’,i)
ElseWriteln (‘’);
{-------------------------------------------------------------------------------------------------------------}
End.

Данная программа выполняет поиск заданного числа в упорядоченном по возрастанию одномерном массиве.

Разумеется, что рассмотренные методические приемы можно использовать и в традиционных формах обучения, но не следует забывать, что традиционные формы обучения предполагают непосредственный контакт обучаемого и учителя. Преподаватель владеет ситуацией и может корректировать объяснение. Если же учебный материал представляется в электронном формате, то все должно быть продумано до мелочей, так как студент не может сиюминутно обратиться к преподавателю за разъяснениями.

Иногда высказывается мнение о том, современные информационные технологии вытеснят традиционные методы и методику из учебного процесса. На наш взгляд, дело обстоит не совсем так. Информационные технологии представляют собой в руках преподавателя мощный инструмент, овладев которым можно разрабатывать методики обучения, адекватные современным условиям. Сами по себе они не исключают ни методику, ни преподавателя. Так же, как когда-то компьютерные технологии заменили счеты, но не бухгалтера, в учебном процессе компьютерные  технологии заменят доску и мел, но не преподавателя. Функции обучения, такие как изложение теоретического материла, формирование практических навыков, промежуточный и итоговый контроль и т.п., в условиях применения информационных технологий пусть и опосредованно, но все-таки сохраняются за преподавателем. Роль методики и педагогического мастерства,  если подходить к созданию электронных учебных курсов неформально, скорее возрастает, чем снижается. Информационные технологии как средство обучения дают новый стимул для развития методики обучения.

i Шоленкова Светлана Павловна - канд. пед. наук, доцент, заведующая кафедрой прикладной информатики Регионального открытого социального института, г.Курск

  1. «Об активизации самостоятельной работы студентов высших учебных заведений». Письмо Минобразования России от  27.11.2002  № 14-55-996ин/15
  2. http://www.computerra.ru/offline/2001/387/7737/page4.html
  3. Donald E. Knuth. Literate Programming // The Computer Journal, 27(2):97{111, May 1984.
  4. Марченко А.И. «Программирование в среде Borland Pascal 7.0 / Марченко А.И. – К.: ВЕК, К.: ЮНИОР, 1996. – 480 с., ил.

 

Home | Copyright © 2025, Russian-American Education Forum