Условия формирования алгоритмической культуры студентов на основе информационного подхода

УСЛОВИЯ ФОРМИРОВАНИЯ АЛГОРИТМИЧЕСКОЙ КУЛЬТУРЫ СТУДЕНТОВ НА ОСНОВЕ ИНФОРМАЦИОННОГО ПОДХОДА

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

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

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

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

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

Формирование алгоритмической культуры начинается в возрасте 5—6 лет и продолжается формироваться в школе при изучении школьного курса информа-

тики и других естественно-научных и точных дисциплин. Затем в вузе при изучении курса «Языки и методы программирования» понятие «алгоритмическая культура» значительно расширяется. Если в общепринятом определении алгоритмическая культура предполагает наличие только лишь операционального и алгоритмического мышления, то для успешного освоения вузовского курса программирования необходимо развитие еще и объектного, логического и функционального стилей мышления, поскольку в настоящее время сложилось четыре парадигмы: императивная, объектно-ориентированная, логическая и функциональная, которые диктуют как подходы к разработке программ на современных языках программирования, так и методы изучения языков программирования, относящихся к различным парадигмам.

Все образовательные учреждения сегодня обучают, как правило, лишь одному из подходов к реализации алгоритмов, а будущие учителя информатики владеют одним, в лучшем случае двумя языками программирования, которые относятся лишь к одной из существующих парадигм — императивной. Это часто приводит к тому, что выбор методов и технологий решения конкретной практической задачи студентом-выпускником не зависит от типа решаемой задачи. Учитель информатики использует тот подход в программировании, которому его научили [Нигматулина, Киргизова, 2008, с. 7-9].

Проблема выбора языка и метода программирования гораздо шире, чем проблема обучения нескольким языкам программирования. Как правило, учитель информатики, зная один или два языка программирования, изучит третий лишь в том случае, если он относится к той же парадигме. Изучение языка программирования, относящегося к другой парадигме, вызывает определенный ряд сложностей, так как при переходе к программированию методами, которые относятся к другой парадигме, необходимо изменить не только подход к решению поставленной задачи, но и перестроить мыслительную деятельность относительно новой парадигмы [Нигматулина, 2009, с. 43—46].

Таким образом, для успешного освоения различных парадигм в курсе «Языки и методы программирования» и, как результат, формирования алгоритмической культуры будущих учителей информатики в полном объеме необходимо провести предварительное исследование стилей мышления, присущих каждой парадигме, путей и способов их формирования, определить критерии уровня сформи-рованности того или иного стиля мышления, провести необходимые диагностики. Под стилем мышления понимают открытую систему интеллектуальных стратегий, приемов, навыков и операций, к которой личность предрасположена в силу своих индивидуальных особенностей (от системы ценностей и мотивации до характерологических свойств). Некоторые исследователи определяют стиль мышления как систему нормативных предписаний, формирующих подход к деятельности и ее результатам [Газейкина, 2006].

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

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

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

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

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

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

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

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

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

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

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

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

Определение оптимальных условий для успешного формирования необходимых стилей мышления в программировании должно начаться с исследования процессов восприятия, так как в рамках информационного подхода к формированию алгоритмической культуры процесс обучения рассматривается как информационный процесс, связанный с восприятием, хранением, обработкой и воспроизведением информации. Только если обычно при моделировании информационных процессов все эти понятия рассматриваются применительно к техническим устройствам, при моделировании процесса обучения мы рассматриваем их применительно к человеческому мозгу [Пак, 2008, с. 26—30].

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

Остается открытым вопрос о методических условиях формирования необходимых стилей мышления. Практически во всех исследованиях предлагается изучать различные парадигмы последовательно, и исследователи спорят лишь об оптимальной последовательности их изучения. На наш взгляд, при проектировании методической системы обучения курсу «Языки и методы программирования» целесообразно предусмотреть параллельное изучение парадигм программирования. Для этого разработку системы лабораторных занятий по курсу мы основали на следующем принципе: построена система практико-ориентирован-ных задач, на каждом лабораторном занятии студентам предлагается решить

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

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

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

Библиографический список

1. Газейкина А.И. Стили мышления и обучение программированию студентов педагогического вуза. URL: http://ito.edu.ru/2006/Moscow/Lhtml

2. Нигматулина Э.А. Интеграция парадигм программирования в вузовском курсе информатики // Открытое образование: опыт, проблемы, перспективы: материалы V Всероссийской науч. конф. с межд. участием. Красноярск, 21-22 мая 2009 года / отв. ред. Н.И. Пак; ред. кол.; Краснояр. гос. пед. ун-т им. В.П. Астафьева. Красноярск, 2009. 332 с.

3. Нигматулина Э.А., Киргизова Е.В. Специфика обучения программированию будущих учителей информатики // Образовательные технологии. 2008. № 1.

4. Пак Н.И. Проективный подход в обучении как информационный процесс: монография / Краснояр. гс. пед. ун-т им. В.П. Астафьева. Красноярск, 2008. 111с.