В этой статье поставлена цель проанализировать роль программирования в процессе обучения школьников его основам, а также какие виды мышления оно наиболее активно развивает.
Работая много лет преподавателем математики и информатики, в течение последних 25 лет я наблюдала и анализировала ситуацию в этом направлении. Мною были опубликованы на эту тему множество статей для научных конференций в РГЭУ «РИНХ» и для научно-культурологического журнала, на сайте которого я публиковалась с 2005 года по 2013 годы. Две из них такого плана статей находятся на сайте Relga.ru ( см: [1], [2]).
В данной статье необходимо разобраться, какие же типы мышления развивает обучение написанию простейших алгоритмов и программ? Здесь предстоит найти ответы на многие интересующие психологов и педагогов вопросы о том, какая польза может быть извлечена из таких занятий для дальнейшего процесса совершенствования личности и ее адаптации в современном обществе.
Сегодня в педагогике и в методике преподавания информатики часто звучит термин «алгоритмическое мышление». Но что именно под ним подразумевается не всегда и не каждый понимает. Термины и определения надо произносить и использовать в речи, понимая их глубокий смысл.
В целом, если кратко сформулировать, алгоритмическое мышление представляет собой набор определенных последовательностей действий, которые, вместе с логическим и образным мышлением, увеличивает интеллектуальные способности человека и его творческий потенциал.
Алгоритмическое мышление – это совокупность мыслительных действий и приемов, нацеленных на решение задач, в результате которых создается алгоритм, являющийся специфическим продуктом человеческой деятельности. Логическое мышление, в свою очередь, это вид мыслительного процесса, в котором используются логические конструкции и готовые понятия. Соответственно, абстрактно – логическое мышление – это особый вид мыслительного процесса, который заключается в использовании символичных понятий и логических конструкций. Системное или систематическое мышление — это тот тип рассуждений, который возникает в системе, образованной различными подсистемами или взаимосвязанными факторами.
Рис.1. При изучении программирования происходит подмена целей (изучить не конкретные операторы языка, а в целом принципы программирования)
Суть основной школьной проблемы заключалась в тенденции понижения роли алгоритмизации и программирования в современном курсе информатики. Благодаря обязательному минимуму содержания предмета «Информатика» на этапе базового курса (7-9 классы) язык программирования изучается на уровне ознакомления с основными алгоритмическими структурами. На следующем же этапе (10-11 классы) профильного курса, учитывающего специфику учебного заведения, этот раздел может быть развернут в зависимости от его специализации до уровня изучения элементов объектно-ориентированного программирования.
Но большая часть учителей информатики не является программистами. Это или выпускники конкретно информационных технологий, знающие один из современных языков, который не изучается в школе (например, Pyton, C++ и др.) или совместители-математики, которые не имеют той широты практических умений и знаний тонкостей, необходимых в этой области. Зачастую у них не хватает опыта в программировании, просто они математики, у них хорошо развита логика, настоящие же программисты на преподавание не идут, так как зарплата в этой сфере, и это всем известно, в разы больше.
Курс информатики, который еще с конца XX века был «разбавлен» изучением вопросов пользовательской грамотности, построен отнюдь не на изучении алгоритмов, а посвящен законам логики, изучению операционной системы, офисных программ, архиваторов, антивирусов и т.д. Всего понемногу, так сказать, для общего развития.
На мой взгляд, в школе следует ввести два предмета: один – общая информатика (пользовательский уровень без программирования) для тех, кому этого достаточно в дальнейшем, а второй курс – основы программирования на одном из современных языков, а не на Бейсике, от которого, наконец, отказались. И этот предмет нужно назвать «Информационные технологии и программирование», он должен обязательно присутствовать именно в школе, лицее и колледже, закладывая основные принципы и понимание как на основе основных типов алгоритмов создаются важные прикладные программы. В каком объеме и как его давать – решает учебное заведение в соотношении с профилем его и специализацией.
В российской школе математика издавна делится на алгебру и геометрию, после 6 класса. Химия также перетекает из неорганической в органическую. Аналогично и после 9 класса у школьников, когда они приобрели уже достаточно знаний, чтобы начать писать программы на основе алгоритмов, курс надо расширить. А на эти цели в программе информатики отведено очень мало часов.
Школьный курс информатики нужно серьезно расширять, так как уже сформировалось множество направлений в программировании: визуализированное (объектно-ориентированное), веб-программирование сайтов, анимация, программирование мобильных приложений. Конечно же на уроки информатики стоит приглашать интересных разработчиков – программистов из этих направлений, либо экскурсии проводить на таких предприятиях.
Между тем эта ситуация, о которой идет речь грозит тем, что:
— учащиеся не развивают на уроках информатики те виды мышления, о которых говорилось здесь выше;
— разработка программы предполагает построение модели, а значит, о моделировании как таковом будущий студент не имеет понятия и не владеет опытом построения таких моделей;
— блочное построение алгоритма (связь алгоритма из нескольких модулей) обычно не показывают на уроках информатики.
Этот список можно продолжать. И ведь здесь очевидно, что алгоритмическое мышление, как таковое, не развивается. На офисных задачах (набор текста, поиск вирусов, архивация, автозаполнение ячеек в электронных таблицах и т.д.) его не разовьешь. А ведь именно его развитие поможет школьнику:
— ставить цели в жизни и эффективно достигать их
— разбивать задачи на подзадачи.
А креативное мышление?
Элементы проектирования и визуализации объектов сайта позволяют составлять композиции, сочетать цвета, вырабатывают эстетический вкус. Конечно же эти навыки частично можно получить и при создании презентации, но опыт показывает, что хорошие презентации с подбором фона и цвета, а также правильного создания акцента на главную мысль слайда, удается далеко не каждому школьнику.
Велика также степень интеграции информатики с другими науками и при развитии современного образования весьма ощутима уже на начальном изучении этого предмета в средней школе. Некоторые действия с учебной информацией, имеющие рутинный характер (например, утомительные вычисления, коррекция ошибок, графические построения вручную), уже на стадии школьного обучения кажутся нерациональными, поскольку перед учащимся – экран компьютера. Очевидно, что необходимо при выпуске из школы иметь эти навыки создания программ, автоматизирующих деятельность человека. Ведь многие из выпускников попадут именно в сферу специальностей так или иначе связанным с проблемой автоматизации рутинных процессов и технологий. Мы живем в информационном обществе и большая часть специальностей сместилась в этом прогрессивном направлении.
Еще одна проблема информатики – унификация требований. Изучаются разные языки программирования. Нет единых требований для каждого уровня.
Какой язык программирования должен изучаться? Одни школы, как известно, еще изучают Паскаль, а другие уже перешли на Pyton.
В материалах ОГЭ и ЕГЭ по информатике даются алгоритмы на четырех языках : алгоритмический, Бейсик, Паскаль и Pyton. Но ведь такого разброса нет ни в одном предмете, изучаемом в школе. В физике четко прописаны все единицы в Международной системе СИ. В химии – весь мир изучает Периодическую систему Д.И.Менделеева. И в каких же неравных условиях оказались школьники на олимпиадах и конкурсах, на экзаменах?
Таким образом, мы видим, что сокращение изучения темы «Алгоритмизация и программирование» и подмену ее сплошными «пользовательскими навыками» очень навредит нынешнему школьнику и будущему студенту в дальнейшем тем, что он не сможет строить модели, у него не развивается логическое мышление на том уровне, который необходим. Этот выпускник просто будет не способен освоить программу вуза в полном объеме. В приоритете в вузе все же программирование, а именно знание языков для написания программ. И каково же студенту, пришедшему в вуз и неподготовленному совершенно в плане простейших навыков программирования?
Поэтому этот разрыв в образовании своего чада начинают компенсировать родители. В том, что недоучили, недодали на уроках информатики. Они нанимают им частных репетиторов. Не все же родители умеют писать программы, редко у кого родители программисты, и они простейшие программы им помочь не смогут. Еще одна проблема – как связать требования вуза с уровнем информатики в школах?
Именно на первом (базовом) этапе изучения информатики в школе в старших классах однозначно, нужно заложить наряду с пользовательскими навыками набора текста, расчетов в электронной таблице, оформления презентации и т.д. опыт составления алгоритмов, построение алгоритма, модели и составления программного модуля с умением отладить его и довести до рабочего состояния.
Можно возразить: а разве математика не развивает эти навыки, не развивает логическое мышление? Зачем информатикам эти проблемы брать на себя? Частично это так, но только частично, ибо одной математике, поверьте, трудно справиться. Ведь на уроках математики каждый школьник не имеет компьютера и его задача делать всё вручную, чертить, решать, анализировать… Математика этому не должна учить, она развивает аналитическое мышление и логику в доказательствах теорем и задач. Так что автоматизация рутинных операций – это прерогатива информатики.
Сказанное выше – не одна проблема, как видно из анализа ситуации, а целая цепочка взаимосвязанных проблем. Здесь много вопросов. Почему 20 лет назад было принято решение сократить часы на алгоритмизацию и подменить их на совершенно не стоящие этого пользовательские навыки? Таким образом, стали готовить пользователей, а для чего тогда справочная система, заложенная в них производителями? Ведь их школьнику, давно знакомому со смартфоном, не проблема освоить. А ведь самые серьезные информационные технологии лежат в основе программирования. И их утеряли целые поколения школьников.
Предложения:
1) Создать ступенчатое изучение информатики и информационных технологий в программировании на разных уровнях и с постепенным усложнением.
2) 5-7 класс – начальный, 1-й уровень (основы в информатике, анимация и «игровое» программирование.
3) 8-9 класс – средний уровень (алгоритмические конструкции цикл ветвление + сложные офисные программы- базы данных, ЭТ).
4) 10-11 класс – высший уровень (сетевые технологии, см.рис. 2).
Рис.2. Схема передачи знаний от одного этапа другому (1 уровень – 5-7 класс, 2 уровень – 8-9 класс, 3 уровень- 10-11 класс), опыт и знания предыдущего уровня помогают крутить «механизм» следующего уровня
Табл.1. Уровни изучения «Информатики»и «Основ ИТ программирования»
|
Предмет |
Цель |
Предмет |
Цель |
5-7 класс |
Информатика |
Основные понятия, технологии, классификации понятий
|
ИТ в программировании |
Элементы программирования с элементами визуализации |
8-9 класс |
Информатика |
Базы данных – связи между БД в СУБД, Электронные таблицы – логические задачи в ЭТ, презентации
|
ИТ в программировании |
Базовый язык программирования, изучение всех основных операторов языка и составление программ вплоть до массивов одномерных и двумерных, модульная система файлов. |
10-11 класс |
Информатика |
Сети Локальные, глобальные, системные программы и оболочки, архивация, вирусы и антивирусы |
ИТ в программировании |
Элементы веб-программирования (см.рис5,6,7,8), Оформление и дизайн веб-страниц, объектно-ориентированное программирование, проектная деятельность с итоговым презентованием макета своего сайта |
Заключения и выводы:
1. Программирование и компьютерное моделирование — неотъемлемые компоненты средств обучения на всех уровнях современного образования независимо от типа учебного заведения. Только сложность решаемых задач должна различаться.
2. Создатели этой идеи сокращения количества часов в этом направлении в корне не правы, и нужно очень спешить, так как поколение за поколением уже более двадцати лет лишено на самом деле качественного обучения предмету. Ведь наши специалисты-программисты очень ценятся на Западе , если сравнивать по уровню заработной платы.
3. Упоминаемая мной часть предмета является наиболее сложной, но и более полезной. И здесь открывается огромное поле для работы в методическом плане. Как преподнести так, чтобы появился интерес, и было не сложно? Над этим также стоит подумать. Это общая проблема, так как в любой области знаний такие темы есть и творчески работающие учителя стараются ее решить. В этом и состоит один из аспектов педагогического мастерства.
4. Зачастую процесс преподавания программирования, если даже он ведется в расширенном варианте, построен на системе программирования Qbasic, которая считается наиболее легкой, но она позволяет с большим трудом перейти на более современные языки программирования. Очень недальновидное решение было перейти на этот язык на мой взгляд, так как этот язык был примитивным и самым простым, что и обусловило выбор. Но ведь прошло столько времени с начала введения в школьный курс информатики. Поэтому возникает сегодня проблема выбора унифицированной системы программирования, которая не особо сложна и позволяет методически ее выстроить процесс обучения так, чтобы все школы были в равных условиях при условии единых требований к предмету.
5. Учебники общей информатики также составлены в сторону преобладания задач оттачивания пользовательских навыков. Когда-то вначале это было актуально, но это же не так сложно освоить эти технические навыки и на них, согласно моему мнению, тратится очень много часов.
Рис.3. Игровые технологии на уроках информатики
Рис.4. Педагогические технологии, которые можно использовать на уроках информатики и программирования
Мною также были созданы пошаговые презентации. Они помогают школьнику разобраться индивидуально в своем режиме скорости с конкретной технологией. На рис.5,6,7 и 8 некоторые слайды одной из презентаций.
Рис.5. Презентация создания на уроке информатики простейшего сайта из нескольких страниц с гипертекстовыми переходами.
Рис.6. Примерный вид главной веб-страницы
Рис.7. Веб-страница сайта со встроенными гиперссылками
Рис.8. Код страницы и его видимая часть
И уже после такой практической работы по созданию мини-сайта, можно давать задание по собственной теме сделать нечто аналогичное из 4-5 страниц.
Лучше прописывать код страницы сайта, так как потом его можно исправить.
Есть много конструкторов сайта и школьник не сам пишет код, а программа его формирует. В этом случае школьник может столкнуться с проблемой его редактирования и дополнения.
*
Web-ресурсы статьи:
1.Нельзина О.Г. Проблемы обучения программированию по курсу информатики в системе «школа-вуз» №13 [135] 10.07.2006 [Электронный ресурс]:http://www.relga.ru/Environ/WebObjects/tgu-www.woa/wa/Main?textid=1087&level1=main&level2=articles
2. Нельзина О.Г. Использование информационных технологий в развитии творческих способностей учащихся №9 [111] 17.06.2005 [Электронный ресурс]http://www.relga.ru/Environ/WebObjects/tgu-www.woa/wa/Main?textid=542&level1=main&level2=articles
________________________
© Нельзина Ольга Геннадьевна