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

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

Содержание


Аннотация учебной программы дисциплины
Основные разделы курса
Задачи дисциплины
Математические основы инженерии распределённых систем.
Моделирование и верификация физического уровня распределённой системы.
Технологический процесс разработки глобальных распределенных систем.
Раздел 3. Компьютерные технологии в образовании
Продвинутые компьютерные архитектуры
Проектирование программных систем
Языки описания аппаратуры
Визуализация графов
Подобный материал:
1   2   3

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


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


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

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

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

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

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

Знать

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

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

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

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

Уметь

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

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

Владеть

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

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

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


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


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

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


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

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

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

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

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

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

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


Основные разделы и темы курса:
  • Введение. Глобальная интеграция ресурсов – основная задача автоматизации на современном этапе. Примеры глобальных распределённых приложений. Современные принципы разработки распределённых систем.
  • Математические основы инженерии распределённых систем. Формализация коммуникационного времени. Шаблоны проектирования. Компонентное проектирование. Языки описания архитектуры (Architecture Description Languages, ADL).
  • Моделирование и верификация физического уровня распределённой системы. Оценка производительности систем. Модели вычислений. Статистические методы анализа потоков данных.
  • Инженерия данных в распределённых системах. Классификация систем, управляемых данными. Метаданные и стандарт Dublin Core. Инициатива Semantic Web. Языки RDF и OWL.
  • Организация совместной работы ресурсов. Шаблоны проектирования рабочих процессов. Языки управления рабочими процессами (Workflow Management Languages, WfML). Технология Web Service Orchestration, язык BPEL4WS.
  • Инженерия систем реального времени. Распределённые системы реального времени, SCADA-системы. Синхронный (synchronous) подход к моделированию систем реального времени. Языки Lustre и Esterel.
  • Концепция программного агента. Требования к агентам. Мультиагентные системы (multiagent systems), языки взаимодействия агентов. Автономные вычисления (autonomic computing).
  • Веб-интерфейс распределённых приложений. Интеграция доступа к гетерогенным информационным ресурсам. Архитектура портала. Технологические платформы создания порталов.
  • Технологии Grid. Основные требования к Grid-системам. Три стадии развития Grid-технологий: интеграция аппаратных ресурсов, интеграция служб, адаптивная интеграция.
  • Архитектура Grid-систем. Формальный подход к проектированию Grid-систем. Открытая архитектура Grid-служб (Open Grid Service Architecture, OGSA).
  • Основные компоненты интеграционного слоя Grid-систем. Платформа Globus Toolkit. Средства управления ресурсами и данными в Grid-среде. Grid-порталы. Обзор технологических платформ Grid-систем.
  • Технологический процесс разработки глобальных распределенных систем. Принципы моделирования системы. Многомерная декомпозиция. Реализация путем интеграции гетерогенных компонентов.



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

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

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


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

Изучение дисциплины направлено на формирование общекультурной компетенции ОК-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. Проблемы становления информатики

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

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

Раздел 3. Компьютерные технологии в образовании

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



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

«Процесс-ориентированное программирование»

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

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

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

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

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

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

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

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

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

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

Основные разделы курса:
  • Конечный автомат. Исторические предпосылки создания модели конечного автомата, достоинства и недостатки с точки зрения современных тенденций в области информационных технологий;
  • Специфика задач промышленной автоматизации. Событийность. Цикличность. Синхронизм. Логический параллелизм;
  • Гиперпроцесс. Процесс и событийный полиморфизм. Функция-состояние. События и реакция на событие. Математическая модель;
  • Физический и логический параллелизм;
  • Реализация гиперавтомата. Использование процедурных языков, языки стандарта МЭК 61131-3 и возможные альтернативы;
  • Язык Рефлекс. Концептуальная основа языка и базовые компоненты языка
  • Типовые задачи промышленной автоматизации. Логическое управление. Операции с временными интервалами. Логический параллелизм. Свойства структурности и абстрактности.
  • Сложные алгоритмы. Верификация и моделирование с использованием компьютерного моделирования и виртуальных объектов управления.

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


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

« Продвинутые компьютерные архитектуры»


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

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

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

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

Знать:
  • классические компьютерные архитектуры PDP-11, AP-120B, CRAY-1, x86 и др.

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

Владеть:
  • принципами построения многопроцессорных систем.

Основные разделы курса:
  • Функциональная и структурная организация процессора. Микропрограммное управление. Организация данных и способы адресации.
  • Особенности CISC и RISC архитектур.
  • Организация памяти ЭВМ.
  • Виртуальная память, сегментация и страничная организация.
  • Основные стадии выполнения команды. Конвейерная организация ЭВМ.
  • Суперскалярность, суперконвейер. Кремниевая компиляция. VLIW, EPIC-архитектуры.
  • Организация ввода-вывода.
  • Периферийные устройства.
  • Архитектурные особенности организации ЭВМ различных классов. Процессорные ядра на базе ПЛИС.
  • Классификация параллельных систем. Организация памяти параллельных систем.



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

« Проектирование программных систем»


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

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

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

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

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

Основные разделы курса:
  1. Ресурсы в программных системах и их распределение в программных системах, в том числе и расширяемых.
  2. Механизмы доступа к данным и обработка исключительных ситуаций с точки зрения безопасности, надежности, переносимости и расширяемости программной системы, а также различных технологий и языков программирования.
  3. Механизмы обработки исключений и различные техники их практического использования: сравнение различных способов использования возбуждения и обработки исключений с классическим способом возвращения и обработки кодов ошибки.
  4. Постоянные данные (persistent data), сохранение/восстановление объектов и способы их реализации, также учитывающих возможность будущих расширений самих объектов, обеспечение переносимости данных между различными платформами.
  5. Различные понятия о "модуле" программной системы. Проблематика, методики и практические аспекты декомпозиции программной системы на модули. Особенности проектирования и реализации расширяемых и переносимых систем с динамической загрузкой модулей. Проектирование интерфейса внешних модулей в расширяемой программной системе с использованием современных технологий.
  6. Особенности разработки программ и программных систем при поддержке в языках программирования конструкторов и деструкторов, обработки исключительных ситуаций и сборки мусора и их влияние на дизайн системы объектов и классов, а также архитектуру проектируемой системы.
  7. Рассмотрение и анализ различных подходов к дизайну системы объектов и классов расширяемой программной системы. Примеры существующих расширяемых систем и обзор промышленных стандартов, поддерживающих расширяемость программных систем.
  8. Проблематика и современные методы управления программными проектами. Особенности проектирования и разработки программной системы при условии реализации проекта несколькими независимыми коллективами.

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


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

« Языки описания аппаратуры»


Дисциплина «Языки описания аппаратуры» имеет своей целью обучение базовым знаниям по организации построения современных вычислительных аппаратных систем на базе программируемой логики FPGA.

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

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

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

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

Знать:
  • современные вычислительные архитектуры на базе FPGA;
  • особенностях архитектуры FPGA и CLPD;
  • принципах построения конвейерной обработки данных;
  • контроллерах памяти, порта COM и видео-порта VGA;
  • возможностях работы со звуком. Ввод, обработка и вывод.

Уметь:
  • осваивать новые вычислительные архитектуры,
  • сопоставлять стоимость и затраты на реализацию задачи,
  • разрабатывать и реализовывать различные контроллеры интерфейсов на языках описания аппаратуры (VHDL / Verilog).

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

Основные разделы курса:
  • Виды программируемой логики. Отличие архитектур PLD и FPGA: Устройство CLB. Механизм реконфигурирования.
  • RTL-модели. Что такое «вентиль». Реализация последовательных и параллельных сумматоров. Коды Хэмминга. Схемы ускоренного умножения.
  • Поведенческие модели на языке VHDL. Модули и компоненты.
  • Проект в понятиях ISE. Этапы синтеза, имплементации. Создание программного файла. Матричный принцип организации клавиатуры.
  • Примитивы: сумматора, счетчика, сдвиговые регистры. Реализация умножителя и делителя. Интерфейс JTAG. Логические анализаторы уровней.
  • Последовательный порт COM. Контроллер через USB. Особенности реализации контроллеров на языке VHDL.
  • Принципы построения вычислительных конвейеров на базе программируемой логики.
  • Звуковые контроллеры. Фильтры с откликом. Эффект реверберации. Цифровой ревербератор.
  • Память статическая и динамическая. Базовая архитектура и принципы работы. Запоминающие элементы. Архитектура динамической памяти повышенной производительности DDR.
  • Вывод видеоинформации на монитор. Принципы работа стандарта VGA. Предельные пропускные способности.
  • Возможные приемы для повышения производительности вычислительной системы. Использование встроенных возможностей FPGA.
  • Работа с клавиатурой. Частота опроса нажатия клавиш. Борьба с «двойным нажатием». Распознавание «двойного щелчка».

Обзор существующих параллельных вычислительных систем. СБИС. Матричные процессоры для обработки сигналов и изображений. Принципы разработки СБИС-архитектур.

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

" Визуализация графов"


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

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

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

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

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

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