Главная страница «Первого сентября»Главная страница журнала «Информатика»Содержание №2/2009


Методика

Основные цели, или Три "кита" курса

Я, естественно, рассказываю о нашем учебнике, о том понимании информатики, которое заложено в этот учебник <…>*.

Курс преследует три основные цели, или, образно говоря, базируется на трех “китах”:

1) первый и основной “кит” называется “Алгоритмический стиль мышления”: главная цель курса — развитие алгоритмического стиля мышления как самостоятельной культурной ценности, независимо, в каком-то смысле, от компьютеров и всего прочего;

2) второй “кит”: курс должен быть “настоящим”. Слово “настоящий” означает, что в процессе упрощения понятий информатики мы не должны “вместе с водой выплеснуть и ребенка”, т.е. упрощать можно лишь до тех пор, пока не теряется содержание, суть дела;

3) третий “кит”: курс должен формировать “адекватное представление о современной информационной реальности”. Это означает некоторую замкнутость, законченность, достаточность набора понятий курса. Другими словами, если второй “кит” запрещает в процессе упрощения переходить к чему-то удобному для изложения, но не имеющему отношения к “настоящей информатике”, то третий “кит” требует, чтобы адекватное представление об информатике было тем не менее сформировано, чтобы материала было достаточно и курс содержал необходимый для этого набор понятий, покрывающий сегодняшние реальности.

Забегая вперед, скажу: эти три “кита”, как водится, базируются на “черепахе”. Наш подход предполагает, что для усвоения курса и учителя, и ученики должны много и напряженно работать. Это — не “беллетристический” курс: слушать учителя, читать учебник и отвечать у доски недостаточно. Ученик должен много работать, решать задачи. Мы уверены: только так он сможет что-то воспринять. Можно сказать, что “черепахой” курса является русская пословица: “Без труда не вытащишь и рыбку из пруда”.

Для школы это не новость — в математике и в физике все тоже рассчитано на регулярную работу ученика. Посмотрите на коллег-математиков, вечно они с тетрадками, с контрольными — и иначе никак нельзя.

Сейчас я раскрою смысл слов и понятий “развитие алгоритмического стиля мышления”, “информатика должна быть “настоящей” и др. <…>.

Главная цель курса — развитие алгоритмического стиля мышления

Существует особый
алгоритмический стиль мышления, и его развитие есть важная общеобразовательная задача

Итак, первое и основное: алгоритмический стиль мышления.

Мы исходим из того постулата, что человек может мыслить по-разному, что существуют разные стили мышления. Математика и логика развивают математический (или логический) стиль мышления, т.е. умение рационально рассуждать, пользоваться математическими формулами в рассуждениях, из одних утверждений логически выводить другие (теоремы из аксиом и уже известных теорем). Литература и история, наоборот, связаны с какими-то менее рациональными аспектами сопереживания, этики морали (этот стиль мышления условно можно назвать “гуманитарным”). Ряд школьных предметов — таких, как астрономия или география, — вообще не нацелен на развитие какого-либо стиля мышления (цель этих предметов — изложение знаний в конкретной области, расширение кругозора учащихся).

Первое мое утверждение состоит в том, что есть особый “алгоритмический стиль мышления”. Как всегда, когда мы затрагиваем такие фундаментальные понятия, я не могу вам дать точного определения, что такое “алгоритмический”, или что такое “логический” стиль мышления. Я просто чуть позже на наглядно-интуитивном уровне покажу, что я под этим понимаю.

А сейчас — следствие из этого утверждения. Если существует (а мы считаем, что существует) такой особый “алгоритмический” стиль мышления человека, то его развитие представляет самостоятельную ценность, так же как и развитие мышления человека вообще. Мы должны развивать все стороны мышления, какие только сможем выделить. И если в некоторой области удается выделить характерный для нее стиль мышления (умение думать) человека, то его развитие, по моему мнению, должно объявляться самоцелью и внедряться в общее образование, как необходимый элемент общей культуры.

И поэтому учебник весь нацелен на развитие алгоритмического стиля мышления, умения думать алгоритмически, а тем самым и умения думать вообще. Математика, как курс, в рамках которого преимущественно формируется логический стиль мышления, и информатика, как курс, специально нацеленный на развитие алгоритмического стиля мышления, должны в обязательном порядке входить в общеобразовательные базовые курсы средней школы. Более того, основы алгоритмизации, как и основы логики, в идеале должны закладываться на ранних стадиях обучения, до 12 лет.

