Архивы: по дате | по разделам | по авторам

Мы все учились понемногу…

Архив
автор : Анатолий Левенчук   25.05.1998

Философия, математика, информатика…

Когда я общаюсь с программистами, я всегда вспоминаю песенки группы "Манго-Манго", в которых "аквалангисты - это хорошо!", а крановщики - не иначе как "храбрые" и "смелые". Нужно написать такую же честную песню о программистах. Действительно, программисты такие умные и творческие (хотя психологи их не очень любят)! А давайте попробуем этой умности учить в школе? Нет, мы не будем делать из всех детей любителей ночного кофе и маздая. Мы же не предполагаем, обучая детей в школе читать, что из них вырастут сплошь профессора и академики! Поэтому будем учить программированию - но на самом базовом уровне, чтобы эти слова ни означали.

С другой стороны, информатика - что бы это слово ни означало - все более и более "начинает и выигрывает". Экономика тихонько сливается с информатикой, психология трещит под напором "NLP - еще одного программирования" (см. "Компьютерру" #18 от 11 мая 1998 года), менеджеры вынуждены проектировать workflow для своих фирм, поиск в библиотеках заменяется поиском в Интернете, а экономический барометр - рынок ценных бумаг - продолжает тихо разворачиваться в компьютерную сторону. Чтобы жить в таком мире, не нужно иметь быструю реакцию каратиста: в этом мире тебя, скорее всего, бить не будут - но будут покупать и продавать с гигагерцовыми скоростями. Десяток злых гениев с горящими глазами запустят свои маздаевские пальцы в глобальные компьютерные сети - и большинство населения Земли даже не сможет понять, что происходит в разваливающемся на кусочки мире! Ах! Нужно самообороняться - и ввести курс компьютеров (или информатики?) в школы!

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

И вот культурные люди начинают поговаривать, что информатика - это такая же "мета"-дисциплина, как философия, методология, математика. Ну, в таком случае нужно эту информатику вводить в школьную программу - но не раньше первого курса в колледже (если информатика окажется типа философии) или не позже первого класса (если окажется типа арифметики).

Школьная информатика в отрыве от школы

К сожалению, культурную дискуссию про школьную информатику развернуть не удается - мы все учились понемногу, поэтому легко и смело можем порассуждать про любые проблемы образования. В частности, если задать тему школьной информатики, в большинстве случаев участники дискуссии начинают бурно обсуждать школьную информатику. И тогда можно смело менять слово "информатика" на название любого школьного предмета. А ведь вопрос интересный: какое, собственно, содержание в информатике? Независимо от того, как и где - чему учить, если учишь информатике, а не физике или математике?

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

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

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

А дало ли развитие компьютерных наук достаточные основания для включения каких-либо мыслительных навыков, требуемых и развиваемых в ходе решения программистских задач, в состав мыслительных навыков, прививаемых общеобразовательными институтами - будь то школа, лицей или дом?

Ответ на этот вопрос не так прост - сама информатика еще очень молода и быстро меняется. У большинства людей слово "алгоритм" вызывает ассоциации не с последовательностью каких-то действий, а с "компьютер-виндоуз-позвать программиста". Широко простерла информатика руки свои в дела человеческие. Так широко, что за этими руками никто не вспоминает про тело и голову. А ведь информатика - это вовсе не обязательно компьютер! Более того, можно ставить вопрос довольно парадоксально: обсуждать повышение качества образования при использовании компьютеров по сравнению с ситуацией "бескомпьютерного" образования в области музыки, информатики, физкультуры и геометрии.

Да, так: информатика - это не про компьютер, так же, как арифметика - не про калькулятор, а музыка - не про пианино.

Про компьютер - это "компьютерная грамотность". Грамотность не требует развития навыков мышления, она развивает простые рефлексы по отношению к простым предметам - в данном случае компьютерная грамотность будет тренировать навыки работы в небумажной среде для письменной формы (минус каллиграфия, плюс слепой десятипальцевый, плюс основы форматирования текста), знакомить с тем, как делать картинки не на бумаге, а на экране (не путать эти навыки с навыками рисования - там думать надо, там другой преподаватель!), как отправить письмо другу по емеле (не путать с тем, как составить такое письмо - это на уроках литературы), а дальше поиск информации в вебе, математика со спредшитом и пользование энциклопедиями CD-ROM! Известное дело - каждое из упомянутых умений требует для обучения ему не больше времени, чем умение считать на калькуляторе или пользоваться телефоном. Но этих "компьютерных" умений - тьма, как и споров, каким из этих умений учить в школе на уроках. Постараемся не касаться этих вопросов - для обсуждения мыслительных навыков не требуется поминать ни школы во всем их разнообразии, ни даже классно-урочную систему со всеми ее альтернативами, ни персональные, сетевые или суперкомпьютеры.

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

Бескомпьютерная информатика: много вопросов, мало ответов

Итак, информатика (программирование, алгоритмика, планирование) - это о чем, если не о компьютере?

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

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

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

Вполне может выясниться, что информатика - это НЕСКОЛЬКО разных предметов, которые могли бы преподаваться разными учителями (ведь не обязательно русский язык, английский язык и литература преподаются одним и тем же человеком. А арифметика, алгебра и геометрия тоже часто преподаются разными людьми). И как тогда можно разделить и назвать такие предметы?

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

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

Новая и новейшая информатика

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

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

 

Под workflow (по-русски переводится как "ход работ" - а не "поток работ", русское мышление об этом отличается от западноевропейского) понимается в соответствии с мировой традицией выполнение работ группой человеческих и компьютерных агентов, что описывается в терминах "процесс", "задача", "старт активности", "приостановка активности" и прочих терминах, общих для размещения работ по исполнителям и контроля исполнения. Это сейчас рассматривается как (аналогичное тематике баз данных) выделение тематики формирования и размещения по исполнителям (человеческим и машинным - без разницы) группы взаимосвязанных задач-работ. Как и в проблематике баз данных (выделенные в отдельный инструментарий средства работы с данными - СУБД), появился класс инструментального ПО - WMS (workflow management systems), которые работают на сети и имеют стандартные интерфейсы (сейчас системы различных поставщиков могут понимать друг друга - это позволяет программировать ход работ, проходящий через несколько различных фирм, в которых установлены различные платформы управления ходом работ). Эта область сейчас очень быстро развивается, особенно в союзе с такими консалтинговыми бестселлерами, как реинжиниринг бизнес-процессов, и такими "новинками", как криптопротоколы. В воркфлоу, как и в программировании, особо выделяют build time - время описания наличных агентов и программирования (планирования) хода работ, и run time - время выполнения программ-ходов работ наличными агентами.


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

Интересно также обсудить, относится ли к базовым мыслительным навыкам работа по абстракции данных. Алгоритмическое ли это мышление или "даталогическое"? Все эти классификации, умение дать правильное имя, отобразить нужное состояние, думание над атрибутами (от ER-модели вплоть до третьей нормальной формы) - это какое мышление? Любые программы = данные + алгоритмы. Это кто отменял? Если не отменял, то чему именно тут нужно учить? Что может пригодиться не только в профессиональной программисткой жизни?

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

А логика и прочие "предикатности", без которых сейчас не сунешься даже в поисковую машину? Это базовое умение где тренируется - на уроках математики, или информатики или еще где-нибудь?

Продолжение следует

Разговор о школьной информатике на обсуждении содержания предмета нельзя считать оконченным. Далее можно попробовать поговорить о технологических приемах, которые можно использовать для тренировки мыслительных навыков, обсуждаемых статьях этого номера "Компьютерры". Обучать математике, музыке, информатике нужно с использованием разных технологий. Какие стратегии наиболее успешны в тренировке навыков именно в информатике? Насколько нужен при этом компьютер? Если компьютер нужен, то какие именно классы ПО нужно будет использовать? Можно ли успешно применить для обучения тем или иным навыкам алгоритмического мышления те или иные техники из репертуара НЛП? Как обеспечить в процессе обучения перенос навыков алгоритмического мышления на разные типы задач? Какой возраст оптимален для обучения тем или иным мыслительным приемам? Заметим, что все эти вопросы опять-таки никак не касаются того, в школе ли протекает учебный процесс или дома, какова роль учителя и/или других учеников и прочие вопросы "официальнопедагогической" парадигмы. Задача ставится очень просто: вот человек не умеет делать то-то и то-то. Какие техники с минимальными затратами ресурсов и времени научат этого человека делать это то-то и то-то? А уж как именно массово привнести в общество эти идеи, пусть потом обсуждают другие издания - по организации образования.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.