изучение системного подхода в программировании в рамках учебно - методического комплекса «Практическое параллельное программирование в системе непрерывной подготовки ИТ- специалистов» в НГУ Новосибирский Государственный Университет (механико-математический факультет, кафедра «Программирование») к.ф.-м.н., доц. Калинина А.П. Руководитель проекта по разработке комплекса: проф., д.ф.-м.н. А.Г. Марчук
2 Подготовка IT-специалистов в НГУ базовое образование (ММФ, ФИТ, ФФ, ВКИ) специализация на базе НГУ специализация на базе СО РАН (аспирантура) система привлечения и поддержки талантливой молодежи и переподготовки кадров
3 Основные компоненты (информационные ресурсы) Кафедра программирования ММФ ( Кафедра вычислительных систем ММФ ( Кафедра систем информатики ФИТ ( Летняя школа юных программистов (ЛШЮП) ( Всесибирская заочная школа информационных технологий (ВЗШИТ) ( Система переподготовки ИТ-специалистов в партнерстве с Интернет- университетом информационных технологий (
4 Курсы по информатике и программированию (НГУ), важные при переходе на многопроцессорную платформу Основы работы на ЭВМ (базовый, 0.5 год) Программирование (базовый, год) Физические основы ЭВМ (спецкурс, 0.5 год) Микропроцессорные системы (спецкурс, год) Операционные системы (спецкурс, 0.5 год) Дискретная математика (базовый, год) Теория графов в программировании (спецкурс, год) Методы трансляции (спецкурс, год) Парадигмы программирования (спецкурс, год) Функциональное программирование (спецкурс, год)
5 Курсы по информатике и программированию (НГУ), важные при переходе на многопроцессорную платформу (продолжение) Методы верификации программ (спецкурс, год) Методы оптимизации (спецкурс, год) Теория параллельного программирования (спецкурс, 0.5 год) Основы параллельного программирования (спецкурс, 0.5 год) Задачи и методы параллельного программирования (спецкурс, год) Базы данных (спецкурс, год) Введение в обработку изображений и вычислительную геометрию (спецкурс, год)
6 Система привлечения и поддержки талантливой молодежи - Летняя школа юных программистов (ЛШЮП) ( ) Летние школы юных программистов проводятся в Новосибирском Академгородке, начиная с семидесятых годов Принять участие в Летней школе юных программистов могут школьники классов. Мастерская это группа из трех-пяти школьников и мастера, который руководит их работой и обучает их. За две недели работы школы участники мастерских создают под руководством мастера законченный проект (от мультфильма на Flash до большой клиент-серверной системы на C++). школьники посещают различные лекции, спецкурсы и семинары
7 Всесибирская заочная школа информационных технологий (ВЗШИТ) ( ) Дополнительная система обучения школьников в области информатики и программирования Важное звено – система олимпиадного тренинга для студентов и старшеклассников Новосибирска Функции координатора осуществляют ФИТ НГУ и ИСИ СО РАН Партнерство с Интернет-университетом информационных технологий
8 Причины создания учебно - методического комплекса Основная причина: необходимость массового овладения практическими навыками параллельного программирования Существующий «перекос» в базовых курсах в пользу парадигм последовательного программирования и привыкание к ним Недостаточное изучение в рамках базовых курсах роли взаимосвязей между архитектурами, операционными системами, технологиями, алгоритмами и работой конкретного приложения Недостаточный практический опыт Недостаточное изучение в рамках базовых курсов параллельных алгоритмов
9 Методы и концепции: Смещение сроков начала изучения параллельного программирования к младшим курсамНГУ, реорганизация программ ВЗШИТ и ЛШЮП. Изучение взаимосвязанного, комплексного или «системного» подхода к программированию как в рамках базовых, так и специальных курсов Увеличение доли практических занятий как в рамках базовых, так и специальных курсов Углубленное изучение параллельных алгоритмов на старших курсов после получения первоначальных представлений и практических навыков на младших курсах НГУ
10 Цели и задачи проекта Подготовка системы образования в области информационных технологий к переходу на многопроцессорные и многоядерные архитектуры Модернизация базовых курсов «Основы работы на ЭВМ» и «Программирование» Постановка спецкурсов для студентов старших курсов «Практическое параллельное программирование в системах с общей памятью» и «параллельная обработка информации» Разработка дополнительных блоков для программ предпрофессионального обучения в Всесибирской заочной школе информационных технологий (ВЗШИТ) Подготовка и проведение мастерских по практическому параллельному программированию в рамках Летней школы юных программистов (ЛШЮП)
11 Специальности НГУ, которых непосредственно касается переход на многопроцессорную платформу 2201, Вычислительные машины, комплексы, системы и сети 2203, Программное обеспечение вычислительной техники и автоматизированных систем , Информатика и вычислительная техника , Прикладная математика и информатика
12 Специальности НГУ, которых может коснуться переход на многопроцессорную платформу , Механика Физика , Химия Геология Биология
13 ПЕРСПЕКТИВЫ (2008 – 2010) Создание корпуса специалистов, способных квалифицированно применять многопроцессорные системы Переход к подготовке специалистов, способных разрабатывать высокопроизводительные информационные системы и системы программирования
14 «Практическое параллельное программирование в системах с общей памятью» (спецкурс) Лекции – 18 ч. Лабораторные занятия – 18 ч. Итоговый контроль – дифференцированный зачет Количество студентов – определяется количеством мест в компьютерном классе
15 Динамическое наполнение спецкурса – выбор подробно изучаемых: Методология параллельного программирования Технология параллельного программирования в системах с общей памятью Инструмент по изучению качества последовательного кода Инструмент по отладке параллельного кода Инструмент по профилированию параллельной программы
16 Цели дисциплины: Анализ работы стартовой последовательной, а затем параллельной программы на каждом иерархических уровней организации, в контексте конкретных языков и инструментальных средств; Ознакомление в минимальном объеме с теоретическими основами функционирования уровней и их взаимосвязей
17 Структура спецкурса Блок лекций Блок лабораторного практикума
18 Лекции (содержание) Теоретические основы строения и функционирования параллельных архитектур с общей памятью Основы выбранной методологии параллельного программирования Основы выбранной технологии параллельного программирования в системе с общей памятью Особенности работы операционной системы при выполнении параллельного приложения Необходимые сведения об инструментальных средствах тестирования
19 Лабораторный практикум (структура) Выполнение ознакомительных упражнений, являющихся общими для всех студентов, на классе простейших задач Выполнение курсовой работы на основе индивидуальной задачи более высокого уровня сложности (предполагаемый класс задач - криптография) Подготовка реферата – теоретическое описание с демонстрационным примером
20 По окончании изучения дисциплины студент должен : иметь представление об основных составляющих комплексного подхода владеть практическими навыками при работе с инструментальными средствами тестирования; уметь разрабатывать параллельные программы низкого уровня сложности в рамках системного подхода в контексте изученной технологии и с применением инструментов.
21 ????