Цель курса — развить алгоритмический стиль мышления. Умение обращаться с компьютером
или знание конкретных программных систем
не входит в непосредственные цели курса.

Обратите внимание, я не говорю, что цель курса — научить школьников работать за компьютером, обучить их языкам программирования, современным базам данных или электронным таблицам. Все это — полезные и важные вещи, но наш курс построен совсем по-другому и нацелен совсем на другое — на развитие, в каком-то смысле, головы ученика, его умения думать. Вот это первое и основное.

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

Если, например, вы считаете, что вам надо, чтобы ученики знали Бейсик, умели работать за компьютерами, пользоваться базами данных или электронными таблицами, то наш учебник вам почти бесполезен.

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

Что такое “алгоритмический стиль мышления”

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

Пусть мы имеем вертикальную металлическую клетчатую стену (в учебнике — “клетчатое поле”) с выступающим прямоугольным “препятствием”, а на стене — несколько выше препятствия — в одной из клеток находится Робот (R).

 

Рис. 1. Робот (R) и пульт управления им

Робот — это машинка с антенной, батарейками, моторами, магнитными присосками и т.п. И пусть у нас в руках имеется пульт радиоуправления Роботом с кнопками.

Нажимаем на кнопку — Робот смещается на клетку вправо, нажимаем кнопку — смещается влево, на — вверх, на — вниз.

Анатолий Георгиевич Кушниренко. "Скринщот" видеолекции

Простейшую задачу управления без каких-либо затруднений решает каждый школьник.

Если такую машинку — радиоуправляемого Робота — принести в класс, прикрепить к клетчатой доске и дать ученику пульт управления, то любой ученик в состоянии, глядя на Робота, понажимать на кнопки так, чтобы Робот спустился вниз под препятствие, объехав его. Тут, я повторяю, нет вообще никакой задачи. Даже ребенок, начиная с 5–7 лет, в состоянии это проделать.

Такой стиль взаимодействия с электронными устройствами называется “непосредственным управлением”:
я нажимаю на кнопку, смотрю на результат. Нажимаю на другую кнопку, смотрю, что получилось, принимаю решение, какую нажать следующую кнопку, и т.д. —
т.е. принимаю решения по ходу управления.

В этой схеме человек нажимает на кнопки, а “исполнитель” выполняет действия. Глобальный план действий (как и куда двигаться) человек может придумывать по ходу, по мере выполнения команд и прояснения ситуации.

Методическое отступление

Поскольку вы все здесь учителя и методисты, я сразу скажу, как все это может быть организовано на уроке. Пока у нас нет Робота в “металле”, учитель может играть его роль — рисуя Робота и клетчатое поле на доске. Удобно также использовать магнитные доски — на них легко перемещать Робота и не надо постоянно стирать и рисовать его положение.

Итак, на уроке — даже в младших классах — можно поднять самого слабого ученика и сказать: “Иванов, командуй!”. И он без труда, глядя, как вы выполняете его команды (перемещаете Робота по доске), продиктует вам последовательность команд “вниз”, “вправо” и т.д., по которым Робот обойдет препятствие.

Более сложная задача управления с использованием команд “обратной связи” также не вызывает затруднений.

Теперь немного усложним задачу. Будем считать, что Робот — в соседней комнате или вообще далеко от нас (т.е. мы его не видим), а у нас на пульте есть специальные кнопки: , , , и лампочка. Нажимаем на кнопку — Робот анализирует, можно ли сделать шаг вниз, и если вниз шаг сделать можно, то лампочка на пульте загорается зеленым цветом (если нельзя — то красным). Итак, нажали на кнопку ; если зажегся зеленый свет, значит, снизу свободно, а если красный, значит, снизу — препятствие.

Наша задача: не видя ничего, кроме пульта управления, заставить Робота спуститься под препятствие (расстояние от начального положения Робота до препятствия неизвестно). Происходит незначительное усложнение: мы не видим обстановку, мы должны себе ее воображать и принимать решение по миганиям лампочки. Но уже не так мгновенно, как в первом случае, и, возможно, не с первой попытки, но практически все ученики такую задачу решат. Как? Известно, что Робот стоит где-то выше препятствия, обстановку не видно, размеры препятствия неизвестны. Что надо делать? Надо шагать вниз, пока не дойдем до препятствия, т.е. при каждом шаге проверять (нажимая кнопку ), свободно ли еще снизу (зеленый свет) или уже есть препятствие (красный). Как только загорится красный свет (препятствие), надо начать шагать вправо, при каждом шаге проверяя (нажимая кнопку ), не кончилось ли препятствие. Потом спускаться вниз, проверяя наличие препятствия слева (кнопка ), наконец, сделать один шаг влево, чтобы оказаться под препятствием. Такие последовательные нажатия на кнопки — даже с анализом невидимой и неизвестной обстановки — доступны любому школьнику.

