Вы - -й посетитель этой странички

Введение в профессию “учитель информатики”

Лекции читает А.Г. Гейн

Лекция 4. В каком порядке излагать материал

Где начало того конца, которым
оканчивается начало?
Козьма Прутков.
“Мысли и афоризмы”

    Практически любая научная дисциплина устроена так, что, казалось бы, самые далекие друг от друга ее разделы оказываются тем не менее связанными. И полноценное изучение одного из разделов невозможно без основательной предварительной проработки другого. Переплетение различных “ниточек” курса иногда бывает настолько тесным, что их изучение вообще возможно только в едином комплексе.
    Но человек не способен воспринимать эту “многомерную ткань”, поэтому обучение выстраивается линейно — тема за темой. Над тем, как это сделать, ломают голову дидактики и методисты, авторы учебных программ и учебников. На помощь призвана идея концентризма — ранее изученная тема некоторое время спустя вновь выходит на сцену и рассматривается с позиций уже большего знания, которое к этому времени получено из других тем (Конечно, это не единственная и, быть может, не самая главная причина концентрического построения процесса изучения того или иного предмета. Важную роль играют возрастные особенности учащегося, взаимодействие с другими дисциплинами и т.д. Но и той причины, которая указана нами, более чем достаточно для возведения концентрического построения материала в некий методический принцип.).
    В каком-то смысле противоположной идеей является идея модульного построения курса. Модули предполагаются самодостаточными и независимыми друг от друга. Поэтому их можно комбинировать если не вообще в произвольном порядке, то по крайней мере достаточно свободно. Эта свобода выглядит весьма привлекательно: учитель получает возможность создавать из модулей, как из кубиков, курс произвольной конфигурации, и, разумеется, прежде всего той, которая ему лично по вкусу. Авторы же подобных курсов тоже ощущают облегчение: объявив курс модульным, они как бы снимают с себя обязанность продумывать связи между модулями — теперь это забота учителя, взявшегося за реализацию такого курса.
    Все сказанное выше отнюдь не чуждо информатике. Более того, складывается впечатление, что именно на курсе информатики апробируются различные идеи модульности. Оно и понятно: в изложении других дисциплин существуют вековые традиции, дидактические и методические связи уже давно выстроены и устоялись, поэтому они кажутся естественными и незыблемыми. В информатике все ново, все зыбко.
    В том, что это за связи, мы и попытаемся разобраться в данной лекции.
    Если задать вопрос, какие связи должны неукоснительно соблюдаться, то, как показывает практика, на первое место, как правило, выходит следующий ответ: связи логического следования. И этот ответ кажется вполне очевидным. Кому придет в голову рассматривать свойство адекватности модели до того, как введено само понятие модели, или изучать понятие циклического алгоритма до того, как введено само понятие алгоритма? Ведь циклический алгоритм — это частный вид алгоритма вообще.   
    Но если мы посмотрим на математику — эту, без сомнения, самую логичную дисциплину среди всех школьных дисциплин, — то обнаружим нечто странное. Скажем, понятие прямоугольника вводится на несколько лет раньше, чем понятие многоугольника и даже параллелограмма. Введение понятия “отрезок” предшествует понятию “прямая”, хотя по определению отрезок — это часть прямой, заключенная между двумя различными точками. Едва ли надо говорить, что понятие производной, составляющее основу курса алгебры и анализа в 10—11-х классах, полностью опирается на понятие предела функции, о котором услышат только те, кто поступит в технические вузы. Не так все просто, как кажется на первый взгляд. Мы здесь снова сталкиваемся с проявлением принципа концентризма — сначала осваиваются более простые (наглядные, легче объяснимые, чаще встречающиеся на практике и т.п.) понятия, а потом, по мере накопления знаний, рассматриваются более общие понятия.
    Вот достаточно распространенный пример подобной ситуации в информатике. Изучение алгоритмической конструкции “цикл пока” или “цикл для” предваряется рассмотрением цикла “n раз”, хотя эта разновидность цикла с очевидностью является частным случаем любого из двух других. Именно так обстоит дело в учебнике [6]. И это методически оправданно, поскольку простое повторение заданное количество раз воспринимается учащимися намного легче (хотя бы за счет того, что совершенно прозрачным является условие окончания цикла), нежели более сложная для понимания формулировка “пока” (Сложность восприятия конструкции “пока” вызвана, по-видимому, еще и неоднозначной семантикой этого слова в русском языке. Нередко оно означает какой-то интервал времени, в течение которого что-то происходило. Вот фразы, в которых слово “пока” употребляется именно в таком смысле: “Пока мы тут разговаривали, поезд ушел”; “Пока жена его не бросила, он был вполне порядочным человеком” — и т.п. Вообще выбор на роль термина слова, имеющего неоднозначную семантику, всегда создает трудности в освоении того понятия, для обозначения которого данный термин выбирается. Нередко, однако, подобные методические ошибки совершают и авторы учебников. А расплачиваться за них приходится ученикам и студентам. В качестве вопиющего примера приведем всем хорошо известный математический термин “неправильная дробь”. Что должен думать ученик, услышав от учителя фразу: “У тебя получилась неправильная дробь”?).
    Можно сделать такой вывод: предварять изучение общего понятия каким-либо частным целесообразно при выполнении двух условий:
    — это частное понятие должно допускать определение, независимое от общего понятия;
    — данное частное понятие должно играть значительную роль в практике использования общего понятия (например, более часто применяться).
    Легко убедиться, что, скажем, и понятие прямоугольника (Прямоугольник вводится еще в начальной школе как четырехугольник, у которого все углы прямые. Дети еще не знакомы ни с понятием параллельности (и, значит, не знают понятие параллелограмма), ни с понятием многоугольника вообще.), и понятие цикла “n раз” удовлетворяют обоим указанным условиям. Отметим, что речь идет именно о частном случае понятия; то, что введение любого понятия весьма полезно сначала проиллюстрировать подходящим частным примером, дискуссии не вызывает.
    Вернемся теперь к рассмотрению вопроса, что определяет порядок изучения понятий (и, более общо, дидактических блоков и модулей), когда они логически относительно независимы. Данное обсуждение начнем с примера.
    При изучении алгоритмизации, после того как введены понятия алгоритма и его построения в виде линейной последовательности действий, рассматриваются основные алгоритмические конструкции: ветвление, цикл и вспомогательный алгоритм. Возникает естественный вопрос: какую из указанных конструкций изучать первой, какую второй, а какую в последнюю очередь?
    Обратимся к существующим учебникам.
    В [6] порядок следующий: вспомогательный алгоритм, циклы n раз и пока, ветвление, цикл для.
    В [1] и [2] сначала рассказывается о ветвлении, затем о цикле пока, затем вводится понятие вспомогательного алгоритма и, наконец, цикл для.
    В [3] порядок таков: цикл пока, ветвление, вспомога-
