Системный подход в программировании в рамках учебно-методического комплекса
«Практическое параллельное программирование в системе непрерывной подготовки ИТ-специалистов» в НГУ
А.П. Калинина (ИТПМ СО РАН)
Проблема обучения параллельному программированию на сегодняшний день достаточно актуальна. Традиционно обучение параллельному программированию осуществляется на старших курсах в рамках специализации, но общепризнанно, что практический результат оставляет желать лучшего.
Существует данная проблема и в НГУ, и это несмотря на то, что, казалось, набор спецкурсов охватывает почти всю проблематику параллельного программирования.
Подготовка IT – специалистов в НГУ (http://www.nsu.ru/) обеспечивается комплексом:
- базовое образование (ММФ, ФИТ, ФФ, ВКИ)
- специализация на базе НГУ
- специализация на базе СО РАН (аспирантура)
- система привлечения и поддержки талантливой молодежи и переподготовки кадров
С целью улучшения качества преподавания в НГУ планируется (на основе имеющейся базы в виде читаемых курсов) создание нового учебно-методического комплекса, в рамках которого предполагается реализовать следующие концепции. Во-первых, раннее изучение фундаментальной системы понятий с целью привыкания и профориентации в рамках базовых курсов. Во-вторых, значительное увеличение доли практической части. В-третьих, более глубокое массовое знакомство студентов с теоретической частью параллельного программирования в рамках потоковых спецкурсов на старших курсах, что, в свою очередь, сделает возможным создание специализированных практических курсов. При этом при изложении материала в значительной степени предполагается следовать взаимосвязанному системному подходу.
Целью подобного изложения является формирование четкого понимания у студентов определяющей роли методологии программирования при выборе языка и инструмента среды программирования, оптимальной архитектурной и операционной платформы, а также приобретение необходимых практических навыков.
Более эффективным освоение системного подхода для студентов сделают практические занятия с применением инструментов, которые будут диагностировать работу компьютера на низшем уровне при выполнении программы.
Это требует:
- Модернизации базовых курсов «Основы работы на ЭВМ» и «Программирование»
- Постановки спецкурсов для студентов старших курсов «Практическое параллельное программирование в системах с общей памятью» и «Алгоритмы в параллельном программировании»
- Разработки дополнительных блоков для программ предпрофессионального обучения в Всесибирской заочной школе информационных технологий (ВЗШИТ)
- Подготовки и проведение мастерских по практическому параллельному программированию в рамках Летней школы юных программистов (ЛШЮП)
Реализовать концепцию «обучение на практике» предполагается как на уровне модернизируемых базовых курсов, так и в рамках спецкурса «Практическое параллельное программирование в системах с общей памятью» (выбор систем с общей памятью вызван как наступающей эрой multicore, так и отсутствием значительных практических курсов по этой теме), а также в Летней школе юных программистов (в ЛШЮП – 2006 планируется создание двух мастерских, темой проекта которых будет практическое решение задачи с применением технологии параллельного программирования в системах с общей памятью и инструментов).
Углубленное изучение системного подхода планируется осуществить в рамках спецкурса «Практическое параллельное программирование в системах с общей памятью».
Анализируя названия курсов, приведенных выше и читаемых в НГУ на трех кафедрах: «программирования» (ММФ), «вычислительных систем» (ММФ) и «систем информатики» (ФИТ), казалось бы, можно сделать вывод, что большая часть проблематики параллельного программирования охвачена, но это не совсем так. Практически на всех кафедрах отсутствует модуль, в котором бы одновременно были спецкурсы по операционным системам, архитектурам микропроцессоров, методам компиляции и алгоритмам – связке, знание которой необходимо профессионалу для успешной работы, так называемый «системный подход».
Рассматриваемый спецкурс будет посвящен изучению системного подхода в рамках методологии императивного параллельного программирования (в основном), а также средств инструментальной поддержки.
Наиболее близкий к нашему подходу является подход Игоря Одинцова [1], который изложен в его книге «Профессиональное программирование. Системный подход». Учебные примеры будут частично совпадать с задачами, излагаемыми в курсе В.П. Гергеля, и Р.Г. Стронгина «Параллельное программирование» [2].
Курс «Практическое параллельное программирование в системах с общей памятью» состоит из двух модулей – блока лекций и лабораторного практикума.
Вводная информация в виде лекций об операционных системах и архитектурных платформах необходима для успешного многопоточного программирования.
Лабораторный практикум с применением инструментов (на примере инструментов Intel и OpenMP) позволит студенту приобрести необходимый практический опыт. Чтение данного курса сделает возможным в перспективе создание других, более специализированных курсов (в том числе и практических) без изложения базовых основ (что уже будет сделано в рамках данного курса) в рамках соответствующих кафедр, что позволит в будущем
- Создать корпус специалистов, способных квалифицированно применять многопроцессорные системы
- Перейти к подготовке специалистов, способных разрабатывать высокопроизводительные информационные системы и системы программирования
Литература
-
И. Одинцов Профессиональное программирование. Системный подход. – «БХВ-Петербург» - 2004. – 610 с
- Гергель В.П., Стронгин Р.Г. Основы параллельных вычислений для многопроцессорных вычислительных систем. - Н.Новгород, ННГУ, 2001.
|