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


Методика

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

Окончание. Начало (о первых двух “китах”) см. в № 2/2009

Курс должен формировать адекватное представление о современной информационной реальности

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

Развивать тот или иной стиль мышления не обязательно только научными методами.

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

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

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

Школьный курс математики — часть настоящей математики. Школьный курс информатики должен быть частью настоящей информатики.

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

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

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

Четыре основных понятия школьного курса информатики

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

1) команда (оператор, управляющая конструкция), и в первую очередь — команда повторения (цикл);

2) величина (переменная, объект), и в первую очередь — табличная величина (массив);

3) вспомогательный алгоритм (подпрограмма, процедура) с параметрами;

4) “информационная модель исполнителя” (как это изложено в 3-й главе нашего учебника), или просто “исполнитель” (пакет, модуль, объект, экземпляр класса).

Конечно, когда очередной лектор (сейчас — я) выписывает такой набор и говорит, что вот это — 4 основных, у вас немедленно должна появиться мысль, что другой лектор написал бы 7 других “основных понятий”, третий добавил бы еще пару и т.д. Вообще возникает вопрос о роли личности лектора в выборе этих понятий. Так вот, понятия, которые я выписал, не случайны и выбраны отнюдь не по принципу “нравятся они мне или не нравятся”. Они являются не исходной точкой, а результатом некоторого рассуждения, доказательства. И я сейчас приведу набросок этого рассуждения — обоснования, что именно эти четыре понятия являются фундаментом современного алгоритмического стиля мышления.

От действий над объектами к их записи — командам и величинам

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

Все остальное (принтер, экран, дисковод и пр.) отличается от Робота только системой команд. Устройству дается команда, оно ее выполняет. А вот процессор с памятью — это особые, фундаментальные компоненты ЭВМ. Им соответствуют два фундаментальных свойства ЭВМ — умение выполнять действия и умение хранить информацию в памяти машины.

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

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

Действия => Команды

Объекты => Величины

Запись большого количества действий и работа с большими объемами информации

Возникновение информатики как науки тесно связано с появлением ЭВМ по той причине, что ЭВМ умеет быстро выполнять действия и хранить много информации. Соответствующие характеристики ЭВМ называются “быстродействием” и “объемом памяти”. Чтобы задействовать эти возможности ЭВМ, необходимо научиться записывать выполнение большого количества действий над большими объемами информации. Соответствующие методы компактной (короткой) записи длинных последовательностей действий и компактной записи больших объемов информации и стали зачатками информатики. Запись простого действия в виде команды или запись объекта в виде простой величины обычно не вызывает труда. Информатика как наука начинает работать, когда нужно записать длинную последовательность действий или обработать большой объем информации. Для этого в языках программирования используются конструкции циклов (короткая запись большого количества действий) и величины, состоящие из многих элементарных объектов, прежде всего массивы (в школьном языке названные “табличными величинами”):

Действия => Команды => Циклы

Объекты => Величины => Табличные величины

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

“Циклы” и табличные величины соответствуют устройству современных ЭВМ.

Отвлекаясь в сторону, давайте рассмотрим еще раз взаимосвязь этих понятий с устройством современных ЭВМ.

Чтобы задействовать “быстродействие”, надо уметь приказать ЭВМ выполнить громадное количество действий, скажем, миллион или миллиард. Если мы начнем эти действия выписывать: первое, второе, третье, … — жизни не хватит. Какой прок в быстродействии миллион операций в секунду, если приказ на каждую операцию мы будем записывать минуту! Другое дело, если мы напишем небольшую последовательность действий, скажем, десять или сто команд, но прикажем компьютеру выполнить ее много раз: миллион или миллиард. Тут мы сможем задействовать быстродействие в полной мере. Такая запись многократного выполнения заданной последовательности действий и называется “циклом”.

Теперь давайте поговорим о памяти ЭВМ. Память состоит из отдельных элементов, имеющих свою внутреннюю нумерацию. Но записываем мы алгоритм на каком-то языке, а в языках имеем дело с отдельными порциями информации. Эти порции называются переменными, объектами или, с легкой руки А.П. Ершова, величинами (по аналогии с математикой и физикой). Чтобы работать с величинами и отличать одни от других, их нужно снабдить именами. В памяти современной ЭВМ могут храниться значения миллионов числовых величин. Снова жизни не хватит, чтобы придумать для каждой из них имя. Таким путем задействовать большой объем памяти ЭВМ не удастся. На выручку приходят табличные величины (массивы). Такая величина имеет только одно имя и много элементов, занумерованных целыми числами. Поскольку элементы памяти ЭВМ также имеют свою внутреннюю нумерацию, понятие табличной величины (массива) хорошо соответствует структуре памяти современных ЭВМ и есть во всех современных языках программирования.

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

Итак, мы разобрали, почему в наш список вошли первые два понятия: 1) команды и особенно циклы, и 2) величины и особенно табличные величины. В принципе этими двумя понятиями можно было бы ограничиться, и получился бы вполне замкнутый курс, я бы сказал, нулевого уровня. Кстати, Бейсик идейно близок именно этому уровню знаний.

Можно ли ограничиться понятиями “цикл” и “табличная величина”?

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

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

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

То же произойдет, если не вводить в русский язык новые слова. Попробуйте представить себе человека, ничего никогда не слышавшего о метро, и попробуйте описать все то знание (поезда, эскалаторы, под землей, но не всегда и т.д.), которое в вашей голове связано с этим словом. А теперь представьте себе, что вы в обычном разговоре всякий раз вместо слова “метро” используете это описание из сотни или тысячи слов!

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

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

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

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