Методическое отступление

На уроке учитель может нарисовать обстановку у себя на листке, никому не показывать и предложить ученикам командовать.

В ответ на “снизу свободно” () лучше сразу говорить “да” или “нет” вместо слов “зеленый” и “красный”.

Другой вариант — вызвать одного ученика, поставить его спиной к доске, на доске нарисовать обстановку и Робота (чтоб видел весь класс, кроме вызванного ученика) и предложить вызванному ученику командовать, а самому с помощью мела и тряпки исполнять поступающие команды.

Если обход препятствия “втемную” кажется слишком сложным или длинным, то можно рассмотреть только первую часть задачи — “спуститься вниз до препятствия”. На этом же примере можно показать типичные ошибки. Если ученик начинает с команды “вниз”, а не с вопроса “снизу свободно?”, то в ответ на первую же команду учитель вместо “сделано” может сказать: “отказ — Робот разбился” (и тем самым дать ученикам понять, что проверять обстановку надо перед перемещением, а не после).

Я повторю, что кто-то, быть может, сначала ошибется (например, уведет Робота вбок от препятствия), но тем не менее, после 2–3 попыток, подавляющее большинство учеников (во всяком случае, начиная с 7-го класса) с такой задачей справится. Это по-прежнему “непосредственное управление”: я нажимаю на кнопки, смотрю на ответ (лампочку), нажимаю на другие кнопки и т.д.

Лирическое отступление

Конечно, дети не родились с умением решать эти задачи. Просто раньше им приходилось решать много подобных задач: когда они гремели погремушкой, а потом возились в песочнице, а потом запихивали в портфель книжки, учились звонить по телефону и управлять лифтом или радиоприемником. А вот в ситуации, к рассмотрению которой мы сейчас перейдем, — в задаче “программного управления” — жизненный опыт у школьников не накоплен, потому она и оказывается трудной.

Записать или объяснить кому-нибудь алгоритм труднее, чем выполнить работу самому.

А вот если теперь школьника попросить: “Запиши как-нибудь всю последовательность нажатий на кнопки для обхода препятствия неизвестных размеров, находящегося где-то ниже Робота”, — то тут-то и выяснится, что значительная часть учеников:

а) прекрасно представляет, на какие кнопки и как надо нажимать, чтобы заставить Робота препятствие обойти, но

б) не в состоянии четко описать (записать) эту последовательность действий.

Нет ничего удивительного в том, что алгоритм легче выполнить, чем записать.

Вы можете называть эту запись алгоритмом или программой, либо никак не называть. Вы можете предложить записать это хоть на русском языке, хоть на школьном алгоритмическом, хоть на Бейсике, хоть на языке, придуманном самим школьником, — суть дела это не изменит. А суть в том, что если раньше человек прямо нажимал на кнопки (схема “непосредственного управления”), то теперь он пишет программу (алгоритм), которая далее будет выполняться без его участия — обычно на ЭВМ, которая “нажимает на кнопки” и командует исполнителем:

Итак, сначала человек выбирает какой-то способ записи, какой-то язык и записывает алгоритм. Затем (это на нашей схеме вообще не отражено) алгоритм как-то попадает к ЭВМ. И, наконец, ЭВМ начинает командовать Исполнителем в соответствии с алгоритмом, полученным от человека.

Почему же алгоритм трудно записать?

Это трудно по трем причинам.

Во-первых, алгоритм придется сразу (“наперед”) продумать во всех деталях, ничего нельзя отложить на потом — ведь выполнять алгоритм будем уже не мы, а ЭВМ.

Во-вторых, мы должны не только все продумать “наперед” во всех мыслимых вариантах, но и записать это без двусмысленностей и выражений типа “и т.д.”.

В-третьих, выполнять алгоритм будет ЭВМ — техническое устройство. Оно не может догадаться, что мы что-то “имели в виду”, — все должно быть описано явно, точно, формально и на понятном ЭВМ языке.

Алгоритм — план будущей деятельности, записанный в заранее выбранной формальной системе обозначений (нотации). Составляет алгоритм человек, а выполняет — ЭВМ.

