Скачать 1 Mb.
|
Содержание дисциплины Введение. Задача компиляции, требования к компиляторам. Основные фазы компиляции: построения абстрактного синтаксического дерева (front-end), машинно-независимая оптимизация, машинно-зависимая оптимизация, генерация объектного кода (back-end). Выявление ошибок в процессе компиляции и сообщения о них. Неформальный язык описания алгоритмов оптимизации (ICAN - Informal Compiler Algorithm Notation). Внутренние представления компилируемой программы. Исходный, целевой (объектный) и промежуточные языки. Абстрактное синтаксическое дерево как промежуточное представление высокого уровня. Трехадресный код ("четверки") как промежуточные представления среднего и низкого уровней. Атрибуты. Граф потока управления. Граф потока данных. Граф зависимостей. Построение абстрактного синтаксического дерева (AST). Синтаксически управляемый анализ исходной программы: лексический анализатор (сканер), синтаксический анализатор (парсер). Нисходящий (LL(1)) и восходящий (LR(1)) синтаксический анализ. Таблица символов: принципы ее организации и работы с ней. Анализ контекстных условий и вычисление атрибутов. Поддержка времени выполнения. Организация памяти: использование регистров, организация стека. Организация работы с динамической памятью (кучей). Организация работы со статическими и глобальными объектами. Вызов процедур и возврат из них. Передача параметров. Анализ потока управления. Построение графа потока управления для процедуры. Базовые блоки. Свойства графа потока управления: доминирование, алгоритмы обхода, остовое дерево, классификация дуг графа потока управления. Некоторые вспомогательные функции, определенные на графе потока управления. Выделение сильно связанных компонент. Интервалы и сводимость. Структурный анализ. Дерево управления. Анализ потока данных. Определение связей по данным между базовыми блоками. Необходимые сведения из теории решеток: определение решетки, решеточные операции частичного порядка, функции на решетках, монотонность, неподвижные точки, функции потока. Представление программы в статической форме с однократным присваиванием значений (SSA). Построение UD- и DU-цепочек и сети. Уточнение результатов структурного анализа. Анализ псевдонимов. Проблемы, связанные с обработкой элементов структур, элементов массивов и данных, доступных по указателям. Понятие псевдонима. Псевдонимы в языках программирования. Обнаружение и распространение псевдонимов. Построение графа зависимостей. Определение основных видов зависимостей в программе. Построение графа зависимостей по данным для базового блока. Зависимости в циклах и проблемы анализа возможности распараллеливания циклов. Тест расстояний. Граф зависимостей процедуры. Зависимости между динамическими объектами. Срезы программы и их построение. Машинно-независимая оптимизация. Обзор основных алгоритмов машинно-независимой оптимизации. Порядок применения оптимизирующих алгоритмов. Уровни оптимизации: локальная оптимизация (на уровне базовых блоков), глобальная оптимизация (внутри процедуры) и межпроцедурная оптимизация (в пределах доступной части программы). Оптимизация базовых блоков: вычисление константных выражений, замена операций на более простые, исключение избыточных вычислений, исключение мертвого кода, выбор оптимальной последовательности инструкций промежуточного языка. Простейшие методы глобальной оптимизации: распространение значений и копий и др. Исключение общих подвыражений. Оптимизация вызовов процедур и возвратов из них. Замена кода вызова процедуры на ее тело. Анализ и оптимизация циклов. Вынесение инвариантных вычислений за цикл. Выявление индуктивных переменных. Исключение индуктивных переменных. Исключение избыточных проверок условий окончания цикла. Разворачивание циклов. Построение промежуточного представления низкого уровня. Распределение памяти. Распределение регистров. Методы раскраски графов и их использование для оптимального распределения регистров. Другие подходы к проблеме распределения регистров. Планирование кода. Машинно-зависимая оптимизация. Планирование кода. Конвейеризация. Планирование трасс. Оптимизация ветвей. Исключение недостижимого и мертвого кода. Инвертирование циклов. Повышение локальности данных. Межпроцедурный анализ. Построение графа вызовов. Межпроцедурный анализ потока управления. Межпроцедурный анализ потока данных. Межпроцедурный анализ псевдонимов. Генерация объектного кода. Синтаксически-управляемый генератор Грехема-Гленвиля. Технология -burg: поиск термов путем сличения с образцом. Метод переписывания термов. Генераторы генераторов кода. Использование инструментальных средств. Обзор средств автоматизации разработки компиляторов. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ «Системы и технологии поддержки принятия решений» для подготовки бакалавров по направлению 231000 «Программная инженерия» (аннотация) Целью дисциплины является ознакомление студентов с современными технологиями хранения и анализа данных, обучение практическим навыкам по проектированию и разработке систем поддержки принятия управленческих решений. Задачами учебной дисциплины являются изучение современных методов организации хранения и обработки данных, теоретических основ оперативного анализа данных и интеллектуального анализа данных, принципов построения корпоративных информационных систем с функциями поддержки принятия управленческих решений. . Изучение учебной дисциплины вносит вклад в формирование следующих компетенций: умение понять поставленную задачу; умение грамотно пользоваться языком предметной области; владение методами математического и алгоритмического моделирования при анализе задач бизнеса, финансовой и актуарной математики. Дисциплина входит в вариативную часть профессионального цикла образовательной программы бакалавра. Студент должен иметь начальные сведения о технологиях разработки программного обеспечения, технологиях баз данных. В результате изучения дисциплины студент должен знать: общие вопросы построения корпоративных информационных систем с функциями поддержки принятия управленческих решений, основы современных технологий хранения и обработки данных - хранилищ данных, оперативного анализа, интеллектуального анализа данных. уметь: грамотно пользоваться языком предметной области, самостоятельно математически корректно ставить информационные задачи, разработать модель хранилища данных, провести OLAP-анализ для актуальных задач бизнеса. В программу дисциплины входят следующие тематические разделы: общие вопросы построения корпоративных информационных систем с функциями поддержки принятия управленческих решений; технология хранилищ данных; технология OLAP-анализа; технология Data Mining; методы генерации и оценки управленческих решений. Общая трудоемкость дисциплины составляет 4 зачетных единицы, 144 часа. На лабораторном практикуме студенты самостоятельно изучают методические рекомендации к лабораторным работам, осваивают инструментальные программные средства моделирования информационных систем, разработки хранилищ данных, OLAP-приложений. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ «Функциональное и логическое программирование» для подготовки бакалавров по направлению 231000 «Программная инженерия» (аннотация) Целью дисциплины является формирование и закрепление системного подхода при разработке программ с применением языков функционального и логического программирования (ФЛП). Задачи дисциплины: изучение базовых понятий и определений, используемых в функциональном и логическом программировании, освоение технологий программирования в программных средствах, используемых в современных языках функционального и логического программирования. При изучении дисциплины закрепляются такие общепредметные умения, как выбор язык программирования для решения поставленной задачи, выбор способа представления исходных данных и выбор метода решения поставленной задачи. Дисциплина входит в вариативную часть профессионального цикла образовательной программы бакалавра. При изучении дисциплины студент должен иметь знания по методам обработки информации, техническим и программным средствам вычислительных систем, математическим основам информатики. Дисциплина, следующая за ФЛП – системы искусственного интеллекта. В результате изучения дисциплины студент должен знать: системы разработки программ с использованием языков функционального и логического программирования, методы программирования с использованием языков ФЛП, разработка программ с применением языков ФЛП; уметь: обосновать выбор языка (языка функционального или логического программирования) для решения конкретных задач; разрабатывать и тестировать программы с применением программных средств, используемых в современных языках ФЛП. Дисциплина включает следующие разделы. Функциональное программирование: введение; основные понятия; базовые функции языка Lisp; определение функций; управляющие структуры; рекурсия; функции более высокого порядка; внутреннее представление списков; макросы; массивы; входные и выходные потоки. Логическое программирование: подходы к программированию на языке Пролог; синтаксис языка Пролог; унификация; рекурсивные процедуры; операторы; списки; средства управления ходом выполнения программы. На лабораторном практикуме студенты применяют теоретические знания для создания программ с использованием функционального и логического стилей программирования. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ «Защита информации» для подготовки бакалавров по направлению 231000 «Программная инженерия» (аннотация) Цели освоения дисциплины Дисциплина "Защита информации" предназначена для студентов третьего курса, обучающихся по направлению 231000 «Программная инженерия». В результате изучения курса студент должен знать современные методы обеспечения целостности и защиты информации и программных средств от несанкционированного доступа и копирования, состав и организацию систем информационной безопасности, методы криптографических преобразований, основные стандарты и протоколы шифрования и электронной подписи. Студент должен уметь выбрать соответствующие организационные и программно- аппаратные средства для организации систем информационной защиты Общая трудоемкость дисциплины составляет 5 зачетных единиц, 180 часов. Содержание дисциплины Классификация средств защиты информации и программного обеспечения от несанкционированного доступа и копирования: средства собственной защиты, средства защиты в составе вычислительной системы, средства защиты с запросом информации. Активные и пассивные методы защиты программного обеспечения. Средства и методы защиты дисков от несанкционированного доступа и копирования. Способы создания ключевых носителей информации. Привязка программных средств к конкретному компьютеру. Критерии выбора системы защиты. Технические устройства защиты информации и программного обеспечения. Принципы действия электронных ключей. Организация систем защиты информации от несанкционированного доступа. и пользователя, файла, вычислительной системы. Выбор пароля. Установление полномочий. Матрица установления полномочий. Иерархические системы установления полномочий. Системы регистрации пользователей, событий, используемых ресурсов. Компьютерное пиратство. Основы криптографии. Критерий надежности шифрования. Основные криптографические приемы. Блочное шифрование. Схема поточного шифрования. Использование генераторов псевдослучайных чисел для шифрования. Шифрование с открытым ключом. Идентификация электронной подписи. Стандарты шифрования данных . Сжатие данных как способ кодирования. Кодирование Хаффмена. Адаптивное сжатие по Хаффмену. Арифметическое кодирование. Алгоритм сжатия Lempel-Ziv-Welch. Компьютерные вирусы. Вирусы, заражающие загрузочные сектора. Файловые вирусы. Загрузочно-файловые вирусы. Полиморфные вирусы. Организационные и программные способы борьбы с вирусным заражением программного обеспечения. Правовые основы защиты информации. Применение патентования и норм авторского права при защите программных продуктов. Основные положения Закона об охране программ для ЭВМ и баз данных. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ «Системы искусственного интеллекта» для подготовки бакалавров по направлению 231000 «Программная инженерия» (аннотация) Цели освоения дисциплины Дисциплина "Системы искусственного интеллекта" предназначена для студентов четвертого курса, обучающихся по направлению 231000 «Программная инженерия». Целью преподавания дисциплины является знакомство с методами и технологиями построения интеллектуальных систем. Основная задача дисциплины – обучить методам решения прикладных задач с применением технологий искусственного интеллекта. В результате изучения дисциплины студент должен знать основные технологические подходы к построению интеллектуальных систем, критерии выбора инструментальных средств, методы автоматизации формирования знаний. В результате изучения дисциплины студент должен научиться применять изученные технологии для создания интеллектуальных систем. Общая трудоемкость дисциплины составляет 4 зачетных единицы, 144 часа. Содержание дисциплины Технологические аспекты построения интеллектуальной системы. Этапы технологического процесса разработки экспертной системы: обоснование, идентификация, концептуализация, формализация, реализация, тестирование. Уровни реализации: демонстрационный прототип, исследовательский прототип, действующий прототип, промышленная система, коммерческая система. Показатели качества: работоспособность, достоверность и информативность решений. Показатели быстродействия: относительные временные затраты, эффективность вывода, количество изменений состояния рабочей памяти в единицу времени. Аппаратные и программные инструментальные средства. Символьные языки программирования. Специализированные языки инженерии знаний, "пустые" системы, оболочки. Критерии оценки инструментальных средств: универсальность, мощность, эффективность. Характеристические особенности инструментальных систем высокого уровня. Современный рынок оболочек. Методы приобретения знаний. Языки представления знаний и текстовые редакторы. Интеллектуальные редакторы. Методы автоматизированного формирования знаний. Методы извлечения знаний. Принципы индуктивного обобщения. Обобщение по признакам. Обобщение по структурам. Системы автоматического формирования знаний. Примеры построения интеллектуальных систем для решения различных прикладных задач. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ «Параллельное программирование» для подготовки бакалавров по направлению 231000 «Программная инженерия» (аннотация) Цели освоения дисциплины Дисциплина «Параллельное программирование» предназначена для студентов четвёртого курса, обучающихся по направлению 231000 «Программная инженерия». Целью изучения дисциплины является обучение студентов методам параллельных вычислений при решении ряда задач оптимизации, методам организации оптимальных параллельных вычислительных процессов управления и информационного обслуживания, методам диспетчирования и синхронизации. Общая трудоемкость дисциплины составляет 4 зачётных единиц, 144 часа. Содержание дисциплины
Тема 12.Применение SPMD-технологии при построении сетевых баз данных с циркулирующей информацией. Рассматривается проблема оптимизации информационного обслуживания сетевой базой данных. База данных из традиционной одноканальной превращается в многоканальную систему массового обслуживания. Для этого, на основе SPMD-технологии, система управления базой данных "размножается" среди рабочих станций или серверов, обеспечивая параллельный доступ. Сегменты базы данных с помощью ротации обеспечивают этот доступ, а также синхронизацию обращения. Тема 13.Сетевые технологии параллельного программирования. Анализируются возможности применения локальной вычислительной сети в качестве вычислительного комплекса для распределенных вычислений. Рассматриваются основные структуры ЛВС и организация в них информационного взаимодействия рабочих станций. Приводится пример возможной организации вычислений методом "сеток". Тема 14.Параллельные и сетевые технологии решения задач линейного программирования. Предлагаются параллельные методы решения задач линейного и целочисленного линейного программирования. Методы предполагают применение SPMD-технологии в вычислительных сетях и в многопроцессорных вычислительных системах. Тема 15.Параллельные методы расчета транспортной сети. Предлагаются параллельные методы решения транспортной задачи без ограничений и с ограничениями на пропускную способность коммуникаций, а также задачи нахождения максимального потока в сети. Методы применимы при использовании майнфреймов, мультимикропроцессорных ВС в составе РС, а также при создании сетевых технологий решения сложных задач. Тема 16.Некоторые задачи нелинейного программирования и нахождение опорного плана для задачи линейного программирования. Предлагаются параллельные методы решения задач нелинейного программирования с линейными ограничениями, произвольной "плоской" задачи нелинейного программирования, а также метод нахождения опорного плана для задачи линейного программирования на основе анализа нормалей к поверхности многогранника допустимых решений. Тема 17.Параллельное программирование — аппарат исследования операций. Освещаются две основные, взаимно обратные задачи исследования операций: нахождение минимального количества исполнителей для завершения комплекса работ за заданное время и нахождение плана выполнения работ за минимальное время заданным составом исполнителей. Тема 18.Организация и оптимизация параллельных процессов. Рассматриваются различные схемы организации параллельных управляющих вычислительных процессов. Приводятся концептуальные основы параллельного программирования в МВК семейства "Эльбрус". Тема 19.Организация параллельной обработки информации в АСУ коллективного пользования. Рассматриваются принципы организации параллельного вычислительного процесса в управляющей системе с многоканальным доступом. Вычислительный процесс обеспечивает устойчивость по отношению к отказам процессоров. Тема 20.Диспетчирование параллельных вычислительных систем. Предлагаются диспетчеры для оптимального динамического распределения работ между процессорами однородной и неоднородной вычислительной системы. Рассматриваются множества независимых и частично упорядоченных работ. Тема 21.Синхронизация параллельных процессов. Рассматриваются средства и задачи синхронизации параллельных процессов при использовании общих ресурсов во избежание коллизий и тупиковых ситуаций. Тема 22.Эффективность вычислительных систем. Освещаются проблемы оценки производительности многопроцессорных вычислительных систем, организации помехоустойчивых вычислений и оценки надежностных характеристик при испытаниях. |
Минобрнауки России от 19 декабря 2013 г. N 1367. Рабочая программа дисциплины предназначена для бакалавров всех форм обучения | Программа дисциплины предназначена для студентов, обучающихся по направлению 030900. 62 «Юриспруденция» (программа подготовки бакалавров).... | ||
Программа предназначена для преподавателей, ведущих дисциплину «Английский язык» для студентов, обучающихся по направлению 09. 03.... | Рабочая программа по дисциплине «Экологическое право» для бакалавров дневного отделения, обучающихся по направлению подготовки –... | ||
Программа предназначена для преподавателей, ведущих дисциплину «Английский язык» для студентов, обучающихся по направлению 09. 03.... | Рабочая программа предназначена для преподавания дисциплины по выбору «Законодательство о банкротстве: современная практика применения»... | ||
Учебно-методическое пособие составлено в соответствии с программой дисциплины «Маркетинг» и предназначено для практических занятий... | Цель геодезической практики развитие профессиональных компетенций и навыков их реализации у студентов в соответствии с требованиями... | ||
Рабочая программа предназначена для преподавания дисциплины вариативной части профессионального цикла студентами очной формы обучения... | П. П. Рабочая программа производственной практики для студентов, обучающихся по направлению подготовки 230700. 62 «Прикладная информатика»,... |
Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |