Аннотация учебной программы дисциплины "Интеллектуальные системы"

Вид материалаДокументы

Содержание


Аннотация учебной программы дисциплины
Основные разделы курса
Целью дисциплины
Подобный материал:
1   2   3
^

Аннотация учебной программы дисциплины


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


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

Научить самостоятельно анализировать сложный профессиональный текст при помощи средств современной философии. Дать представления о многообразии современных философских подходов к исследованию естественных и искусственных языков. Дать базовые гумманитарные сведения о современных социально-философских и политологических воззрениях. Показать роль философии в формировании общественно-политических структур.
    Дисциплина входит в вариативную часть общенаучного цикла основной образовательной программы магистратуры по направлению подготовки 230100 «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА».

Изучение данной дисциплины базируется на дисциплинах: «История», «Когнитивная психология», «Экономика», «Методология ИТ исследования», «Философия» (для бакалавров).

Изучение дисциплины направлено на формирование следующих общекультурных и профессиональных компетенций:
  • ОК-1, ОК-2, ОК-6; ОК-7; ОК-8
  • ПК-6, ПК-8

В результате изучения дисциплины студент должен:

Знать

- основные подходы современной философии науки и философии языка;

- основные проблемы современной философии и методы их решения;

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

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

Уметь

- применять современные философские концепции для анализа сложных текстов;

- анализировать значение понятий, составлять понятийный аппарат предметной области, устанавливать смысловые и структурные связи между терминами, применяемыми в различных областях профессиональной деятельности;

Владеть

- базовыми представлениями в области философии науки, философии языка, социальной философии;

- философскими методами анализа текста

^ Основные разделы курса:
  • Современная философия: основные разделы философии, направления философских исследований, области применения философии, взаимосвязь философии с научной теорией и практической деятельностью. Предмет и метод философии науки. Основные этапы развития философии науки.
  • Философия науки в рамках позитивистского подхода. Возникновение позитивизма в XIX в, четыри этапа развития позитивизма. Классический позитивизм. Эмпириокритицизм. Неопозитивизм (логический позитивизм) – проблема демаркации научной теории, определение понятий «истины» и «доказательства» в науке, анализ структуры научной теории и терминологического аппарата. Соотношение эмпирического и теоретического знания в философии позитивизма. Кризис неопозитивизма. Критический рационализм, постпозитивизм. Историко-научный подход в философии.
  • Философия науки в рамках марксистского подхода. Особенности марксисткой философии. Воззрения на стуктуру научного знания и роль науки в жизни общества в философии марксизма. Роль онтологии в философии науки (сопоставление позитивистской и марксистской точек зрения). Научная онтология диалектического материализма. Современное состояние материалистической диалектики.
  • Лингвистические исследования в философии. Основные вопросы философии языка. Развитие философии языка в конце XIX – начале ХХ вв. Лингвистический поворот. Логический атомизм. Философские концепции Л. Витгенштейна – «ранний» и «поздний» Витгенштейн. Аналитическая философия. Философия искусственных языков. Влияние идей Витгенштейна на появление языков программирования. Философия естественного языка, ее применение в современных информационных технологиях.
  • Философия языка в СССР. Концепция Выгодского-Лурия, ее значение для философии языка. Философия сознания – сопоставление советских и западных концепций. Применение психолингвистических знаний в современной философии, науке, ИТ-индустрии. Современная философия языка. Лингвистические деревья Н. Хомского, генеративная грамматика и разработка языков высокого уровня в программировании. Философия языка в современном Китае. Специфика логографических языков с точки зрения философского анализа текстов.
  • Социальная философия: определение базовых понятий, роль социальной философии в жизни общества, основные направления современной социальной философии. Сопоставление естественнонаучного и гуманитарного знания. Структура общества и ее отражение в философской теории. Политико-иделогические концепции ХХ в, их современное состояние. Философия истории, социальная этика, философия права.
  • Современное общество с точки зрения социальной философии. Социально-политические теории XIX-XX вв. Кризис классических социально-философских идей в конце ХХ в. Вызовы современного общества и их осмысление философами. Современные философские дискуссии по общественно-политическим проблемам.



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