тельный алгоритм, цикл для.
    В [5]: ветвление, цикл пока, команда безусловного перехода, цикл для, подпрограмма.
    В [4]: цикл повтори n и процедура.
    Налицо весьма значительное разнообразие применяемых вариантов. Проанализируем 3 из них и попытаемся ответить на вопрос, какое методическое обоснование можно дать каждому из рассматриваемых вариантов.

    1-й вариант: вспомогательный алгоритм, цикл пока, ветвление.
   
Введение вспомогательного алгоритма позволяет использовать для решения задачи механизм нисходящего проектирования, согласно которому исходная задача разбивается на ряд более простых задач, в свою очередь, эти задачи могут быть разбиты на еще более простые и т.д. Более того, на этом пути некоторые из подзадач могут оказаться уже ранее решенными и потому имеющими уже готовый алгоритм. Решение каждой подзадачи оформляется отдельным вспомогательным алгоритмом, а главный алгоритм просто осуществляет их сборку в единое целое.
    Таким образом, ознакомление школьников со вспомогательными алгоритмами позволяет сразу расширить круг обсуждаемых задач, привлекая интересные задачи. А это, в свою очередь, повышает мотивацию к изучению предмета.
    Нередко оказывается, что в основном алгоритме требуется несколько раз применить один и тот же вспомогательный алгоритм для разных значений аргумента вспомогательного алгоритма. Если множество этих значений можно как-либо “регуляризировать”, например, представить как множество значений некоторого вычисляемого выражения, то вспомогательный алгоритм можно заменить конструкцией цикла: телом цикла фактически будет тело вспомогательного алгоритма, а вместо неоднократных вызовов вспомогательного алгоритма при разных значениях аргумента ставится проверяемое условие продолжения (или окончания) цикла. Особенно это важно, когда заранее неизвестно, сколько раз пришлось бы вызывать вспомогательный алгоритм. В этом случае как раз и возникает цикл в форме пока.
    Итак, как мы видим, переход от вспомогательных алгоритмов к циклам довольно прост: понятие тела цикла фактически сформировано при рассмотрении вспомогательных алгоритмов, и остается только дополнительно ввести понятие условия продолжения или окончания цикла.
    Условие продолжения или окончания цикла сигнализирует о том, следует ли выполнять следующую за ним серию действий. Но такую же роль играет условие и в конструкции “ветвление”. Поэтому после изучения цикла в форме пока учащиеся легко переходят к освоению ветвлений в алгоритмах.
    Вот как, по нашему представлению, могут быть высказаны те методические аргументы в пользу данного варианта последовательности изучения.

    2-й вариант: ветвление, цикл пока, вспомогательный алгоритм.
   
После того как введено понятие алгоритма и рассмотрена линейная форма организации действий, перед учащимися естественно поставить проблему, что в реальной жизни линейные алгоритмы имеют весьма ограниченную сферу применения — ведь почти всегда до выполнения действия требуется принять решение, надо ли данное действие выполнять. Вот как такая постановка делается в [1].
    “Легко и просто было бы жить (и даже неинтересно), если бы удалось раз и навсегда расписать, какие поступки и в какой последовательности совершать. На самом деле нам постоянно приходится принимать решения в зависимости от создавшейся ситуации. Если идет дождь, то мы надеваем плащ. Если жарко, то идем купаться. Разумеется, встречаются и более сложные положения, когда надо сделать выбор. Рассмотрим два примера.

    П р и м е р 1 . Допустим, вы собрались пойти в кинотеатр на сеанс 12.00. Алгоритм покупки билетов может выглядеть так:
    Подойти к кассе.
    Если билеты на сеанс 12.00 есть, то
        купить билеты.
    Отойти от кассы.

    П р и м е р 2. Рассматривается жизненная ситуация, когда используется ветвление в полной форме: “если ... то ... иначе ...”.

    Необходимость изучения конструкции ветвления теперь у школьников сомнений не вызывает; конструкция эта весьма естественна и знакома им как из повседневной жизни, так и из их занятий математикой. Так что в этом контексте вполне естественно начинать именно с этой конструкции. Кроме того, специальной отработки здесь требует только умение выделять условие, в соответствии с которым исполнитель будет принимать решение, выполнять ему данную последовательность действий или нет. Формирование самой этой последовательности редко вызывает у учащихся какие-либо затруднения.
    После освоения ветвления совершенно естественно перейти к понятию цикла пока. Действительно, основное отличие состоит в том, что выделяемая последовательность действий должна быть исполнена не один раз, а несколько, пока остается выполненным условие продолжения цикла. Конечно, здесь потребуется более тщательная отработка умения выделять тело цикла, но она разделена с отработкой выделения условия, которая проведена раньше.
    Наконец, введение вспомогательных алгоритмов полностью подготовлено рассмотрением циклов. Ведь прибегать к вспомогательному алгоритму приходится тогда, когда невозможно единообразно сформулировать условие цикла, а каждый раз принимать решение об исполнении нужной последовательности действий, т.е. об обращении к вспомогательному алгоритму, приходится в контексте той обстановки, которая к этому моменту сформирована исполнителем. Вспомогательный алгоритм — конструкция более сложная, чем предыдущие, поскольку требует введения понятий формальные и фактические параметры для своих аргументов, а также понятий локальной и глобальной переменных. Кроме того, вспомогательный алгоритм — это средство для мощного, но весьма тонкого инструмента алгоритмизации, каким является рекурсия. Фактически если не пользоваться инструментом рекурсии, то можно вообще обойтись без вспомогательных алгоритмов, встраивая всякий раз в основной алгоритм вместо вызова тело вспомогательного алгоритма с соответствующими значениями входных параметров. Все это показывает обоснованность последнего места понятия “вспомогательный алгоритм” в ряду указанных алгоритмических конструкций.

    3-й вариант: цикл пока, ветвление, вспомогательный алгоритм.
   
