К вопросу об обучении программированию в основной и средней школе

К вопросу об обучении программированию в основной и средней школе

Л.В. Савкина, МБОУ «Головчинская СОШ с УИОП» Грайворонского района Белгородской области, замдиректора по ИКТ, учитель информатики, golovchino1@yandex. ru

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

Одним из наиболее интересных, на мой взгляд, вопросов, требующих особого внимания в обучении информатике и ИКТ, является вопрос о системе обучения программированию. В рамках часов, отводимых Примерной программой в базовом курсе информатики и ИКТ на алгоритмизацию и программирование, овладение даже основами программирования представляется весьма сложным. С одной стороны, активно развивающиеся информационные технологии «выталкивают» программирование. Но с другой стороны, ЕГЭ, ГИА, олимпиады, различные конкурсы предусматривают наличие у учащихся хороших навыков формализации различных задач, уверенного владения приемами программирования. В сложившейся ситуации возникают закономерные вопросы: «Чему учить?» и «Как учить?». В этой статье я хочу рассказать о том, как мне представляется решение данной проблемы.

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

В последнее время наметилась явная тенденция перехода обучения от алгоритмических к объектно-ориентированным языкам с использованием визуальных систем программирования (Delphi, Visual Basic, Visual C++ и т.д.) [2]. И это, я считаю, совершенно оправданно. Прежде всего, программирование подразумевает написание программы, а что для учащегося означает «программа»? Ответ очевиден, программа - это то, с чем он работает на компьютере каждый день, например, текстовый процессор или Интернет- обозреватель. Т.е. для ученика программа -это приложение с графическим оконно-кнопочным интерфейсом. Зна-

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

После получения пакета программного обеспечения «Первая помощь» в 2007 году я со своими учениками перешла от изучения Turbo Pascal к Delphi. Прекрасная среда программирования, которую с увлечением приняли большинство учащихся. Однако Delphi является проприетарным программным продуктом, и 1 января 2011 года закончился срок действия его лицензии. В этих условиях, на мой взгляд, самым приемлемым переходом в изучении визуальных языков программирования стал Delphi - Lazarus.

Lazarus - мощная кроссплатформенная свободно распространяемая среда программирования, основанная на компиляторе Free Pascal. Является допустимой средой программирования при проведении олимпиады по информатике. Хорошо интегрируется с приложениями, созданными в Turbo Pascal и Delphi. Сегодня в нашей школе Lazarus успешно работает на компьютерах с различными операционными системами: Windows, Linux, iMac.

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

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

Обучение школьников основам алгоритмического мышления базируется на понятии «Исполнитель». Еще в начальной школе, выполняя задания по информатике, учащиеся вырабатывают первоначальные навыки создания и записи алгоритмов. В своей практике я использую электронные учебные пособия, разработанные компанией «Кирилл и Мефодий», «Мир информатики» и «ПервоЛого». Учащиеся 3-4 классов с большим удовольствием составляют алгоритмы (от простых линейных до циклических) для исполнителя «Транспортер» в ЭОР «Мир инфор-

матики». В инструментальной творческой среде «ПервоЛого» работают ученики постарше (5-6 классы), т.к. в ней кроме понятий «Исполнитель», «система команд Исполнителя» уже используются такие понятия, как «форма», «управляющая кнопка», «текстовое поле», «процедура». На занятиях компьютерного практикума в 7-8 классах (при наличии свободного времени) мы с учащимися возвращаемся в «Лого Миры», чтобы вспомнить и закрепить приобретенные ранее навыки.