Введение записи будущих действий с помощью какой-то нотации <…> — это и есть переход от непосредственного управления к программированию. Здесь и возникают сложности. Человек может прекрасно представлять себе, на какие кнопки и как надо нажать для получения результата, но иногда не в состоянии записать эту последовательность команд в виде программы. Те, кто уже преподавал информатику, я думаю, неоднократно сталкивались с подобной ситуацией.

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

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

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

Теперь еще одно лирическое отступление, связанное по-прежнему с первым “китом” — алгоритмическим стилем мышления. Чтобы было понятнее, я специально буду несколько категоричен, буду, скажем так, “перегибать палку”.

Во-первых, из цели развития алгоритмического стиля мышления вытекает, что для нас не так важно, есть компьютер или нет. Я хочу это особо подчеркнуть, хотя вовсе не призываю вас преподавать без компьютера. Логика тут простая. Если нет компьютера, то научиться пользоваться им, конечно, нельзя. Но мы ведь такой цели и не ставим. Вы все знаете известный пример про обучение плаванию без воды в бассейне — действительно нельзя научить учеников пользоваться компьютерами, научить их работать с системами, не имея оных.

Но это не относится к развитию алгоритмического стиля мышления. Для развития мышления нужна только голова. Развивать алгоритмический стиль мышления можно без компьютера и даже независимо от того, есть какие-либо компьютеры в мире или нет. Подобно тому, как электрическое сопротивление и закон Ома можно изучать независимо от того, придуманы ли уже электромоторы и телевизоры, курс основ информатики можно изучать независимо от того, придуманы ли уже ЭВМ или еще нет. И зачатки информатики — задачки типа “Волк, коза и капуста” или “Ханойские башни” существовали испокон века. Такие задачки развивали именно алгоритмическую сторону мышления, развивали в меру тех потребностей, которые существовали в обществе. Сейчас с развитием компьютеров эти потребности резко возросли, информатика из “Волка, козы и капусты” превратилась в отдельную научную область с массой своих методов, направлений, подразделений и т.д. И, как видите, дело дошло уже до отдельного курса в школе.

Нельзя научиться решать алгоритмические задачи, изучая устройство компьютеров и языки программирования.

Во-вторых, поскольку речь идет о развитии алгоритмического стиля мышления, то компьютеры из предмета, из цели обучения превращаются в средство. Компьютеры нам нужны для того, чтобы развивать алгоритмический стиль мышления. Обращаю ваше внимание на эту очень важную смену ориентиров, компьютеры из цели обучения превращаются в средство обучения. С ними учить интереснее, с ними учить эффективнее. Школьники больше успевают усвоить, если у них есть компьютеры с соответствующим программным обеспечением, но тем не менее это только средство.

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

Но тем не менее и ручка, и мел, и топор, да и компьютеры в нашем курсе — только средства. Это означает, что как нельзя научиться решать математические задачи, изучая устройство ручки и бумаги, так же точно нельзя научиться решать алгоритмические задачи, изучая устройство компьютеров и языки программирования.

Это чрезвычайно важная вещь, и я хочу, чтобы вы ее поняли. Это ключ ко всему построению курса и учебника.

ЭВМ и языки — средства для проведения курса информатики, подобно ручке и бумаге в математике. Если, скажем, ручка плохо пишет и мы с ней много возимся или, прежде чем написать слово, нам надо ее десять минут заряжать, то мы будем больше времени уделять ручке и меньше решать с ее помощью задач. Точно так же, если наши компьютеры, программные средства и т.д. требуют к себе особого внимания, изучения, если у нас нет возможности просто пользоваться ими для решения задач, а надо заниматься самими ЭВМ, самими языками, то те задачи, которые мы будем решать, естественно упростятся, — мы не сможем уделить им достаточно времени. Я на этом потом еще остановлюсь, потому что именно этим объясняется появление Робота и всей этой кажущейся игрушечности в начале курса.

И еще раз скажу вам: ЭВМ и языки — только средства…

Итак, повторю, ЭВМ и языки — только средства, их изучение не дает почти ничего для развития алгоритмического стиля мышления. Может быть, расширяется кругозор, так же как при изучении других достижений техники, но в плане развития структур мышления в человеческой голове не добавляется практически ничего.

…но и средства тоже важны.

С другой стороны, совсем без средств обойтись нельзя. Как в математике мы можем писать ручкой, карандашом, фломастером, но чем-то мы писать должны, так и в информатике выбрать какие-то средства (ЭВМ, язык) мы должны.

