3.ПРАКТИКА / SEM4 / literatura / ИНФО_№11_2002(Кудинова)
.docИнформатика и образование, № 11-2002, с.37-41
В. И. Кудинова,
учитель информатики высшей категории гимназии № 91 г. Железногорска
О ПОЛЬЗЕ ПРОГРАММИРОВАНИЯ ДЛЯ ШКОЛЬНИКОВ
Роль курса информатики в школьной программе точных наук
25-летний общий стаж работы в области прикладной информатики, в том числе 8-летний опыт работы в школе, позволил автору определить ролевые особенности школьного курса информатики следующим образом.
С одной стороны, как любая другая учебная дисциплина, курс информатики дает учащимся очень важный в современных условиях блок знаний, навыков и умений, которые многим выпускникам школ могут практически пригодиться в жизни. То есть информатика в первом приближении выполняет такую же утилитарную миссию, как, например, не только точные науки, но и биология, география и многие другие дисциплины, без овладения которыми трудно быть культурным человеком и вообще полноценным членом общества.
С другой стороны, информатика (как школьная дисциплина) обладает еще одним особым качеством и в силу этого выполняет еще одну миссию. Вне зависимости от того, какой багаж знаний она несет, она дает учащимся замечательную возможность. Эта возможность заключается в том, что благодаря информатике учащиеся разных возрастов, наряду с естественным взрослением и работой по освоению различных дисциплин, получают уникальную («междисциплинарную» или даже «наддисциплинарную>> по природе) возможность постепенно, поэтапно, соразмерно возрасту, развивать свои творческие способности в целом и творческие способности в области точных наук особенно. Иначе говоря, информатика является не только наукой или учебной дисциплиной в ее обычном понимании, но и средством развития личности, способностей детей, пробуждает интеллектуальные задатки освоения других дисциплин, т.е. обслуживает весь процесс развития личности и овладения смежными дисциплинами, помогает и школьнику, и всем учителям.
Место программирования в курсе информатики
Научить детей использовать готовые программы, как показывает мой опыт преподавания, проще, чем научить их разрабатывать свои алгоритмы решения задач, составлять и отлаживать программы. Однако и мой личный многолетний опыт работы в гимназии, и общие тенденции развития информатики и других дисциплин в отечественных школах указывают на то, что идти по простому пути в данном вопросе не самое лучшее решение. Если уж термин «программирование» все чаще используется в самых различных методиках освоения многих дисциплин, весьма далеких от блока точных наук (например, говорят о «программировании» в новейших областях биологии, в экономике, психологии, политологии, социологии, маркетинге, связях с общественностью и т. д.), то в применении к общению ребенка с компьютером говорить о программировании тем более важно и нужно. Здесь программирование впервые в жизни ребенка и в самом наглядном «рафинированном» виде позволяет ему выйти на высокий уровень развития своих интеллектуальных качеств, игровых контактов с внешним «субъектом» (компьютером, вобравшим в себя огромные по объему и чрезвычайно сжатые, «сконденсированные»результаты интеллектуального труда огромного числа людей). Поэтому, на наш взгляд, использовать уроки информатики только лишь для тривиального «напичкивания» знаниями и «натаскивания» на рутинные манипуляции с клавишами — значит вместо творческого обогащения учащихся лишь усугублять извечную школьную проблему перегруженности программ, детей и учителей.
Что дает программирование детям
О пользе программирования для школьников можно говорить как минимум в двух аспектах: лингвистическом и алгоритмическом.
Изучая программирование, ученики лучше понимают сущность работы компьютеров, их возможности и границы их применения. Написав однажды свои собственные (пусть даже незамысловатые, по работающие) программы, ученики обнаруживают, что компьютеры совсем не похожи на волшебные всемогущие машины, описанные в научно-фантастических рассказах. К детям приходит понимание того, что компьютер является инструментом, которым должны управлять люди. Только немногие школьники станут профессиональными программистами, или будут иногда программировать на работе, или сделают программирование своим хобби, но все выиграют от того, что постигли природу программирования и поняли, что значит создавать собственные программы.
Программирование помогает школьникам прочувствовать на собственном опыте (в интеллектуальной игре, осуществляемой по особым правилам) и пройти все основные этапы формализованного решения некоей творческой, точно сформулированной задачи. Это дает необычайно сильный толчок для развития интеллекта в целом и одновременно придает благоприятную эмоциональную окраску работе. Всем учащимся, без исключения, это помогает развивать навыки мышления и решения задач, а также выработать привычку аккуратной и систематической работы, а одаренным детям (прежде всего в области точных наук) еще и дает так необходимую им новую пищу для размышлений, поисков, раскрепощения скрытых способностей. Формируемое при этом алгоритмическое мышление ценно само по себе. Методы, которые дети освоят на уроках программирования, обязательно будут использоваться позднее при решении самых различных «взрослых» жизненных и профессиональных задач. Возможно, это проявится неосознанно и через много лет после окончания школьного курса информатики, однако и ради этого стоит учить программированию.
Как правило, ученикам нравится управлять работой компьютера при помощи собственных программ. Программирование для некоторых детей становится любимым занятием как в школе, так и дома. Часто можно услышать от детей: «Это почти волшебство — заставлять компьютер делать то, что трудно сделать вручную». «Мне пришлось собрать воедино свою волю и преодолеть собственные слабости, но я смог добиться того, что компьютер сделал то, что мне требовалось».
Какой язык программирования выбрать
Критерии выбора языка программирования.
Надо заранее оговориться, что, в отличие от естественных языков общения народов и наций, один язык программирования лишь в редких случаях удовлетворяет даже полупрофессионального программиста длительное время (тем более всю жизнь), т. е. программисты-профессионалы, как правило, вынуждены быть «полиглотами», последовательно осваивающими ряд новых языков. Надо признать, что в профессиональном программировании многоязычие — дело естественное и неизбежное. Однако для большинства учащихся в школе вполне достаточно освоить хотя бы один язык программирования.
В [1] предлагаются следующие критерии выбора языка программирования:
-
простота на начальной стадии изучения, чтобы дети могли сразу начать писать и отлаживать простые программы. Важно заинтересовать детей и рассеять сомнения по поводу их способностей к программированию;
-
близость концепции языка к образу мышления детей, язык должен содержать команды для работы с изображениями и словами, которые достаточно просты для детей;
-
развитие у детей грамотных методов программирования и решения задач, обеспечение солидной основы для изучения других языков программирования;
-
распространенность, наличие транслятора с языка на различных моделях персональных компьютеров, особенно в виде бесплатных версий. Это важно, так как в настоящее время многие ученики хотят учиться программированию дома, на имеющихся у них компьютерах.
Собственный опыт подсказывает нам, что в реальной школьной практике для достижения цели развития творческих способностей детей на выбор языков существенное влияние оказывают и другие критерии.
Из всей массы языков программирования сразу можно выделить четыре, разработанные специально для целей первоначального (ознакомительного) обучения программированию. Многие другие языки прежде всего предназначены для использования в определенных профессиональных областях.
Бейсик был создан в начале 60-х гг. Д. Кенеми и Т. Куртцом как язык для начинающих. В конце 60-х гг. С. Пейперт разработал язык Лого, который удобен для начинающих в области искусственного интеллекта. В начале 70-х гг. Н. Виртом был создан специальный язык программирования для обучения студентов программированию — Паскаль. При введении в школах СССР курса «Основы информатики и вычислительной техники» в конце 80-х гг. в был создан язык КуМир [2, 3].
Поскольку имеются различные версии языков программирования, далее мы будем говорить о полных и современных версиях языков. Так, говоря о языке Бейсик, автор имеет в виду не QWBasic [4] (первое поколение языка), в котором необходимо нумеровать строки, имеющий устаревший пользовательский интерфейс, а вполне современные версии: QuickBasic, QBasic (широко распространена русифицированная версия), Basic PSD — второе поколение языка, а также VisualBasic — третье поколение языка [5, 6]. Все эти версии языка Бейсик разработаны фирмой Microsoft. Еще есть Turbo Basic фирмы Borland. Говоря о языке Лого, будем иметь в виду наиболее полные версии языка. В настоящее время существует уже несколько русифицированных версий — LogoWriter [7J и MSWLogo (ЛогоМиры).
Язык Паскаль [8, 9] для начального обучения программированию в V — VII и даже в VIII — IX классах, на наш взгляд, совсем не годится, так как в нем сложно работать с графикой, а начинать знакомить с таким понятием, как «цикл», стоит именно с графики. Это ярко, это наглядно, это более близко и понятно детям.
Вернемся к нашим критериям выбора языка. По первому критерию — простоте написания несложных программ на начальной стадии — стоит выделить языки Бейсик и Лого. Оба этих языка позволяют учащимся без труда ввести программу, сразу ее выполнить и при необходимости исправить.
По второму критерию определенные преимущества имеет язык Лого, так как он совместим со способом мышления детей. Черепашья графика является блестящим средством обучения детей программированию. Команды, даваемые черепашке, отражают действия, которые дети могут выполнить сами. Ребенок, наблюдая собственные движения при рисовании той или иной фигуры, может потом сообщить черепашке, какие перемещения ей надо сделать, чтобы получить такую же фигуру. Графические же операторы языка Бейсик требуют понимания системы прямоугольных координат и не отражают процессов рисования или движения, необходимых для построения заданной фигуры.
Третьему критерию, на мой взгляд, больше удовлетворяет язык Бейсик. Все рассматриваемые нами языки, на наш взгляд, обучают структурному программированию. Для структурированной программы характерны более высокая вероятность правильной работы и большая простота изменения и расширения, чем для программы, не имеющей модульной структуры. Структурированную программу легко прочесть и понять. Если считать, что в этой части рассматриваемые языки равны, то для перехода к изучению других языков программирования, на мой взгляд, больше готовит язык Бейсик. Он близок к такому классическому структурированному языку, как Паскаль. В Бейсике и Паскале практически совпадают конструкции ветвления, цикла; при работе с графикой в обоих языках используется система прямоугольных координат, но в Паскале работа с графикой гораздо сложнее. В этих языках используются одни те же англоязычные ключевые слова. КуМир по структуре и содержанию также близок к языку Паскаль. Его полная русификация на первом этапе обучения программированию является явно большим плюсом. Но при переходе к другим языкам программирования, мне кажется, этот плюс может обернуться минусом.
По последнему, четвертому критерию язык Бейсик имеет явное преимущество. Бейсик — стандартный язык и ранее поставлялся с большинством персональных компьютеров, включая самые дешевые, он входил в состав операционной системы MS-DOS. Для сравнения отметим, что, например, среду программирования КуМир надо покупать. На наш взгляд, до сих пор существует мало литературы по языку Лого.
Учитывая, что в школах города не хватает финансирования, в них этот язык не используется. На домашних ПК он тоже отсутствует.
Большим достоинством языка Лого в сравнении с Бейсиком является возможность легкого и быстрого создания программ с анимационными (мультипликационными) эффектами с помощью предусмотренных в языке форм черепашки [7]. Формы молено редактировать, поворачивать, создавать новые. В Бейсике все это тоже возможно, но более трудоемко, там нет встроенных заготовок форм. QuickBasic позволяет использовать рисунки, созданные в графических пакетах. Для этого надо подключить специализированные библиотеки.
Учащимся V — VII классов свойственна конструкторская деятельность. На поддержку этой деятельности и направлена работа с формами в языке Лого. Однако развитие конструкторской деятельности учащихся можно осуществлять в широко распространенных сейчас специализированных анимационных пакетах.
А теперь отметим преимущества языка Бейсик в сравнении с Лого.
Дети, изучившие язык Бейсик, легко осваивают другие языки программирования. Так, из своего многолетнего опыта могу сказать, что на факультативных занятиях в VII — VIII классах дети, изучавшие Бейсик в V — VII классах, без каких-либо проблем осваивают Паскаль. Язык Лого более далек от профессиональных языков программирования, чем Бейсик.
Мне было интересно узнать на конференции в Красноярской академии цветных металлов и золота, что большинство студентов четвертого курса, разрабатывая программы к своим курсовым работам, использовали язык Бейсик, хотя в академии на первых курсах им преподавали Паскаль. Это говорит о том, что возможностей языка Бейсик достаточно для решения учебных задач в школе и многих задач, рассматриваемых в институтах, а также, что он легко не только осваивается, но и вспоминается. Ведь всем известно, что любой язык, в том числе и язык программирования, быстро забывается, если им не пользуешься.
Возможностей языка Бейсик достаточно и для решения олимпиадных задач по программированию. Один из моих учеников, приверженец языка Бейсик, даже на всероссийской олимпиаде по программированию использовал этот язык. Хотя для участия во многих дистанционных олимпиадах выставляется требование, не совсем мне понятное, — язык программирования Паскаль или Си. Должна сознаться, что я сама, решая олимпиадную задачу, обычно делаю это на Бейсике, а потом перевожу на Паскаль. На Бейсике, как правило, все эти задачи решаются быстрее1.
Дальнейшим развитием языка Бейсик является Visual Basic, который реализует современные идеи событийно-управляемого и визуального программирования. В значительной степени он обеспечивает совместимость версий языка Бейсик «снизу вверх», что облегчает людям, работавшим в среде QuickBasic или QBasic, освоение Visual Basic. Фирма Microsoft поддерживает и развивает Visual Basic как одну из своих основных систем программирования. Именно эта система используется для создания программных модулей в MS Access и MS Excel.
И еще приятная мелочь. Управляющие клавиши, используемые в Бейсике, приняты и в стандартизованных Windows-программах, что подготавливает к работе в Windows (Alt — выход в меню программы, Ctrl + Insert — копировать в буфер, Shift + Insert — вставить из буфера и т. д.).
Если выбор сделан в пользу языка Бейсик и изучение программирования начинается в V классе, то для лучшего восприятия языка стоит поработать перед этим в обучающей среде типа «Кенгуренок», «Кукарача» или «Муравей» [10 — 12]. Лично мне нравится «Кенгуренок». В этой среде детям легко составлять программы, так как все ключевые слова языка программирования реализуются с помощью функциональных клавиш. Работая в обучающей среде, дети знакомятся с такими понятиями, как «программа», «процедура», «ветвление», «цикл» и т. д. Перейдя к программированию на языке Бейсик, они закрепят эти понятия.
Выводы
-
Для начального обучения программированию в V — VII классах можно использовать языки Лого и Бейсик. Каждый из них имеет свои преимущества, но Бейсик закладывает лучшую базу для изучения в дальнейшем других языков программирования.
-
Язык Паскаль можно изучать в школе на факультативных занятиях с интересующимися программированием детьми или в старших классах с углубленным изучением информатики.
Литература
-
Клейман Г. М. Школы будущего: компьютеры в процессе обучения. М.: Радио и связь. 1987.
-
Зайдельман Я. Н. Буки программирования. Дистанционный курс. Роботландский университет, 1999 — 2000.
-
Кушниренко А. Г., Лебедев Г. В., Сворень Р. А. Основы информатики и вычислительной техники. М.: Просвещение, 1990.
-
Коляда М. Г. Окно в удивительный мир информатики: Учебное пособие. Донецк: Сталкер, 1999.
-
Зельднер Г. А. Программируем на языке QuickBasic 4.5: Учебное пособие по курсам «Информатика и вычислительная техника», «Основы программирования». М.: ABF, 1996.
-
Михайлов В. Ю., Степанников В. М. Современный Бейсик для IBM PC. Среда, язык, программирование. М.: Изд-во МАИ, 1993.
-
Юдина А. Г. Практикум по информатике в среде LogoWriter: Пособие для учащихся общеобразовательных школ. М.: Мнемозина, 1999.
-
Зуев Е. А. Программирование на языке Turbo Pascal 6.0, 7.0. М.: Радио и связь, Веста, 1993.
9. Горст ко А. Б., Чердынцева М. И. Информатика для школьников и всех-всех-всех: Учебное пособие для учащихся средних школ, лицеев, гимназий. Ростов н/Д.: Феникс, 1997.
-
Программно-методический комплекс №1 по курсу информатики. Основы алгоритмизации: Учебное пособие. М., 1993.
-
Гутман, Г. Н., Карпилова О. М. Муравьиные сказки. М.: Просвещение, 1993.
-
Программно-методический комплекс по начальной школе «Роботландия». М.: Алгоритмы и программы, 1993.
-
Программно-методические материалы. Информатика. 1 — 11 классы. 3-е изд., стереотип. М.: Дрофа, 2000.
-
Оценка качества подготовки выпускников основной школы. По информатике. М.: Дрофа, 2000.
-
Программирование: вводный курс /Под ред. Д. Школьника. М.: МЦНМО, 1995.
-
Болотова Н. В., Кузнецов Е. В. Я и черепашка. Первые уроки программирования. Красноярск: Изд-во Красноярского ун-та, 1992.
17. Филичев С. В. Информатика — это просто. М.: ЭКОМ, 1999.
1 Basic - признанный лидер по скорости разработки и отладки программ [5].