О методике и проблемах преподавания информатики в математическом классе
С.А.Жилин
Роль информационных технологий в жизни современного общества определяет особое положение нашего предмета в общей системе школьного образования. С одной стороны, он должен подготовить человека к решению практических задач в условиях информационного общества, научить пользоваться средствами компьютерной техники и технологии. С другой стороны, он обеспечивает важнейший компонент фундаментального образования. Вместе с другими предметами математического цикла информатика создает основу для формирования способностей к аналитическому, формально-логическому мышлению, что совершенно необходимо для будущей учебной, научно-исследовательской или проектной деятельности. Поиск разумного баланса между этими двумя системами целей — ключевой вопрос любой учебной программы и методики преподавания курса. И этот вопрос можно решать по-разному. Совсем недавно основное внимание в реальной школьной практике уделялось изучению языков программирования. В последнее время наблюдается явный крен в другую сторону — в сторону изучения готовых программных продуктов и технологий. К сожалению, существующие стандарты и учебно-методическая литература слишком односторонне реагируют на изменения социальной значимости различных направлений информационной технологии. Это находит отражение в основных учебных пособиях — найти хороший учебник по программированию сейчас практически невозможно (не просто описание языка, а именно учебник по предмету — с теоретическим материалом, вопросами, задачами, примерами!). Тем более невозможно найти соответствие между требованиями профильных вузов и содержанием учебной литературы.
Между тем программы вступительных экзаменов по информатике предъявляют очень высокие (и часто весьма специфические) требования к абитуриентам. Достаточно ознакомиться с содержанием экзаменационных заданий по информатике на факультетах двух московских вузов: МГУЭСИ (МЭСИ) и РГТУ (МАТИ) им. К.Э. Циолковского. В первом основной упор делается на задачи по программированию (матрицы, строки символов и т.п.), задания, проверяющие знание таких тем, как системы счисления, элементы формальной логики и булевой алгебры. Во втором — задачи на обработку файлов, синтаксический и лексический анализ текста, моделирование формальных исполнителей. К этому добавим традиционные "программистские" задания по информатике на олимпиадах — и общая картина становится вполне очевидной. Везде, где требуется оценка интеллектуальных способностей, где главным является элемент состязательности, основу решаемых задач по-прежнему составляют алгоритмы и математические модели.
При этом традиционные образовательные стандарты и методы обучения информатике мало способствуют формированию знаний и умений, необходимых для решения этих задач. Существует очевидная несбалансированность между курсом информатики в младших и средних классах (1—4-х, 5—б-х) и в старшей школе (10—11-х). Основу курса для 1—б-х классов образуют такие учебные пособия и программные модели, как Алгоритмика и Роботландия (т.е. начальный курс алгоритмизации и программирования!). Но в 7—11-х классах уже почти безраздельно господствуют "чистые" информационные технологии (учебники Ю.Шафрина и т.п.). Для класса математической ориентации построить курс на основе такого учебного материала практически невозможно.
Любая школа, в которой действует система "ШКОЛА—ВУЗ", использует специализированные учебные программы и методики. Несколько слов о том, как преподается курс в школе № 887. Преподавание курса начинается с 1-го класса. Начальная подготовка младших школьников состоит в первом знакомстве с устройством компьютера и базовыми понятиями информатики. В этот период ученик осваивает навыки работы с клавиатурой и мышью, учится решать простые формально-логические задачи, создавать алгоритмы и программы для формального исполнителя.
Подготовка учащихся специализированных классов начинается с 5-го класса. В 5—6-х классах специализация выражена не очень явно и проявляется в основном в количестве учебных часов — в математических классах учебная нагрузка составляет 2 часа в неделю. Начиная с 7—8-х классов постепенно изменяются методика и содержание преподавания. Значительно увеличивается объем математического блока. Ученики знакомятся с представлением чисел в различных системах счисления, с недесятичной арифметикой, с особенностями машинного кодирования числовой информации. Особую важность имеет изучение формальной логики. Этот модуль включает самые разнообразные вопросы — от вычисления логических выражений и построения таблиц истинности до принципов проектирования логических схем компьютера. Параллельно происходит знакомство с основами компьютерной техники и технологии, с элементами программного обеспечения компьютера. В этом сочетании теории и технологии заключается основная сложность данного этапа. Цель — обеспечить необходимую базу для более глубокого изучения этих вопросов в старших классах, освободить время для достаточно полного курса программирования и алгоритмизации.
Базовая подготовка по теме "Теория и практика программирования" осуществляется в 8—9-х классах. Ученики знакомятся с реальным языком и системой программирования, начинают решать задачи. На данном этапе можно выделить по крайней мере три проблемы, с которыми сталкивается любой учитель.
1. Проблема выбора языка и средств для обучения программированию. Этот вопрос не очень важен сам по себе, но решать его нужно, и в разных школах это делается по-разному. Позиция автора состоит в том, что на данном этапе лучшим выбором являются все-таки язык Паскаль и система программирования Турбо Паскаль. Паскаль — потому, что этот язык обладает всеми атрибутами структурного и профессионального языка, использует методологически важные средства и категории ("тип данных" , "множество", "модуль", "указатель"), является лидером среди систем разработки приложений (визуальная среда Delphi). Турбо Паскаль — потому, что Object Pascal и все объектные технологии в основном ориентированы на создание коммерческих проектов и вопросы организации графического интерфейса приложений, которые в учебных задачах программы "ШКОЛА—вуз" не являются главными.
2. Проблема выбора содержания и порядка изложения материала. Это действительно принципиальный и сложный вопрос, и главная конструктивная идея состоит в следующем. В курсе выделяются две части. Первая условно-постоянная часть включает основные понятия программирования и типы данных, циклы и условия, базовые навыки работы с числовыми и символьными данными, с массивами. Вторая часть — вариативная, она зависит от наличия в школе конкретных систем типа "ШКОЛА—ВУЗ" и т.п. В этой части должны в полной мере учитываться профиль и приоритеты вуза, и единые рекомендации по ее содержанию дать невозможно.
3. Проблема выбора форм и методов преподавания. Эта проблема, пожалуй, наиболее сложная из всех. Наиболее разумным и эффективным подходом автор считает постепенный переход от традиционной формы урока в 8 — 9-х классах к модульно-зачетной модели в 10—11-х классах.
Опыт многих школ, использующих систему профилирования классов и сдачи экзаменов по технологии "ШКОЛА—вуз", говорит в пользу именно такой модели обучения, при которой достигаются максимальная интенсивность и целевая направленность учебного процесса, обеспечиваются высокие конечные результаты.
Основные концепции модульно-зачетной технологии, как их понимает и применяет автор статьи, можно описать с помощью следующих базовых положений:
А. Материал учебной программы разбивается на отдельные учебные блоки — модули. В состав каждого модуля входят три обязательных компонента:
1. Опорные лекции по теме. Основные понятия и методы.
2. Типовые задачи и программы для демонстрации и обучения.
3. Задания для самостоятельного выполнения и контроля знаний.
Задачи в наборах обязательно группируются по сложности и тематическому содержанию. Это упрощает освоение материала и оценку выполненных работ.
Б. Освоение учебного модуля осуществляется в три этапа. В первой части учебного периода излагается необходимый теоретический материал, проводится разбор типовых задач, выдаются задания для самостоятельной работы. Во второй части периода учащиеся выполняют учебные задания, получают необходимые консультации учителя. Третий этап — зачет или экзамен в форме письменной или практической работы.
В. Изучение каждого модуля идет по схеме "погружения". Никакие задачи типа «Вывести на экран слово "Привет!"» не изучаются. Новые языковые объекты изучаются не сами по себе, а как инструменты решения конкретной задачи, т.е. в рамках некоторого осмысленного алгоритма. Это относится и к самой первой программе, и к программе повышенной сложности.
Состав и содержание учебных модулей зависит от программы вступительных экзаменов вуза и не может быть единым для любой школы. Однако, с другой стороны, различия между этими программами также не могут быть слишком существенными. Сравнительный анализ программ подготовки учащихся в школах № 887 (РГТУ (МАТИ)) и № 814 (МГУЭСИ) говорит о значительном совпадении основных концепций и направлений работы. Особенности вуза проявляются только в отдельных тематических блоках и касаются в основном специальных задач повышенной сложности, которые решаются в 10—11-х классах. Объем учебной информации одного модуля слишком велик, чтобы привести его полностью. Но общее представление о содержательной части методики можно получить на основе отдельных типовых фрагментов. В качестве примера можно привести отдельные фрагменты одного из типовых учебных модулей.
Типовой учебный модуль
Основы программирования обработки символьной информации с формальной лексикой
БЛОК I. (ФРАГМЕНТ)
Опорные лекции по теме.
Основные понятия и методы
План лекции
1. Понятие о лексических единицах текста. Слово. Формальное определение слова. Методы определения слов в системах обработки информации.
2. Поиск и выделение слова. Основные операции над словами. Определение свойств слова. Стандартные алгоритмы и программы.
Основные положения лекции
Лексика любого текста — это множество слов в данном тексте. Для задач обработки символьной информации часто используется формальное понятие слова:
Слово — это любая последовательность символов, для которой можно установить ее принадлежность к определенному множеству.
Так, например, словом можно считать любую последовательность букв или цифр, любое слово, включенное в словарь языка, и т.п.
1. Задано множество символов, которые могут являться буквами слова, или, наоборот, множество символов, которые не считаются буквами.
2. Используются специальные символы-ограничители (скобки).
3. Используется словарь языка (множество допустимых значений слов).
Первый метод является наиболее простым и удобным для начального знакомства с формальной лексикой. Все множество символов делится на два подмножества:
Множество "букв" (А) и множество "не-букв" (¬A). При этом все множество символов является объединением этих двух множеств.
S = А U ¬A
Любая непрерывная последовательность символов-букв считается словом (лексической единицей текста). Любая последовательность "не-букв" выполняет функции разделителя и пропускается. Для поиска и выделения лексических единиц могут быть использованы типовые алгоритмы и программы на основе стандартных процедур и функций для работы с символьными данными.
Далее могут следовать фрагменты или полные тексты программ, в которых демонстрируются процессы поиска и выделения слов в символьной последовательности. Самый простой вариант задачи: найти и вывести на экран все слова данного текста.
БЛОК II. (ФРАГМЕНТ)
Типовые задачи п программы
для демонстрации и обучения
Задача 1
Дана последовательность символов (строка). Словом текста является последовательность букв русского алфавита. Найти все слова, в которых гласные буквы алфавита образуют симметричную последовательность букв (палиндром). Малые и большие буквы считаются эквивалентными. Расположение букв, не являющихся гласными, может быть произвольным. Слова с одной гласной буквой не выводить. Примеры: Алиса (А-и-а), молоко (о-о-о), медведь (е-е), алгебра (а-е-а).
Задача 2
Дана последовательность символов (строка). Словом текста является последовательность цифр. Найти все слова, в которых все четные цифры образуют неубывающую последовательность чисел. Одна цифра не считается неубывающей последовательностью. Примеры: 1234 (2-4), 1388 (8-8).
Задача 3
Дана последовательность символов (строка). Словом текста является последовательность цифр и букв латинского алфавита. Определить количество слов, в которых цифры и буквы алфавита чередуются.
Примеры: la2b3c, X2y4z4.
Один из возможных вариантов решения задачи 1.
{ЗАДАЧА 1. Симметрия гласных букв в слове.}
PROGRAM T_1;
USES CRT;
Const
GLB = [ ' А' ,
' Е ' , 'И', 'О', 'У, ' Ы' , '' Э' , 'Ю', 'Я', 'Ё'];
{ Алфавит гласных букв
}
BKV = [ 'А'..'Я', ' а ' . .
' п ' , ' р ' . . ' я ' ] ;
{ Алфавит букв }
dl
= ord('n' ) - ord(-'n' ) ;
d2 = ord(^') - ord('4') ;
d3 = ord('E') - ord('e') ;
Var
i, j : Integer;
s, w, w2: String;
BEGIN
cirscr;
writein('Текст
?'); readln(s);
i := 1;
while i <= length(s) do
begin
{Выделение слова
(лексической единицы)}
w : = ' ' ;
while (i <= length (s)) and (s[i] in
BKV) do
begin
w : = w + s [ i ] ;
i := i + 1
end;
if length(w) > 1 then
begin
w2 := w;
{Преобразовать все буквы
в большие,
удалить все буквы, не являющиеся гласными}
j := 1;
while j <= length(w) do
begin
case w[j] of
'a'..'n':w[j] :=chr(ord(w[j] )+dl) ;
'p' . . 'я' :
w[j]:=chr(ord(w[j] )+d2);
'e':w[j] :=chr(ord(w[j] )+d3)
end;
if w[j] in GLB then j := j + 1
else delete( w, j, 1 )
end;
{Проверить симметрию букв в
строке w}
if length(w) > 1 then
begin
j := 1;
while (j <= length(w) div 2) and
(w[j] = w[length(w) + 1 — j]) do
j := j + 1;
if j > length(w) div 2 then
writein(w2)
end
end; { if }
i := i + 1 { следующий символ s[i] }
end; { while }
END.{ все }
БЛОК III. (ФРАГМЕНТ)
Задания для самостоятельной работы
и контроля знаний
1. Дана последовательность символов (строка S). Словом текста считается любая последовательность цифр и букв латинского алфавита. Найти и вывести все слова текста, в которых есть хотя бы одна ЦИФРА (в любом месте).
2. Дана последовательность символов (строка S). Словом текста считается любая последовательность букв русского алфавита. Найти и вывести все слова текста, которые содержат только БОЛЬШИЕ буквы алфавита.
3. Дана последовательность символов (строка S). Словом текста считается любая последовательность цифр. Найти и вывести все слова текста, которые образованы НЕУБЫВАЮЩЕЙ последовательностью символов.
4. Дана последовательность символов (строка S5). Словом текста считается любая последовательность букв русского алфавита. Определить наибольшую длину слова, символы которого образуют СИММЕТРИЧНУЮ последовательность букв (палиндром). Большие и малые буквы алфавита считаются равными
5. Дана последовательность символов (строка S). Словом текста считается любая последовательность букв латинского алфавита. Удалить ПЕРВОЕ слово.
6. Дана последовательность символов (строка S). Словом текста считается любая последовательность букв русского алфавита. Удалить все слова, которые содержат двойные согласные буквы (пример: ввод, масса).
7. Дана последовательность символов (строка S). Словом текста считается любая последовательность цифр. Поменять местами ПЕРВОЕ и ПОСЛЕДНЕЕ слово.
8. Дана последовательность символов (строка S). Словом текста считается любая последовательность букв русского алфавита. Записать в одномерный массив строк А ВСЕ слова, которые содержат одинаковое количество ГЛАСНЫХ и СОГЛАСНЫХ букв алфавита.
9. Дана последовательность символов (строка S). Словом текста считается любая последовательность букв русского алфавита. Записать в одномерный массив чисел А КОЛИЧЕСТВО гласных букв для КАЖДОГО слова.
10. Дана последовательность символов (строка S). Словом текста считается любая последовательность букв русского алфавита. Найти ПОСЛЕДНЕЕ слово, которое начинается с ПРОПИСНОЙ буквы. Записать все символы данного слова в одномерный массив символов А.
Очевидно, что даже в математическом классе с углубленным преподаванием курса информатики способности различных учащихся существенно различаются. Никакая методика не может гарантировать быструю и надежную подготовку любого ученика к сдаче вступительного экзамена. Очень много зависит от природных способностей ученика, от профессионального опыта и мастерства преподавателя.
Основа данной модели обучения — это серьезная, самостоятельная работа ученика, его сотрудничество с учителем ради достижения заданной цели.
Навыки и способности к напряженной самостоятельной работе формируются не сразу, а постепенно. Если ученик не может или не хочет работать на таких условиях, то заставить его работать в режиме интенсивного и в значительной степени самостоятельного труда практически невозможно. Эффективность метода в значительной степени зависит от качества набора в профильные классы. Но это уже тема для отдельного разговора.
При удачном отборе и систематизации учебного материала, при точном отражении специфических требований вуза методика может дать очень высокие показатели даже при среднем уровне первоначального отбора в профилированные классы — не ниже 90— 95% поступивших (от числа сдающих экзамен). Для более точных количественных оценок требуются ежегодный мониторинг системы сдачи экзаменов, накопление и анализ соответствующей статистики. Но даже без специального исследования некоторые основные результаты представляются вполне очевидными. Перечислим самое важное.
• Количество решенных задач — это основа подготовки к экзамену. Производительность труда ученика в данном случае значительно повышается. Для класса с сильным контингентом учеников общее количество решенных задач может быть доведено до 80—100 в год. Для одаренных учеников — еще больше.
• Точно и быстро выявляются ученики с повышенными способностями к самостоятельному освоению учебного материала. Эти ученики в первую очередь и с хорошим качеством выполняют все наборы учебных заданий, показывают высокие результаты на зачетных мероприятиях. Метод позволяет выявить одаренных детей уже после одного-двух месяцев работы и работать с ними по индивидуальной программе.
• Осуществляется дифференцированный подход к ученику. Каждый может работать над задачей в индивидуальном темпе и не очень зависит от успеваемости других учащихся. Для отстающих учеников могут быть проведены консультации и установлены индивидуальные сроки сдачи работ. Сильные ученики имеют возможность сдать работы досрочно и получить набор задач повышенной сложности (по желанию).
• Модульный принцип дает возможность быстрой адаптации к любым изменениям в программе вступительного экзамена. Модули, которые утратили актуальность, легко заменяются другими, которые лучше сориентированы на ожидаемые типы задач. При нормальных отношениях сотрудничества между школой и вузом соответствующие изменения могут быть выполнены своевременно и без потери в качестве подготовки. И, наконец, последнее замечание. Такая сложная проблема, как качество обучения в специализированном классе, подготовка к экзамену в вуз, не может быть решена окончательно, на основе каких-то формальных положений. Любой учитель имеет дело с личностью ученика. Любые подходы к организации учебной деятельности развиваются, обнаруживают как сильные, так и слабые стороны. Опыт подготовки к экзаменам в конкретный вуз вообще является уникальным, и его нельзя копировать в полном объеме. Поэтому все предложенное следует воспринимать прежде всего в контексте конкретных целей и условий, которые существуют в конкретных учебных заведениях. Очевидно, что другие вузы и другие вступительные программы могут ориентировать школы на совершенно иные модели профильного обучения.