Главная страница проекта ИНФОРМАТИКА-21

Наука Школе

BlackBox в лицее №1 г. Орла

Илья Ермаков

Год назад, в сентябре 2004 года, я пришел в лицей №1 нашего города, чтобы вести спецкурс информатики для одаренных школьников. Лицей №1 им. М.В. Ломоносова - одно из лучших учебных заведений г. Орла, ученики которого стабильно занимают призовые места на олимпиадах области, как по естественным, так и по гуманитарным наукам. Будучи сам выпускником лицея (выпуск 2003 г.), я прекрасно знал как о большом потенциале лицея, так и о его слабых местах. Так, курс информатики на протяжении многих лет читался достаточно слабо, хотя, несмотря на это, страшеклассники брали призовые места на области. Не имея возможности и желания брать на себя общеобразовательный курс информатики, я поставил своей целью создать спецкурс для 9-11 классов, который мог бы удовлетворить интерес одаренных школьников к информатике и подговить их к дальнейшему получению профессии, связанной с программированием. Директор лицея Н.В. Панюшкина дала согласие на эксперимент, и в течение 2004-2005 учебного года я вел занятия по программированию для группы из 10 школьников 9-11 классов. Содержание и композицию курса пришлось подбирать методом проб и ошибок. Сейчас, по окончании учебного года, уже можно подвести некоторые итоги и сделать выводы.

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

Моим глубоким убеждением является то, что преподавание любого предмета необходимо строить от основ, от общего к конкретному, а не наоборот. Поэтому я отношусь неодобрительно к попыткам "облегчить" школьный курс исключением "сложных вещей" и добавлением на их место "практически полезных навыков". Любой курс программирования, построенный по принципу "для чайников", облегчая первое знакомство с предметом, на порядок затрудняет серьезное его освоение, по сути, обрекает учащегося оставаться этим самым "чайником". Примером является курс Угриновича, построенный на использовании среды Visual Basic. В этом курсе основной акцент сделан на построении визуальных интерфейсов в среде быстрой разработки. Однако, чтобы эффективно использовать такие среды, необходимо знать хотя бы основы теории, такие, как принципы ООП. Понять суть, преимущества и недостатки ООП невозможно без знакомства со структурным императивным подходом и хотя бы небольшого опыта в написании программ "старыми" методами. Изучение же ООП по языку, который реализует его крайне неполноценно и при этом стимулирует написание программ, нарушающих основные структурные принципы, представляется большой ошибкой. Алгоритмика же в подобных курсах почти не представлена, то есть, программирование сводится к созданию интерактивной графики. Хотя бы начального понимания того, как технически поддерживается GUI, и какие уровни абстракции от оборудования были выстроены для того, чтобы сделать возможным "программирование для чайников", здесь также не прививается.

Альтернативой "легкому" могли стать два пути: технический и абстрактный. В первом случае можно идти от оборудования, поэтапно показывая, как слои абстракции позволяют решать с помощью компьютера все более сложные задачи. Второй путь делает ставку на использование абстракций языков высокого уровня для решения прикладных задач (например, из области математики, физики), учит использовать компьютер в качестве инструмента познания, вскрывает связи информатики с математикой и естественными науками. У каждого пути есть свои преимущества. Мною был выбран первый путь, во многом из-за того, что сам я по складу больше инженер, нежели математик, и занимался разработкой в основном системного ПО. Замечу, что после долгого использования Delphi я перешел на С++, и он некоторое время казался мне удачным и удобным для использования. Однако знакомство с такими языками, как Ada и Oberon, радикально изменило мои предпочтения.

В качестве языка программирования использовался Borland Pascal 7.0, которому долгое время практически не было альтернативы. Курс включил в себя основательное изучение архитектуры IBM PC и ее программирования в реальном режиме. При знакомстве со структурами данных акцент, с одной стороны, делался на их абстрактном смысле, с другой - на их физическом представлении в памяти. Понимание того, что прежде чем учить принудительно нарушать типизацию, полагаясь на особенности архитектуры, следует научить ее правильно использовать, пришло ко мне не сразу. Изучение таких рудиментов, как программирование клавиатуры и экрана через BIOS, теперь уже представляется совершенно излишним, хотя на этом была построена значительная часть практикума, завершавшегося созданием игры "тетрис". Тем не менее, широкому набору алгоритмов сортировки, конечным автоматам как механизму разбора строк, работе с динамическими структурами было уделено внимание. Однако сочетать в рамках спецкурса науку и технику без ущерба для обоих оказалось невозможным. Тем более, стало ясным, что технические нюансы способными школьниками воспринимаются достаточно легко и, несомненно, могут быть освоены при необходимости самостоятельно, а вот теория вызывает либо трудности, либо нежелание ей следовать.

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

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

На 2005-2006 учебный год мною поставлена цель апробировать среду в школьном образовании и создать полноценный курс "Современное программирование и дискретная математика для школьников". Вторая составляющая курса даст не только теоретическое понимание многих проблем, встающих перед программистом, но и алгоритмические задачи для обучения программированию на языке высокого уровня. Планируется включить разделы математической логики, комбинаторики и теории графов. Следует отметить, что решение многих задач, требующих динамического распределения памяти, в BlackBox значительно облегчается наличием автоматического сборщика мусора.

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

Я полностью уверен в том, что BlackBox в совокупности с другими Oberon-системами, в частности, компиляторами новосибирской фирмы Excelsior, способны стать базой как для среднего и высшего образования, так и для национальной программной индустрии.

20 августа 2005 г.

Главная страница проекта ИНФОРМАТИКА-21

Наука Школе