вторник, 30 декабря 2008 г.

Нелинейный урок по информатике(примерразработки)

В статье показывается на конкретном материале пример структурирования содержания для организации нелинейного урока по информатике в рамках синергетической среды обучения.

Синергетическая среда обучения информатике (ССОИ) в соответствии с результатами работы С. М. Окулова [1] позволяет осуществлять практически индивидуальное обучение. Одной из наиболее значимых составляющих ССОИ является организация нелинейной структуры урока. Нелинейность заключается в реализации индивидуальных образовательных траекторий, т. е. в поддержке и стимуляции скачков в понимании, а значит и в развитии.
Основной идеей в планировании и построении нелинейного урока по информатике является разбиение материала на отдельные структурные единицы и возможность прохождения каждого обучаемого по этим структурным единицам в соответствии с его собственным темпом работы и уровнем подготовки. Такое разбиение материала на практике может быть реализовано посредством подбора серии задач, позволяющих устанавливать связи с ранее изученным материалом, либо способствовать более глубокому пониманию изучаемой темы.
Проиллюстрируем суть задачного подхода на примере конкретной темы «Формирование линейного списка».
Введем понятие линейного списка, его графическую иллюстрацию и описание элемента списка средствами языка Паскаль, например, следующим образом:
Type TList =^TElement;
TElement = Record
Data: Integer;
Next : TList;
End;
Var First : TList;
Далее, в ходе беседы либо опроса непосредственно каждого ученика, рассмотрим последовательность операторов, реализующих пошаговое формирование линейного списка методом вставки в конец:
New(First);
First^.Data:=1;
First^.Next:=nil;
New(First^.Next);
First^.Next ^.Data:=2;
First^.Next ^.Next:=nil;
и так далее до тех пор, пока не возникнет скачек в понимании у большинства. «Окрестность» данной задачи, которую каждый обучаемый должен познать самостоятельно в соответствии с принципами ССОИ, прорисовывается достаточно ясно и заключается в переходе от так называемого ручного или пошагового варианта формирования списка к автоматическому, т. е. с использованием оператора цикла. Важно на данном этапе не накладывать ограничения на способ формирования списка – возможны различные варианты в зависимости от стиля мышления студента и имеющейся у него базы – методом случайных чисел с заранее заданным количеством элементов, считыванием с клавиатуры или из файла и др.
Следующий этап занятия (для тех, кто самостоятельно справится с поставленной выше задачей), заключается в решении серии задач на просмотр элементов списка. Например:
1. Разработать функцию, вычисляющую среднее арифметическое элементов непустого списка;
2. Разработать функцию проверки наличия в списке заданного элемента;
3. Разработать функцию проверки совпадения двух списков;
4. Разработать функцию проверки упорядоченности элементов списка.
С теми же, кто не смог самостоятельно справиться с задачей формирования линейного списка методом вставки в конец, необходимо продолжить совместный поиск решения. Для этого достаточно модифицировать описанную выше последовательность операторов следующим образом:
New(First);
First^.Data:=1;
First^.Next:=nil;

New(First^.Next);
First^.Next ^.Data:=2;
First^.Next ^.Next:=nil;
First:=First^.Next;

New(First^.Next);
First^.Next ^.Data:=3;
First^.Next ^.Next:=nil;
First:=First^.Next;

New(First^.Next);
First^.Next ^.Data:=4;
First^.Next ^.Next:=nil;
First:=First^.Next;

После добавления строки «First:=First^.Next;» в конец группы операторов, осуществляющих вставку очередного элемента в список, необходимость введения циклической конструкции представляется как нельзя более очевидной. Наиболее простое решение поставленной задачи может иметь следующий вид:

New(First);
First^.Data:=1;
First^.Next:=nil;
For i:=1 to 5 do Begin
New(First^.Next);
First^.Next ^.Data:=i+1;
First^.Next ^.Next:=nil;
First:=First^.Next;
End;

Отдельно следует выделить группу обучаемых, которые затрудняются создавать схемы, иллюстрирующие операцию вставки элемента в список, прорисовывать связи между элементами списка и писать соответствующий этим операциям программный код. Для них необходимо заранее подготовить карточки с заданиями следующего типа:
1. Графически изобразить, какая структура будет создана после выполнения последовательности операторов:
New(First); First^.Data:=9; First^.Next:=nil; New(u); u^.Data:=12; U^.Next:=First; First:=u;
New(u^.Next^.Next); u:=u^.Next; u^.Data:=7;U^.Next:=nil;
2. Записать последовательность операторов, создающих изображенную на рисунке структуру (цифрами указана последовательность операций)

Следующий этап занятия – это самостоятельная работа обучаемых «второго звена» по решению описанных выше четырех задач. И здесь опять происходит дифференциация или разбиение на группы в зависимости от уровня понимания материала. Так, для кого то потребуется намекнуть на существенный недостаток решения, полученного сообща, заключающийся в невозможности просмотра созданного списка в связи с потерей указателя на его начало.
После успешного решения первой или второй задачи, в зависимости от скорости их решения, целесообразно перейти от линейного списка с заранее известным количеством элементов к линейному списку с количеством элементов, определяемым пользователем при вводе с клавиатуры (либо из файла). Отсюда в самой формулировке второй (либо третьей) задачи необходимо заранее указать метод формирования списка, например, следующим образом:
Дана последовательность чисел, признак конца ввода – ввод нуля. Сформировать линейный список методом вставки в конец и разработать функцию проверки наличия в списке заданного элемента.
Решившим перечисленные выше четыре задачи предлагается задача «Считалочка» [2]:
N ребят расположены по кругу. Начав отсчет от первого, удаляют каждого k го, смыкая при этом круг. Определить порядок удаления ребят из круга.
Следующий и наиболее высокий уровень работы предполагает экспериментальное исследование задачи «считалочка»:
Для всех допустимых значений N определить номер оставшегося ребенка и вывести соответствующую закономерность. Написать версию программы, вычисляющую номер оставшегося ребенка без использования ссылочного типа данных.
Итак, проанализируем структуру рассмотренного урока и составим соответствующую схему. В структуре урока можно выделить следующие ключевые этапы или структурные единицы:
1. Введение понятия список. Метод пошагового формирования
2. Работа по карточкам
3. Поиск совместного решения по автоматическому формированию списка
4. Поиск и устранение недостатков совместного решения
5. Задачи на просмотр элементов списка
6. Задача «Считалочка»
7. Экспериментальное исследование задачи «Считалочка»

Читайте также статью: Уникальный контент