Спросите любого учителя информатики, и почти каждый из них скажет, что начинать надо с циклов — ведь именно конструкция цикла позволяет продемонстрировать высокую эффективность компьютера: в весьма коротком вычислительном алгоритме могут спрятаться тысячи и даже миллионы действий, на исполнение которых у человека ушло бы не только несколько месяцев, но, возможно, и несколько лет. В этом смысле ветвления всегда вызывают у школьников некоторое неудовольствие. Ведь реально будет исполняться только одна последовательность действий из тех двух, которые приходится прописывать “на всякий случай” в ветвлении. Получается, что при составлении ветвящегося алгоритма работать приходится больше, чем компьютеру при исполнении данного алгоритма. А кому же охота делать лишнюю работу? Так что мотивационно циклы ветвлениям дадут 100 очков вперед.
    Перейти от циклов к ветвлениям можно уже так, как это сделано в варианте 1, и мы на этом останавливаться не будем. Можно, конечно, от изучения циклов переходить и ко вспомогательным алгоритмам, но напомним, что введение вспомогательных алгоритмов требует изучения еще целого ряда понятий, весьма непростых для школьников. Так что вспомогательные алгоритмы и здесь лучше отправить на третье место.
    Остановимся на этом. Нам представляется, что приведенный разбор методических мотивов, согласно которым может выстраиваться та или иная последовательность изучения материала, убедительно показал отсутствие однозначности в решении данного вопроса. У каждого учителя могут оказаться свои предпочтения, но мы хотим призвать к тому, чтобы выбор был обдуманным, а не случайным.

Вопросы и задания
   
1. Изучение конструкций “ветвление”, “цикл пока” и “вспомогательный алгоритм” можно упорядочить шестью вариантами. Три из них мы рассмотрели в тексте лекции и показали, что приемлемость каждого из них имеет определенное методическое обоснование. Проанализируйте с этой точки зрения три оставшихся варианта.
    2. В курсе школьной информатики обычно изучаются 4 информационных технологии: текстовый редактор, графический редактор, электронная таблица, база данных (или информационно-поисковая система).  Теоретически можно составить 24 варианта последовательности, в которой будут изучаться эти  технологии. Для каждого из вариантов попытайтесь найти методическое обоснование для именно такой последовательности изучения технологий. Укажите наиболее методически оправданную, на ваш взгляд, последовательность изучения указанных технологий.

Литература
    1. Гейн А.Г., Линецкий Е.В., Сапир М.В., Шолохович В.Ф. Информатика: Учебник для 8—9-х классов общеобразовательных учреждений. М.: Просвещение, 1994, 256 с.
    2. Гейн А.Г., Сенокосов А.И., Шолохович В.Ф. Информатика: Учебник для 7—9-х классов общеобразовательных учебных заведений. М.: Дрофа, 1997, 224 с.
    3. Гейн А.Г., Сенокосов А.И., Юнерман Н.А. Информатика: Учебное пособие для 10—11-х классов общеобразовательных учреждений. М.: Просвещение, 2000, 255 с.
    4. Информатика: Учебник для 6—7-х классов средней школы / Под ред. Н.В. Макаровой. СПб.: ПитерКом, 1998, 256 с.
    5. Кузнецов А.А., Апатова Н.В. Основы информатики. 8—9-е классы: Учебник для общеобразовательных учебных заведений. М.: Дрофа, 1999, 176 с.
    6. Кушниренко А.Г., Лебедев Г.В., Сворень Р.А. Основы информатики и вычислительной техники: Пробный учебник для средних учебных заведений. М.: Просвещение, 1990, 224 с.