Способы структуризации в информатике опираются на понятие вспомогательного алгоритма.

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

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

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

Действия => Команды (Циклы) => Всп. алгоритмы

Объекты => Величины (Таблицы) => ?

Кстати, язык Паскаль, который в свое время придумал Н.Вирт, содержит именно эту тройку понятий, т.е. действия можно разбить на вспомогательные алгоритмы (подпрограммы, процедуры). С объектами в Паскале хуже — их трудно разделять по назначению. Мы не в состоянии записать, что вот эти объекты будут предназначены для того-то и того-то и связаны с такими-то действиями; а другие объекты предназначены для другого и связаны с другими действиями.

Уровень Паскаля — это уровень информатики 70-х годов: вспомогательными алгоритмами (подпрограммами) уже пользовались, а аналогичные средства для работы с объектами еще не появились.

Структурировать в информатике нужно не только действия, алгоритмы, но и саму информацию, объекты.

Я попробую пояснить структуризацию объектов на житейском примере. Допустим, вы решили сделать ремонт, дома или в школе, неважно. Нужны материалы, инструменты, рабочие. Первый подход: нанять рабочих, самому закупить материалы и инструменты и отвечать за них. Отдавая любой приказ любому рабочему, выдавать ему инструменты и материалы, а по окончании работы забирать инструменты и остатки материалов. К чему приводит такой подход? Все материалы и инструменты — ваша забота, вы за них отвечаете, вы ими постоянно манипулируете, у вас полон рот хлопот. А рабочий выполнил работу, все сдал и без хлопот пошел домой. В каком-то смысле это похоже на использование вспомогательных алгоритмов: при вызове алгоритма ему передаются аргументы, по завершении работы от него забираются результаты, и после окончания выполнения все, что было связано с алгоритмом, стирается из памяти ЭВМ (“рабочий пошел домой”). Второй подход — нанять сразу целую бригаду со всеми инструментами и материалами, а самому с ними дела не иметь. Рабочие внутри бригады сами по мере надобности будут передавать друг другу инструменты и материалы, сами за них отвечать и разбираться с тем, что им необходимо. Бригада оказывается коллективным Исполнителем ремонта. И если вы наймете две бригады для разных целей (например, маляров и сантехников), то инструменты и материалы каждой из них будет хранить она сама и между собой они не перепутаются.

В информатике второй подход обеспечивает понятие исполнителя — хранителя какого-то набора объектов. Исполнитель и есть недостающее в классическом Паскале средство структуризации.

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

Насколько мне известно, первый язык, в котором появились способы такой “структуризации” объектов, это язык Simula-67. Как следует из названия языка, предназначен он был для информационного моделирования (“симулирования”) различных процессов. Примерами процессов могут служить ремонт школы, воздушный бой или работа компании по продаже авиабилетов. Позже подобные конструкции для структуризации объектов появились практически во всех других языках программирования.

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

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

В нашем учебнике соответствующее понятие называется “информационной моделью исполнителя”, или просто “исполнителем”, и вводится в третьей главе. В других языках это понятие называется по-разному, скажем, в языке Ада — “пакетом” (packаgе), в языке Модула — “модулем”, в С++ и Simula-67 — “объектом” и “экземпляром класса”; классический Паскаль расширен конструкцией Unit, в классическом C для этих целей используется свойство локализации объектов в файлах. Достаточно широко распространено слово “модуль”, хотя это слово применяется и для других целей. Например, в книге Майерса “Надежность программного обеспечения” дается классификация около 15 типов разных модулей и обсуждаемое нами понятие называется “информационно-прочным” модулем.

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

Фундаментальное понятие информационной модели в школьных курсах информатики, в том числе и в нашем курсе, отражено недостаточно.

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

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

1. Команды (Циклы) => 3. Вспомогательные алгоритмы

2. Величины (Таблицы) => 4. Исполнители

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

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

Нужно ли выходить за пределы этих понятий?

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

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

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

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

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

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

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

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

Наконец, и совсем простыми вещами пренебрегать нельзя. Всякий сегодня знает, что 20–30 килограмм груза легко перевезти на легковом автомобиле, для 2–3 тонн понадобится уже грузовик, а для 200–300 тонн придется придумывать что-то особое. Точно так же и в информатике нужно воспитать интуитивное ощущение “тяжести” тех или иных задач и “грузоподъемности” тех или иных моделей компьютеров.

Примеры неадекватности и адекватности

Я здесь люблю приводить два примера. Один я заимствовал у Сергея Попова — это игротехник, организатор деловых игр, в том числе по Байкалу. Он однажды объяснял, как в России начали вводить рынок. Мы, сказал он, очень похожи на папуасов, которые увидели, что из прилетевшего самолета выгружают продукты. “Ага, — сказали папуасы, — продукты выгружают из самолета”, сделали самолет из коры и листьев, сели вокруг него и стали ждать появления продуктов. Это пример неадекватного представления об окружающей реальности.

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

Мы знаем не только о том, что видно, но кое-что о содержании, о физических величинах, процессах и пр. У нас есть — обычно достаточно адекватная — физическая картина мира.

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

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

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

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

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

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

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

Именно это должно составлять базу школьного курса, а вовсе не умение нажимать на кнопки.

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

TopList