210 likes | 381 Views
Новосибирский Государственный Университет (механико-математический факультет, кафедра «Программирование» ). изучение системного подхода в программировании.
E N D
Новосибирский Государственный Университет (механико-математический факультет, кафедра «Программирование») изучение системного подхода в программировании в рамках учебно-методического комплекса«Практическое параллельное программирование в системе непрерывной подготовки ИТ-специалистов» в НГУ Руководитель проекта по разработке комплекса: проф., д.ф.-м.н. А.Г. Марчук к.ф.-м.н., доц. Калинина А.П.
Подготовка IT-специалистов в НГУ • базовое образование (ММФ, ФИТ, ФФ, ВКИ) • специализация на базе НГУ • специализация на базе СО РАН (аспирантура) • система привлечения и поддержки талантливой молодежи и переподготовки кадров
Основные компоненты (информационные ресурсы) • Кафедра программирования ММФ (http://mag.iis.nsk.su/kafedra/) • Кафедра вычислительных систем ММФ (http://mmfd.nsu.ru/mmf/kaf/vs/) • Кафедра систем информатики ФИТ (http://fit.nsu.ru/) • Летняя школа юных программистов (ЛШЮП)(http://school.iis.nsk.su/info/) • Всесибирская заочная школа информационных технологий (ВЗШИТ) (http://fit.nsu.ru/) • Система переподготовки ИТ-специалистов в партнерстве с Интернет-университетом информационных технологий (http://fit.nsu.ru, http://www.intuit.ru)
Курсы по информатике и программированию (НГУ), важные при переходе на многопроцессорную платформу • Основы работы на ЭВМ (базовый, 0.5 год) • Программирование (базовый, год) • Физические основы ЭВМ (спецкурс, 0.5 год) • Микропроцессорные системы (спецкурс, год) • Операционные системы (спецкурс, 0.5 год) • Дискретная математика (базовый, год) • Теория графов в программировании (спецкурс, год) • Методы трансляции (спецкурс, год) • Парадигмы программирования (спецкурс, год) • Функциональное программирование (спецкурс, год)
Курсы по информатике и программированию (НГУ), важные при переходе на многопроцессорную платформу (продолжение) • Методы верификации программ (спецкурс, год) • Методы оптимизации (спецкурс, год) • Теория параллельного программирования (спецкурс, 0.5 год) • Основы параллельного программирования (спецкурс, 0.5 год) • Задачи и методы параллельного программирования (спецкурс, год) • Базы данных (спецкурс, год) • Введение в обработку изображений и вычислительную геометрию (спецкурс, год)
Система привлечения и поддержки талантливой молодежи - Летняя школа юных программистов (ЛШЮП)(http://school.iis.nsk.su/info/ ) • Летние школы юных программистов проводятся в Новосибирском Академгородке, начиная с семидесятых годов • Принять участие в Летней школе юных программистов могут школьники 6-11 классов. • Мастерская — это группа из трех-пяти школьников и мастера, который руководит их работой и обучает их. • За две недели работы школы участники мастерских создают под руководством мастера законченный проект (от мультфильма на Flash до большой клиент-серверной системы на C++). • школьники посещают различные лекции, спецкурсы и семинары
Всесибирская заочная школа информационных технологий (ВЗШИТ) (http://fit.nsu.ru/) • Дополнительная система обучения школьников в области информатики и программирования • Важное звено – система олимпиадного тренинга для студентов и старшеклассников Новосибирска • Функции координатора осуществляют ФИТ НГУ и ИСИ СО РАН • Партнерство с Интернет-университетом информационных технологий
Причины создания учебно - методического комплекса • Основная причина: необходимость массового овладения практическими навыками параллельного программирования • Существующий «перекос» в базовых курсах в пользу парадигм последовательного программирования и привыкание к ним • Недостаточное изучение в рамках базовых курсах роли взаимосвязей между архитектурами, операционными системами, технологиями, алгоритмами и работой конкретного приложения • Недостаточный практический опыт • Недостаточное изучение в рамках базовых курсов параллельных алгоритмов
Методы и концепции: • Смещение сроков начала изучения параллельного программирования к младшим курсамНГУ, реорганизация программ ВЗШИТ и ЛШЮП. • Изучение взаимосвязанного, комплексного или «системного» подхода к программированию как в рамках базовых, так и специальных курсов • Увеличение доли практических занятий как в рамках базовых, так и специальных курсов • Углубленное изучение параллельных алгоритмов на старших курсов после получения первоначальных представлений и практических навыков на младших курсах НГУ
Цели и задачи проекта • Подготовка системы образования в области информационных технологий к переходу на многопроцессорные и многоядерные архитектуры • Модернизация базовых курсов «Основы работы на ЭВМ» и «Программирование» • Постановка спецкурсов для студентов старших курсов «Практическое параллельное программирование в системах с общей памятью»и «параллельная обработка информации» • Разработка дополнительных блоков для программ предпрофессионального обучения в Всесибирской заочной школе информационных технологий (ВЗШИТ) • Подготовка и проведение мастерских по практическому параллельному программированию в рамках Летней школы юных программистов (ЛШЮП)
Специальности НГУ, которых непосредственно касаетсяпереход на многопроцессорную платформу • 2201, 220100 Вычислительные машины, комплексы, системы и сети • 2203, 220400 Программное обеспечение вычислительной техники и автоматизированных систем • 552800, 654600 Информатика и вычислительная техника • 510200, 010200 Прикладная математика и информатика
Специальности НГУ, которых может коснутьсяпереход на многопроцессорную платформу • 010500, 510300 Механика • 510400 Физика • 510500, 011000 Химия • 511000 Геология • 011600 Биология
ПЕРСПЕКТИВЫ (2008 – 2010) • Создание корпуса специалистов, способных квалифицированно применять многопроцессорные системы • Переход к подготовке специалистов, способных разрабатывать высокопроизводительные информационные системы и системы программирования
«Практическое параллельное программирование в системах с общей памятью» (спецкурс) • Лекции – 18 ч. • Лабораторные занятия – 18 ч. • Итоговый контроль – дифференцированный зачет • Количество студентов – определяется количеством мест в компьютерном классе
Динамическое наполнение спецкурса – выбор подробно изучаемых: • Методология параллельного программирования • Технология параллельного программирования в системах с общей памятью • Инструмент по изучению качества последовательного кода • Инструмент по отладке параллельного кода • Инструмент по профилированию параллельной программы
Цели дисциплины: • Анализ работы стартовой последовательной, а затем параллельной программы на каждом иерархических уровней организации, в контексте конкретных языков и инструментальных средств; • Ознакомление в минимальном объеме с теоретическими основами функционирования уровней и их взаимосвязей
Структура спецкурса • Блок лекций • Блок лабораторного практикума
Лекции (содержание) • Теоретические основы строения и функционирования параллельных архитектур с общей памятью • Основы выбранной методологии параллельного программирования • Основы выбранной технологии параллельного программирования в системе с общей памятью • Особенности работы операционной системы при выполнении параллельного приложения • Необходимые сведения об инструментальных средствах тестирования
Лабораторный практикум (структура) • Выполнение ознакомительных упражнений, являющихся общими для всех студентов, на классе простейших задач • Выполнение курсовой работы на основе индивидуальной задачи более высокого уровня сложности (предполагаемый класс задач - криптография) • Подготовка реферата – теоретическое описание с демонстрационным примером
По окончании изучения дисциплины студент должен : иметь представление об основных составляющих комплексного подхода владеть практическими навыками при работе с инструментальными средствами тестирования; уметь разрабатывать параллельные программы низкого уровня сложности в рамках системного подхода в контексте изученной технологии и с применением инструментов.