Аннотация учебной программы дисциплины

"Вычислительные системы"


Цель дисциплины: знакомство с современными формальными методами разработки программных систем.
    Для достижения поставленной цели выделяются задачи курса:
  • разъяснение положительных и отрицательных сторон применения формальных методов при разработке программных систем;
  • обзор и сравнительный анализ различных формальных языков и нотаций; анализ способности формальных методов обеспечить качество создаваемых программных систем.

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

Изучение дисциплины направлено на формирование следующих общекультурных компетенций ОК-1, ОК-2, ОК-4, ОК-7; и профессиональных компетенций ПК-1, ПК-5, ПК-4.

В результате изучения дисциплины студент должен:

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

Уметь:
  • оценивать целесообразность применения конкретных методов при разработке конкретных систем.

Владеть навыками:

представлением о современных методах распределенных вычислений.


Основные разделы и темы курса:

Раздел 1. Введение.
  • Глобальная интеграция ресурсов – основная задача автоматизации на современном этапе. Примеры глобальных распределённых приложений.
  • Современные принципы разработки распределённых систем.

Раздел 2. Математические основы инженерии распределённых систем.
  • Формализация коммуникационного времени. Шаблоны проектирования. Компонентное проектирование.
  • Языки описания архитектуры (Architecture Description Languages, ADL).

Раздел 3. Моделирование и верификация физического уровня распределённой системы.
  • Оценка производительности систем. Модели вычислений.
  • Статистические методы анализа потоков данных.

Раздел 4. Инженерия данных в распределённых системах.
  • Классификация систем, управляемых данными.
  • Метаданные и стандарт Dublin Core. Инициатива Semantic Web. Языки RDF и OWL.

Раздел 5. Организация совместной работы ресурсов.
  • Шаблоны проектирования рабочих процессов.
  • Языки управления рабочими процессами (Workflow Management Languages, WfML).
  • Технология Web Service Orchestration, язык BPEL4WS.

Раздел 6. Инженерия систем реального времени.
  • Распределённые системы реального времени, SCADA-системы.
  • Синхронный (synchronous) подход к моделированию систем реального времени. Языки Lustre и Esterel.

Раздел 7. Концепция программного агента.
  • Требования к агентам. Мультиагентные системы (multiagent systems), языки взаимодействия агентов.
  • Автономные вычисления (autonomic computing).

Раздел 8. Веб-интерфейс распределённых приложений.
  • Интеграция доступа к гетерогенным информационным ресурсам.
  • Архитектура портала. Технологические платформы создания порталов.

Раздел 9. Технологии Grid.
  • Основные требования к Grid-системам.
  • Три стадии развития Grid-технологий: интеграция аппаратных ресурсов, интеграция служб, адаптивная интеграция.

Раздел 10. Архитектура Grid-систем.
  • Формальный подход к проектированию Grid-систем.
  • Открытая архитектура Grid-служб (Open Grid Service Architecture, OGSA).

Раздел 11. Основные компоненты интеграционного слоя Grid-систем.
  • Платформа Globus Toolkit. Средства управления ресурсами и данными в Grid-среде. Grid-порталы.
  • Обзор технологических платформ Grid-систем.

Раздел 12. Технологический процесс разработки глобальных распределенных систем.
  • Принципы моделирования системы. Многомерная декомпозиция.
  • Реализация путем интеграции гетерогенных компонентов.



Аннотация учебной программы дисциплины

"Технология разработки программных систем"


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


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

Изучение дисциплины направлено на формирование общекультурной компетенции ОК-10 и профессиональных компетенций: ПК-11, ПК-12, ПК-14.

В результате изучения дисциплины студент должен:

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

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

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

Основные разделы и темы курса:

Раздел 1. Современные динамические языки.
  • Общая классификация языков по назначению и модели исполнения. Общие свойства динамических языков (динамическая типизация, модель трансляции и исполнения).
  • Язык Ruby: основные конструкции языка, коллекции. Функциональный стиль программирования в Ruby: блоки и замыкания. Итераторы.
  • Особенности объектной модели Ruby: унифицированность объектного представления, модули и примеси, инкапсуляция. Динамическое изменение классов, элементы Meta-Object Protocol (MOP) в Ruby. JRuby и взаимодействие с Java, Java Scripting API.
  • Регулярные выражения.

Раздел 2. Современные функциональные языки.
  • Классификация языков по парадигмам программирования. Функциональное программирование (ФП). Неподвижное состояние объекта как ключевое отличие ФП от ООП. Чистые функции, функции высших порядков. Функции, как объекты первого класса. Лексические контексты, анонимные функции, замыкания. Основные семейства функциональных языков. Историческая связь динамических и функциональных языков.
  • Общие характеристики семейства языков Lisp: единое представление кода и данных, S-выражения, модель трансляции и исполнения, REPL. Язык Clojure, как современный представитель семейства Lisp: основные структуры языка.
  • Функциональные возможности Clojure: коллекции, отложенные вычисления, бесконечные структуры данных. Абстрагирование данных с помощью функциональных примитивов (пары, числа Черча). Моделирование времени с помощью потоков. Преимущества и недостатки ФП в сравнении с ООП.
  • Императивные возможности Clojure. Software Transactional Memory. Многопоточность. Ссылки, атомы, агенты, виды транзакций. Взаимодействие с Java.

Раздел 3. Элементы метапрограммирования, аспектно-ориентированное программирование.
  • Управляемая кодогенерация. Макросы в Lisp (на примере Clojure). Модель исполнения макросов. Макросы, как способ расширения языка.
  • Понятие о проблемно-специфичных языках (DSL) и языках сценариев. Методы генерации DSL. Символьные вычисления.
  • Динамические объектные модели. CLOS: обобщенный динамический полиморфизм, обобщенные функции и мультиметоды, вспомогательные методы. Реализация элементов CLOS в Clojure. Интроспекция, введение в MOP.
  • Сквозная функциональность (cross-cutting concerns), проблема модульности. Традиционные методы обеспечения модульности в условиях сквозной функциональности. Контекстный полиморфизм. Механизм binding в Clojure, отличия от let.
  • Аспектно-ориентированное программирование (АОП). Понятие аспекта. Язык AspectJ, как аспектное расширение Java. Понятия pointcut и advise. Виды перехвата управления. Расширение существующих классов и интерфейсов. Использование интерфейсов Java, как абстрактных классов. Модель компиляции и исполнения.
  • Применение АОП в проектирование. Преимущества и недостатки по сравнению с традиционными методами проектирования. Примеры задач, эффективно решаемых с помощью АОП.



Аннотация учебной программы дисциплины

"Современные проблемы информатики и вычислительной техники"


Цель дисциплины: ознакомление с базовыми информационными моделями и освоение методов решения сложных задач, а также знакомство с современными направлениями развития методов применения компьютерных технологий. В целом материал курса ориентирован на умение правильно классифицировать конкретную прикладную задачу, выбирать наиболее подходящий метод решения и реализовывать его в виде алгоритма и программы.
    Для достижения поставленной цели выделяются задачи курса:
  • Дать студентам представление об областях применения компьютерных и телекоммуникационных технологий в различных направлениях, включая управление деятельностью, документооброт, науку и образование.
  • Помочь им в изучении средств и методов решения особо сложных задач, возникающих на стыке современных наукоемких технологий и информатики.
  • Научить правильно классифицировать конкретную прикладную задачу, выбирать наиболее подходящий метод её решения и реализовывать его в виде алгоритма и программы.

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

Изучение дисциплины направлено на формирование следующих общекультурных компетенций ОК-1, ОК-2, ОК-4 и профессиональных компетенций ПК-1, ПК-5, ПК-6.

В результате изучения дисциплины студент должен:

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

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

Владеть навыками:
  • классическими методами дистанционного доступа к информационным системам;
  • методами синтеза алгоритмов решения новых классов задач информатики.

Основные разделы и темы курса:

Раздел 1. Проблемы становления информатики.
  • Информационные (числовые) модели. Понятие о вычислениях. Основные этапы развития вычислительных устройств и моделей. Связь с экономическим развитием общества. Краткий исторический обзор от Аристотеля и Леонардо да Винчи до наших дней. Информационное моделирование. Может ли компьютер затормозить развитие «разума». Стоит ли читать «старые» книги – проблема извлечения «знаний». Становление вычислительной техники от дифференциальных анализаторов до суперкомпьютеров. «Вычислительные Пионеры».
  • Становление программирования – парадигмы программирования (объекты или процессы). Информационная вселенная. Информационные модели организации вычислений. Соответствие информационных и математических моделей реального мира. Компьютерная грамматика и арифметика – «критика чистого разума» (следуя Канту). Языки программирования: парадигмы и реалии. Компьютерная грамотность. Национальные информационные ресурсы. Как далеко можно плести сети. Кто на что влияет: общество и «вычислительные науки».
  • Кризис информационных технологий. Дом, который построил Джон (фон Нейман). Что такое «наука информатика» и «образование». Информатика и физика.
  • Как нам реорганизовать РАБКРИН (почти по Ленину). Что делать или кризис информационного жанра. Информация – данные – знания. Электронные библиотеки, коллекции и системы. Метаданные и схемы данных. Информационное построение окружающего мира – документы в информационном пространстве. Распределенные информационно-вычислительные ресурсы. Назад или вперед к «майнфреймам». Сетевые «операционные системы». Метаданные и принцип «цифровых библиотек». Настройка алгоритмов на данные или наоборот.

Раздел 2. Компьютерные технологии в науке.
  • Понятие о математическом моделировании.
  • Волна цунами – общие сведения.
  • Современные ИКТ в задаче своевременного предупреждения об угрозе цунами.
  • Методы обработки записей глубоководных гидрофизических станций.
  • Использование современных архитектур для обработки данных в режиме реального времени.
  • Примеры применения современных ИКТ в науках о Земле, науках о Живом и в образовании.
  • Актуальные нерешенные задачи.
  • На примере задачи уменьшения последствий природных катастроф излагаются совокупность элементов современных инфо-коммуникационных технологий, связанных прикладной направленностью.

Раздел 3. Компьютерные технологии в образовании.
  • Теории научения и обучения.
  • Экспертные системы в образовании.
  • Деятельностный подход к образованию.
  • Создание учебной обстановки.
  • Некоммерческие линии развития информационных систем.
  • Методические материалы по информатике и программированию.
  • Дистанционное и факультативное обучение программистов.
  • История информатики и ИКТ.
  • Нерешенные проблемы образовательной информатики.



Аннотация рабочей программы по курсу

«Технология фрагментированного программирования»


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

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

Изучение дисциплины направлено на формирование следующих общекультурных компетенций компетенций ОК-1, ОК-2, ОК-4, ОК-6, ОК-7, ОК-8 и профессиональных компетенций ПК-1, ПК-4, ПК-5, ПК-6, ПК-10 выпускника.

В результате изучения дисциплины студент должен:

Знать:
  • системы фрагментированного программирования;
  • алгоритмы исполнения фрагментированных программ;
  • компоненты системы фрагментированного программирования, их устройство и взаимодействие.

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

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

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

Основные разделы и темы курса:
  • Метод фрагментации численных алгоритмов.
  • Технологические аспекты разработки параллельных алгоритмов и программ для суперкомпьютеров.
  • Библиотеки фрагментированных алгоритмов и программ.
  • Инструменты поддержки суперкомпьютерных технологий.
  • Введение в систему фрагментированного программирования.



Аннотация рабочей программы дисциплины

«Организация вычислений на кластерах и грид»


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

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

Изучение дисциплины направлено на формирование следующих общекультурных компетенций компетенций ОК-1, ОК-2, ОК-4, ОК-6, ОК-7, ОК-8 и профессиональных компетенций ПК-1, ПК-4, ПК-5, ПК-6, ПК-10 выпускника.