Базовый курс программирования изучается в 9 классе. Считаю, что наиболее важно удержать интерес учащихся на первых уроках программирования. Нельзя перегружать их вводом основных понятий, разбором типов данных, объяснением структуры программы и др. На первом уроке по изучению языка программирования (не алгоритмов, а именно конкретного языка) я, как правило, знакомлю учащихся с интерфейсом визуальной системы программирования, который для них является привычным и понятным. На основе написания простейшей программы (например, сумматор 2-х чисел) осваиваем первые понятия, ввод/вывод данных, запуск программы на исполнение, сохранение проекта и т.п. Хочу отметить, что проведенная практическая работа вовсе не обеспечит прочного владения всеми рассмотренными вопросами на следующем уроке. Но зато у учеников появляется «почва под ногами». И так по нарастающей, применяя навыки из предыдущей темы, усложняем задачу. Еще раз отмечу, что в рамках отведенных часов на рассмотрение такой трудной темы тяжело добиться прочных знаний, умений и навыков программирования. Поэтому, на мой взгляд, большое значение имеет самостоятельная работа учащихся по освоению материала. И выполнение домашнего задания - главное в достижении целей обучения. В этих условиях СПО Lazarus оказывается хорошим подспорьем. Я стараюсь добиться, чтобы мои ученики установили Lazarus на компьютерах у себя дома, а в качестве домашнего задания принесли (прислали по e-mail) созданный в системе программирования проект. Если проект работает - большая удача, но, как правило, первые шаги учащихся содержат много ошибок. На начальном этапе это простые синтаксические ошибки (забыл поставить «;», неправильно написал оператор и т.п.). Мотивированные учащиеся очень быстро их замечают и самостоятельно исправляют. При написании более сложных программ я также направляю учащихся на самостоятельное нахождение и исправление ошибки, например, обратить внимание, корректно ли составлено условие или организован цикл, правильно ли выбран тип данных и т.п.

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

веду элективные курсы «Основы программирования», «Информационные системы и модели». Они развивают фундаментальную составляющую школьного базового курса информатики. Можно сказать, что курсы такого типа имеют предвузовский характер, развивают научные интересы учащихся, предоставляют возможность испытать себя в способности к самообучению, к решению нетривиальных задач [3]. На протяжении 3-х лет я веду кружок «Юный программист», где наиболее заинтересованные учащиеся постигают «изюминки» программирования.

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

И последнее, о чем мне бы хотелось сказать, это - олимпиада по информатике. Все мы знаем, что это олимпиада по программированию. На протяжении последних лет олимпиада по информатике как муниципального, так и регионального уровней является самой малочисленной по количеству учащихся. У меня таких ребят тоже не много. Как правило, подготовкой к олимпиадам я занимаюсь с 1-2 учениками в текущем году. Опыт показывает, что эффективно проходит подготовка к олимпиаде только с учащимися, у которых достаточный уровень логического мышления, хорошая математическая подготовка, а также немаловажную роль играют трудолюбие и целеустремленность самого школьника. Задача учителя - вовремя увидеть способного ученика, убедить и заинтересовать его систематически заниматься программированием. Большую роль здесь играет соревновательная практика. В настоящее время регулярно проводятся Интернет-олимпиады по программированию среди школьников. Это наиболее доступная форма соревнований. В прошедшем учебном году 2 моих ученика принимали участие в турнире по программированию, организованном Чувашской академией информатизации образования (она же проводит Всероссийскую игру-конкурс по информатике «Инфознайка»). Турнир проходил в on-line режиме, выполненные задания принимала программа - тестировщик. Ребята получили неоценимый опыт написания и отладки программ.

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

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

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

Литература

1. Нельзина О.В. Проблемы обучения программированию по курсу информатики в системе «школа-вуз» // Вопросы Интернет -образования. - 2006. - №13.

2. Открытый каталог научных конференций, выставок, семинаров [Электронный ресурс]: Всероссийская научно-практическая конференция «Актуальные проблемы математики, физики, информатики в вузе и школе. - Режим доступа: http://www.konferencii.ru/info/id/50233, свободный.- Загл. с экрана.

3. Семакин И.Г. Информационные системы и модели. Элективный курс: Практикум/ И.Г. Семакин, Е.К. Хеннер. - М.: БИНОМ. Лаборатория знаний, 2006.