О методах обучения бакалавров направления «Педагогическое образование» по профилю «Информатика» основам параллельного программирования

УДК 378.1

М. А. Сокольская

О МЕТОДАХ ОБУЧЕНИЯ БАКАЛАВРОВ НАПРАВЛЕНИЯ «ПЕДАГОГИЧЕСКОЕ ОБРАЗОВАНИЕ» ПО ПРОФИЛЮ «ИНФОРМАТИКА» ОСНОВАМ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ

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

Ключевые слова: параллельное программирование, методика обучения, система методов обучения, отбор содержания.

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

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

Цель настоящей работы - выявить и в ходе констатирующего эксперимента в реальном учебном процессе проверить наиболее подходящие методы обучения для более успешного усвоения курса.

Методы, формы и средства обучения выбираются нами на основе целей и задач обучения, а так-

же согласно дидактическим принципам комплексного подхода в обучении, описанным Г. И. Щукиной, которая под комплексным подходом понимает единство всех компонентов учебного процесса: целей, содержания, методов и организации обучения [1]. Цели определяют выбор содержания курса, практическая реализация выделенного содержания в значительной степени зависит от выбора методов и приемов обучения. «Именно методы обучения -этот важнейший компонент учебного процесса, который приводит в действие все функции обучения и приводит к соответствующему результату» [1, с. 78].

Под методом обучения (согласно Г. И. Щукиной) мы будем понимать «способ совместной деятельности учителя и учащихся в учебном процессе, направленный на достижение целей образования, использующих возможности современного содержания, опирающихся на особенности возрастного развития учащихся, обеспечивающих их активную познавательную и практическую деятельность на основе единства всех функций обучения» [1, с. 79].

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

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

1) научность содержания и методов обучения,

2) доступность,

3) нелинейность,

4) рекурсивность.

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

Наряду с традиционными объяснительно-иллюстративными и репродуктивными методами [3] основными становятся методы продуктивного обучения информатике, предложенные М. П. Лапчи-ком [4].

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

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

Исследовательский метод. Этот метод предполагает построение процесса обучения наподобие процесса научного исследования, осуществление

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

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

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

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

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

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

При выборе методов обучения необходимо учитывать, что «отдельно взятый, изолированный от общей системы метод обучения не обеспечивает достаточно плодотворной познавательной деятельности» [1, с. 78].

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

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

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

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

мо активно использовать методы визуализации учебного материала. Для активизации познавательного интереса мы в некоторых случаях используем прием, предложенный Е. В. Полицинским [5]. «Студентам в качестве самостоятельной работы предлагается перед лекцией проработать материал по тематике предстоящей лекции». Пробные занятия с применением предварительной проработки материала показали, что материал на занятии усваивается лучше, студенты подходят к изучению материала более осознанно и проявляют заинтересованность в дальнейшем изучении.

Рассмотрим для примера систему методов и приемов лекционного занятия по теме «Архитектура многопроцессорных вычислительных систем». Тема носит ознакомительный характер, материал легкодоступен, не представляет сложности для студентов (при условии, что не поставлена задача - рассматривать архитектуры систем очень подробно). В связи с этим представляется целесообразным сочетание методов (рис. 1).

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

Лекция

Рис. 1. Архитектура многопроцессорных вычислительных систем

ния объяснительно-иллюстративного метода, так как некоторые особенности многопроцессорных систем нуждаются в комментариях преподавателя.

Лабораторные занятия строятся на базе репродуктивного метода с дополнительным использованием исследовательских методов обучения. При

этом с усложнением тем лабораторных занятий доля репродуктивных методов обучения нами уменьшается, а исследовательских - увеличивается. Пример системы методов обучения при выполнении лабораторной работы по теме «Основные функции библиотеки МР1» показан на рис. 2.

Рис. 2. Основные функции библиотеки МРІ

Содержание темы предполагает изучение понятий ранга процесса, коммуникатора, основных шести функций библиотеки МР1 - инициализация среды, определение количества процессов и ранга каждого процесса, функции парного обмена сообщениями, завершение МР1-программы, типы данных МР1.

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

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

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

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

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

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

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

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

При этом наиболее целесообразными методами обучения студентов параллельному программированию являются: на ознакомительном (пропедевтическом) этапе - объяснительно-иллюстративный с

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

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

Список литературы

1. Щукина Г. И. Активизация познавательной деятельности учащихся в учебном процессе. М.: Просвещение, 1979. 160 с.

2. Пак Н. И. Нелинейные технологии обучения в условиях информатизации: монография. Красноярск, 2004. 224 с.

3. Лернер И. Я. Дидактические основы методов обучения. М.: Педагогика, 1981. 186 с.

4. Теория и методика обучения информатике: учебник / под ред. М. П. Лапчика. М.: Академия, 2008. 592 с.

5. Полицинский Е. В., Румбешта Е. А. Активизация познавательной деятельности студентов на лекционных занятиях // Вестн. Томского гос. пед. ун-та (Tomsk State Pedagogical University Bulletin). 2011. Вып. 6. С. 37-40.

Сокольская М. А., ст. преподаватель, аспирант.

Красноярский государственный педагогический университет им. В. П. Астафьева.

Ул. Перенсона, 7, Красноярск, Россия, 660049.

E-mail: faenna@inbox.ru

Материал поступил в редакцию 16.11.2011.

M. A. Sokolskaya

THE METHODS OF TEACHING UNDERGRADUATE STUDENTS IN PEDAGOGICAL EDUCATION, DEGREE PROGRAMME “COMPUTER SCIENCE” BASICS OF PARALLEL PROGRAMMING

The paper reflects the experience of incorporating elements of parallel programming in the training of undergraduate students with degree programme “Computer Science” at the Pedagogical University. We consider the learning objectives with the standards of the third generation. The method is given for analyzing and selecting the content of discipline based on the method of thesaurus. It is proposed one solution to the problem of creating a system of methods for learning the basics of parallel programming at the Pedagogical University. The system of methods includes a significant proportion of active learning methods. It expands the prospect of further methodological research.

Key words: parallel programming, the methods of education, selection of the content.

V. P. Astafiev Krasnoyarsk State Pedagogical University.

Ul. Perensona, 7, Krasnoyarsk, Russia, 660049.

E-mail: faenna@inbox.ru