В результате изучения дисциплины студент должен:

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

уметь:
  • формулировать требования к устройству вычислительных кластеров;
  • администрировать системное программное обеспечение вычислительных кластеров;
  • использовать современное программное обеспечение для организации вычислений на кластерах;
  • формулировать требования к организации распределенных вычислений;
  • использовать современное программное обеспечение для организации распределенных вычислительных систем;
  • разрабатывать распределенные вычислительные системы;
  • организовывать распределенное решение вычислительных задач.

владеть навыками:
  • использования системного программного обеспечения кластеров и распределенных систем для сборки, запуска прикладных задач, мониторинга и завершения выполняющихся задач;
  • установки, настройки системного программного обеспечения вычислительных кластеров;
  • использования системного программного обеспечения распределенных систем для сборки, запуска прикладных задач, мониторинга и завершения выполняющихся задач;
  • построения распределенных вычислительных систем с помощью инструментария Globus Toolkit, NumGRID;
  • разработки веб-служб.

Основные разделы и темы курса:
  • Организация вычислительных кластеров: системное программное обеспечение и аппаратное обеспечение кластеров.
  • Системы управления прохождением задач в кластерах.
  • Планирование прохождения задач в кластерах.
  • Мониторинг задач и ресурсов в кластерах.
  • Высокопроизводительные сети связи.
  • Цели организации распределенных вычислений.
  • Типы распределенных вычислительных систем.
  • Требования к организации высокопроизводительных вычислений.
  • Методы и средства организации высокопроизводительных вычислений.
  • Грид-системы.
  • Облачные вычисления.

Лабораторный практикум включает работы по освоению методов и средств пользовательского взаимодействия с высокопроизводительными вычислительными системами, настройке системы управления прохождением задач, по освоению методов и средств пользовательского взаимодействия с системам организации распределенных вычислений, (в частности, Globus Toolkit, NumGRID, BOINC), организации грид-системы с на основе пакета Globus Toolkit, разработка веб-служб.


Аннотация рабочей программы дисциплины

«Методы и технологии решения задач на кластерах и грид»

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

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

Изучение дисциплины направлено на формирование следующих общекультурных компетенций компетенций ОК-1, ОК-2, ОК-4, ОК-6, ОК-7, ОК-8 и профессиональных компетенций ПК-1, ПК-4, ПК-5, ПК-6, ПК-10 выпускника.

В результате изучения дисциплины студент должен:

Знать:
  • принципы организации вычислений на кластерах и распределенных системах,
  • методы и средства разработки параллельных программ для неоднородных вычислительных сред,
  • методы планирования и реализации динамического распределения вычислительной загрузки между узлами вычислительной системы,
  • методы организации вычислений на объединении кластеров с помощью системы NumGRID,
  • средства организации грид-систем на основе пакета Globus-Toolkit,
  • средства организании распределенных вычислений X-Com
  • методы и средства профилирования и оптимизации параллельных программ,
  • критерии оценки качества параллельных алгоритмов и программ,
  • принципы применения технологии фрагментированного программирования для решения задач в неоднородных вычислительных средах,
  • особенности совместного применения средств программирования систем с распределенной и общей памятью на вычислительных кластерах,
  • принципы построения библиотек параллельных подпрограмм.

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

Владеть навыками:
  • использования системного программного обеспечения кластеров и распределенных систем для сборки, запуска прикладных задач, мониторинга и завершения выполняющихся задач,
  • разработки программ с реализацией динамической балансировки загрузки вычислительных узлов (динамическое планирование и осуществление распределения вычислительной загрузки вычислительных узлов),
  • разработки параллельных программ в средствах MPI и OpenMP, POSIX Threads, в том числе смешанных техниках MPI+OpenMP, MPI+POSIX Threads для вычислительных кластеров,
  • отладки и оптимизации параллельных программ,
  • разработки приложений для кластеров с использованием технологии фрагментированного программирования,
  • эксплуатации кластерных систем и распределенных систем, построенных на основе Globus-Toolkit, NumGRID, X-Com.

Дисциплина включает следующие разделы:
  • введение в организацию вычислительных кластеров и грид: аппаратное и системное программное обеспечение;
  • организация решения задач в NumGRID, X-Com, Globus-Toolkit, BOINC;
  • методы и технологии разработки параллельных программ для неоднородных вычислительных сред;
  • методы планирования и реализации динамического распределения вычислительной загрузки между узлами вычислительной системы;
  • профилирование и оптимизация параллельных программ;
  • применение технологии фрагментированного программирования для решения задач в неоднородных вычислительных средах;
  • особенности совместного применения средств программирования систем с распределенной и общей памятью на вычислительных кластерах;
  • библиотеки параллельных подпрограмм.


Лабораторный практикум включает работы по освоению методов и средств пользовательского взаимодействия с кластерными и распределенными высокопроизводительными вычислительными системами, реализации динамических свойств параллельных программ (динамическое планирование и осуществление распределения вычислительной загрузки вычислительных узлов), разработке параллельных программ в смешанных техниках MPI+OpenMP, MPI+POSIX Threads, отладке и оптимизации параллельных программ, организации распределенных вычислителений с использованием средств Globus Toolkit, NumGRID, X-Com.


Аннотация учебной программы дисциплины

«Конструирование параллельных алгоритмов и программ»


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

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

Дисциплина нацелена на формирование общекультурных компетенций ОК-1, ОК-2, ОК-6, ОК-7, ОК-8 и профессиональных компетенций ПК-1, ПК-2, ПК-4, ПК-12 выпускника.

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

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

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

^ Целью дисциплины является знакомство студентов с теоретическими подходами к конструированию параллельных программ.

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

Дисциплина входит в вариативную часть профессионального цикла образовательной программы магистра. Изучение данной дисциплины базируется на курсах "Операционные системы", "Программирование", "Начала математической логики", "Введение в параллельное программирование", "Модели, языки и системы параллельного программирования". Студент должен уметь использовать основные законы естественнонаучных дисциплин для понимания преподаваемой дисциплины, иметь навыки работы с компьютером как средством управления и обработки информации, знать языки программирования Си и Си++. Дисциплина является предшествующей для выполнения квалификационной работы магистра.

Изучение дисциплины направлено на формирование следующих компетенций:

- представление о статических и динамических алгоритмах конструирования программ;

- представление о статических и динамических алгоритмах планирования исполнения фрагментированных программ.

В результате изучения дисциплины студент должен:

знать: методы синтеза параллельных программ, алгоритмы синтеза параллельных программ на вычислительных моделях.

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

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

Дисциплина включает следующие разделы:
  • Обзор теоретических подходов к синтезу алгоритмов и программ;
  • Теоретические основы синтеза программ на простых вычислительных моделях;
  • Алгоритмы синтеза параллельных программ на простых вычислительных моделях;
  • Синтез параллельных программ на вычислительных моделях с массивами;
  • Конструирование асинхронных и фрагментированных параллельных программ.


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


Аннотация учебной программы дисциплины

«Функциональное программирование»