И, что очень важно, выбор средств оказывает влияние на сложность решаемых нами задач И НА ТО, ЧТО МЫ ИЗУЧАЕМ. Если мы выберем неадекватные средств­а — плохую ручку, ненадежную ЭВМ, сложный язык программирования, неудобную программную систему, — то волей-неволей мы будем вынуждены потратить часть времени на ремонт и изучение собственно ЭВМ, собственно языков, собственно ручки, собственно бумаги. И тем самым эта часть времени будет изъята из курса, т.е. пропадет время, которое можно было бы потратить на решение задач, на другие содержательные вещи.

Первый “кит” — выводы

Вот, пожалуй, и все о первом “ките”. Подведем итоги:

1) существует особый “алгоритмический” стиль мышления;

2) главная цель нашего курса — развитие этого стиля мышления как самостоятельной культурной ценности;

3) ЭВМ и системы программирования в нашем курсе не цели, а всего лишь средства обучения, используемые для развития алгоритмического стиля мышления;

4) выбор этих средств очень важен — удобные средства дают нам возможность продуктивно развивать алгоритмический стиль мышления, тратя минимум времени и сил на технические детали.

Курс должен быть “настоящим”

Второй “кит” — курс должен быть “настоящим”. Это означает, что нельзя ради простоты обучения подменять понятия.

Теоремы, доказательства и многие понятия школьной математики, возможно, и сложны для преподавания, но из этого не следует, что их можно заменить какими-нибудь легкими придуманными понятиями, отсутствующими в “настоящей математике” (в науке). Если в иностранном языке какие-то конструкции слишком сложны для преподавания в школе, то их лучше не преподавать вообще, а не заменять придуманными, простыми, но не существующими в языке суррогатами.

Точно так же в школьной информатике, мы, конечно, должны упростить, адаптировать набор понятий “настоящей информатики” для школьников, но при этом ни в коем случае нельзя производить подмену понятий. Учить надо настоящему, либо — если что-то слишком сложно для школьников — не учить вовсе. Но нельзя учить придуманному, тому, чего в жизни нет.

Я могу привести несколько примеров. В одном из пособий по информатике всерьез изучались такие надуманные “свойства” информации, как ее “своевременность” или “ясность”. Эти придуманные (точнее, “бытовые”) понятия легко объяснять, о них массу всего можно сочинить, о них легко говорить. Но ничего подобного в “настоящем” курсе информатики быть не должно. “Настоящий” означает, что следует взять науку под названием “Информатика” (англ. “Computer science”) и выбрать из нее то, что можно и нужно адаптировать для школьников. В школьном курсе можно ограничиться небольшим набором понятий, но нельзя их подменять легкими для изучения, но “ненастоящими” понятиями, не существующими ни в теоретической, ни в практической информатике.

Еще один пример “ненастоящести” — неформальные алгоритмы из первых школьных учебников типа алгоритма перехода улицы или алгоритма заваривания кофе. Беда в том, что при этом заранее четко не задавался набор базовых команд, которыми можно пользоваться и которые дальше уже детализировать не надо, что сразу переводит задачу из информатики в художественно-психологическую область — никаких формальных критериев для проверки и оценки ответа не существует, ответ просто должен сов­падать с мнением учителя. Вообще изложение понятия исполнителя на неформально-художественном уровне — одна из основных ошибок первых учебников. О системе команд исполнителей в этих учебниках упоминалось, но ни одна система команд не приводилась. Алгоритмы были либо изложением чего-то из математики, либо чисто художественными и потому легкозаменяемыми на любые другие. (Вспомните мучения учителей, пытавшихся объяснить “неправильность”, например, алгоритма заварки кофе “пойти в бар и заказать чашечку” или алгоритма выхода из кинотеатра “идти за всеми”.)

Возвращаясь к “настоящести”, хочу еще раз подчеркнуть, что “настоящесть” состоит в том, что мы не должны преподавать (как бы приятно или легко это ни было) понятия, не имеющие отношения к реальности, придуманные ради легкости их изложения; мы не должны решать придуманные задачи, которые не имеют отношения к информатике.

Мы не должны “вместе с водой выплескивать и ребенка”. Можно упрощать под школьный возраст только до тех пор, пока не теряется суть. То, что нельзя преподать адекватно, не нужно преподавать вообще. Лучше не преподавать ничего, чем преподавать ерунду, не имеющую отношения к действительности.

Окончание лекции (о третьем “ките”)
читайте в следующем номере

Ан. Ге. Кушниренко ;
Ге. Ви. Лебедев

TopList