Цель дисциплины: познакомить с функциональным программированием как перспективной парадигмой для проектирования параллельных алгоритмов, ее теоретическими основаниями, дать первоначальные практические знания и навыки функционального программирования на наиболее известных языках функционального программирования (и их параллельных диалектах).
    Для достижения поставленной цели выделяются задачи курса:
  • изучить элементы -исчисления, теории переписывания термов и математической тории типов как фундаменте функционального программирования;
  • дать первоначальные практические знания и навыки программирования на наиболее известных языках функционального программирования – LISP, ML и РЕФАЛ ;
  • познакомить с основными понятиями и приемами проектирования, реализации и исполнения функциональных алгоритмов и программ – рекурсия, раскрутка, ленивые и активные вычисления;
  • познакомиться с параллельными диалектами функционального языка ML (Caml и/или F#) и с функциональными языками для параллельных вычислений (SISAL и/или NORMA).

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

Изучение дисциплины направлено на формирование следующих общекультурных компетенций компетенций ОК-1, ОК-2, ОК-6, ОК-7, ОК-8 и профессиональных компетенций ПК-1, ПК-4, ПК-5, ПК-6, ПК-15 выпускника.

В результате изучения дисциплины студент должен:

Знать:
  • основы -исчисления, теории переписывания термов и математической тории типов;
  • основы программирования на языках LISP;
  • семейство языков функционального программирования (LISP, РЕФАЛ, ML, включая параллельные языки SISAL, NORMA, CaML и F#);
  • функции высших порядков и их применение;
  • интерпретацию и компиляцию функциональных программ.

Уметь:
  • проектировать рекурсивные алгоритмы;
  • программировать их в среде CLISP (Common Lisp) или HomeLISP, PolyML.

Владеть:
  • навыками повышения эффективности программ на функциональных языках программирования.

Основные разделы и темы курса:
  • Основные понятия и особенности функционального программирования.
  • Связи функциональной парадигмы программирования с другими парадигмами программирования и, прежде всего, с параллельной парадигмой.
  • Теория и языки функционального программирования.



Аннотация учебной программы дисциплины

«Формальные модели параллельных вычислений»


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

  1. представить панораму существующих формальных моделей,
  2. дать навыки исследования и использования таких моделей.

Для достижения поставленной цели выделяются следующие задачи:
  • изучить основы и основные математические результаты классических формализмов параллельных вычислений (возникших до 1990-х гг.), таких как помеченные системы переходов, сети Петри, исчисления взаимодействующих процессов Хоара (CSP) и Милнера (CCS);
  • познакомиться с новые формальные модели параллельных вычислений (возникшими после 1990 г.), таких как -исчисление Милнера, исчисление окружений Карделли и линейная логика Жерара.

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

Изучение дисциплины направлено на формирование следующих общекультурных компетенций компетенций ОК-1, ОК-2, ОК-4, ОК-6, ОК-7, ОК-8 и профессиональных компетенций ПК-1, ПК-2, ПК-9 выпускника.

В результате изучения дисциплины студент должен:

Знать:
  • основы и основные математические результаты теории помеченные системы переходов, теории сетей Петри, теории клеточных автоматов, теории исчисления параллельных взаимодействующих процессов Хоара (CSP) и Милнера (CCS), основы -исчисление Милнера, исчисление окружений Карделли и линейная логика Жерара.

Уметь:
  • специфицировать параллельные процессы средствами и в терминах изученных формализмов;
  • обосновывать корректность;
  • оценивать эффективность параллельных алгоритмов с использованием различных формальных моделей параллельных вычислений.

Владеть:
  • навыками использования автоматических средств верификации моделей параллельных и распределённых систем (верификаторами SMV и/или SPIN).

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



Аннотация учебной программы дисциплины

«Эффективное программирование специализированных вычислителей»


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

Для достижения поставленной цели выделяются следующие задачи:
  • изучение методов эффективного программирования процессора Cell B.E., видеоускорителей Nvidia GPU, ATI GPU с использованием оригинальных низкоуровневых средств разработки;
  • изучение методов эффективного программирования процессора Cell B.E., видеоускорителей Nvidia GPU, ATI GPU с использованием OpenCL;
  • освоение в рамках лабораторного практикума навыков эффективного программирования в различных средах разработки для различных распространённых современных специализированных вычислителей.

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

Изучение дисциплины направлено на формирование следующих общекультурных компетенций компетенций ОК-1, ОК-2, ОК-4, ОК-6, ОК-7, ОК-8 и профессиональных компетенций ПК-1, ПК-4, ПК-5, ПК-6, ПК-10 выпускника.

В результате изучения дисциплины студент должен:

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

Уметь:
  • выбирать подходящий для конкретного класса задач специализированный вычислитель и средство разработки;
  • использовать профилировщики и отладчики программ для различных специализированных вычислителей;
  • выявлять узкие места в программах;
  • оптимизировать их под заданный вычислитель.

Владеть:
  • средствами и методами эффективного программирования распространённых современных специализированных вычислителей.

Основные разделы и темы курса: