Реферат: Программа дисциплины «Методы обработки экспериментальных данных»


Приложение В. Аннотации рабочих программ учебных курсов.


ПРОГРАММА ДИСЦИПЛИНЫ

«Методы обработки экспериментальных данных»


Рекомендуется для подготовки магистров

по направлению 231000.68 «Программная инженерия»


(Аннотация)


Цели освоения дисциплины

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

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

В результате изучения дисциплины «Методы обработки экспериментальных данных» приобретаются знания: о существующих подходах к обработке и анализу данных и основных методах статистических расчетов.

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

Студент должен получить навыки по обработке данных с использованием современных математических пакетов, таких как, MatLab, MathCad, Statistica.


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


Содержание дисциплины

Введение. Основные этапы обработки информации. Основные статистические характеристики.

Классификация в распознавании образов. Байесовская теория принятия решений при дискретных и непрерывных признаках. Идеи классификации. Прямые методы восстановления решающей функции.

Планирование эксперимента. Планирование эксперимента при построении линейной статической модели объекта. Полный факторный эксперимент. Дробные реплики. Обработка результатов эксперимента. Ортогональное планирование второго порядка.

Методы непараметрической обработки информации. Оценивание функционалов. Простейшие оценки функции и плотности распределения вероятности. Оценка Розенблатта-Парзена. Оценивание условной плотности вероятности. Оценка регрессии. Адаптивное управление при априорной неопределенности.

Дисперсионный анализ. Многофакторный дисперсионный анализ. Ковариационный анализ.

Временные ряды. Анализ трендов и сезонности. ARIMA процессы.

Идентификация статических моделей объектов. Критерий наименьших квадратов. Адаптивные алгоритмы метода наименьших квадратов. Простейший адаптивный алгоритм подстройки параметров.

^ ПРОГРАММА ДИСЦИПЛИНЫ

«Методы оптимизации в примерах и задачах»


Рекомендуется для подготовки магистров

по направлению 231000.68 «Программная инженерия»


(Аннотация)


Цели освоения дисциплины

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

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

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

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

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


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


Содержание дисциплины

Введение в методы оптимизации. Классификация задач оптимизации. Целевая функция и ее некоторые свойства. Задачи оптимизации.

Одномерная оптимизация. Безградиентные методы детерминированного поиска. Аналитический метод. Численные методы поиска экстремума. Метод локализации экстремума. Метод деления интервала пополам. Метод дихотомии. Метод «золотого сечения». Метод поиска экстремума с использованием чисел Фибоначчи. Аппроксимация кривыми. Квадратичная аппроксимация.

Многомерная оптимизация. Аналитический метод. Методы поиска для функций N переменных. Градиентные методы. Задачи без ограничений. Метод покоординатного спуска. Метод скорейшего спуска. Метод наискорейшего спуска. Методы прямого поиска для функций N переменных. Метод Ньютона. Метод Хука-Дживса. Симплексный метод.

Задачи с ограничениями. Поиск оптимума в задачах с ограничениями типа равенств. Метод неопределенных множителей Лагранжа. Поиск оптимума в задачах с ограничениями типа неравенств. Метод штрафных функций. Градиентный метод.


^ Программа дисциплины

«Комплексная защита информации»

(аннотация)


Дисциплина «Комплексная защита информации» предназначена для магистрантов обучающихся по направлению 231000.68 «Программная инженерия».

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

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


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

^ Основные разделы дисциплины

Предмет и объект защиты.

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

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

Защита информации от случайных угроз.

Методы и средства защиты информации в КС от традиционного шпионажа и диверсий.

Методы и средства защиты от электромагнитных излучений и наводок.

Методы защиты от несанкционированного изменения структур КС.

Защита информации в КС от несанкционированного доступа.

Криптографические методы защиты информации.

Компьютерные вирусы и механизмы борьбы с ними.

Защита информации в распределенных КС.

Построение комплексных систем защиты информации

Организация функционирования комплексных систем защиты информации


^ Программа дисциплины

«Компьютерная обработка результатов эксперимента»

(аннотация)


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

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

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


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

^ Основные разделы дисциплины

Обработка результатов эксперимента.

Формулировка задачи.

Преобразование исходных данных.

Расчёт параметров уравнения модели.

Теоретическое обоснование уравнения модели.

Статистическое обоснование уравнения модели.

Реализация программы компьютерной обработки данных.


^ Программа дисциплины

«Междисциплинарный курсовой проект»

(аннотация)


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

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

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

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


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

^ Основные разделы дисциплины

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


^ Программа дисциплины
«Методология научных исследований»
(аннотация)


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

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

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


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

^ Основные разделы дисциплины

Философские основы методологии научного исследования. Сущность обыденного и научного познания. Понятие о методе и методологии научного исследования. Типология методов научного исследования.

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

Уровни и методы научного исследования. Понятие и содержание уровней научного исследования. Методы сбора эмпирической информации. Наблюдение. Специфика социологических наблюдений. Эксперимент. Особенности социологического эксперимента. Сравнение и измерение. Проблема измерения в социологических исследованиях. Методы теоретического обобщения эмпирической информации. Общелогические методы научного исследования. Теоретические методы научного исследования. Исторический и логический методы научного исследования.

Социологическое исследование как способ научного познания. Характеристика социологического исследования и его видов. Структура и основные элементы социологического исследования. Содержательный анализ программы социологического исследования. Методология программирования социологического исследования. Методика программирования социологического исследования. Модель программы социологического исследования. Методы анализа и обработки социологической информации.


^ Программа дисциплины

«Методология программной инженерии»
(аннотация)


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

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

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


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

^ Основные разделы дисциплины

Программная инженерия в жизненном цикле программных средств.

Профили стандартов жизненного цикла программных систем.

Модели и процессы управления проектами.

Системное проектирование программных средств.

Технико-экономическое обоснование проектов программных средств.

Разработка требований к программным средствам.

Планирование жизненного цикла программных средств.

Объектно-ориентированное проектирование программных средств.

Управление ресурсами в жизненном цикле программных средств.

Дефекты, ошибки и риски в жизненном цикле программных средств.

Характеристики качества программных средств.

Выбор характеристик качества в проектах программных средств.

Верификация, тестирование и оценивание корректности программных компонентов.

Интеграция, квалификационное тестирование и испытания комплексов программ.

Сопровождение и мониторинг программных средств.

Управление конфигурацией в жизненном цикле программных средств.

Документирование программных средств.

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

^ Программа дисциплины

Иностранный язык

(Аннотация курса)


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


Формируемые компетенции: ИК-3 – владение специальной лексикой иностранного языка, основной терминологией сферы своей профессиональной деятельности, навыками устной и письменной речи, перевода общего и профессионального текста, техникой общения и иностранным партнером; СЛК-1 – способность к профессиональному росту через умение обучаться самостоятельно, планировать и реализовывать устранение пробелов в знаниях; ПК-10.


Трудоемкость дисциплины: 8 ЗЕ, 288 часов


^ ПРОГРАММА ДИСЦИПЛИНЫ

«Методы и алгоритмы глобальной оптимизации»


Рекомендуется для подготовки магистров

по направлению 231000.68 «Программная инженерия»


(Аннотация)


Цели освоения дисциплины

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

Цель изучения дисциплины «Методы и алгоритмы глобальной оптимизации» состоит в формировании базы знаний и умений по такому направлению математики, как методы исследования и решения задач глобальной оптимизации.

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

Студент должен уметь формулировать задачу глобальной оптимизации и выбирать подходящий для ее решения метод оптимизации.

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


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


Содержание дисциплины

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

Случайный поиск. Предпосылки случайного поиска. Алгоритмы случайного поиска. Метод мультистарта.

Генетические алгоритмы глобальной оптимизации. История появления эволюционных алгоритмов. Генетические алгоритмы. Символьная модель простого генетического алгоритма. Работа простого генетического алгоритма.

Метод усреднения координат. Алгоритмы поисковой оптимизации. Поиск экстремума при наличии помех. Использование непараметрических оценок инверсных регрессий. Поиск главных минимумов.

Условная минимизация при ограничениях типа неравенств. Условная минимизация при ограничениях типа равенств. Условная минимизация при ограничениях типа неравенств и равенств.

Программный комплекс глобальной оптимизации «Global Optimizer v2.0». Общее описание системы. Решение задач оптимизации.


^ Программа дисциплины

«Методы принятия решений в сложных системах»

(аннотация)


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

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

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


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

^ Основные разделы дисциплины

Проблемы принятия решений в управлении экономическими системами.

Основные понятия и категории теории принятия решений.

Технология принятия решений.

Описание и анализ проблемной ситуации.

Принятие решений в структурированных систуациях.

Групповой выбор для структурированных задач.

Примеры решения структурированных задач.

Решение многокритериальных задач.

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

Методы решения многокритериальных задач со структурированными критериями.

Примеры компьютерного решения многокритериальных задач.

Примеры многокритериальных задач с группировкой критериев.

Принятие решений в условиях риска и неопределенности.

Экспертные (групповые) методы выбора в сложных задачах принятия решений.

Автоматизация процедур принятия решений.


^ Программа дисциплины

«Методы разработки ПО для АСУ»

(аннотация)


Дисциплина «Методы разработки ПО для АСУ» предназначена для магистрантов обучающихся по направлению 231000.68 «Программная инженерия».

Целью преподавания дисциплины "Методы разработки ПО для АСУ" является изучение магистрантами методов разработки программного обеспечения для автоматизированных управляющих систем.

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

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


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

^ Основные разделы дисциплины

Комплексы средств для АСУ. Сети передачи данных. Локальные технологические станции. Операторские станции. Координирующие станции. Программное обеспечение. Системные характеристики комплексов. Современные комплексы для АСУ. Проблемы проектирования ПО для АСУ. Общая схема проектирования. Построение функционального графа. Определение структуры вычислительной системы АСУ. Выбор состава ПО. Размещение операций обработки, прикладных программ и массивов данных. Расчет и улучшение показателей эффективности прикладных функций. Минимизация времени выполнения периодических прикладных функций. Сокращение запаздывания выполнения непериодических прикладных функций. Надежность АСУ.

Программа дисциплины

«Моделирование»

(аннотация)


Дисциплина «Моделирование» предназначена для магистрантов обучающихся по направлению 231000.68 «Программная инженерия».

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

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

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

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


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

^ Основные разделы дисциплины

Методы моделирования, применяемые при исследовании сложных систем

Объектно-классификационное моделирование сложных систем

Имитационные модели исследования сложных систем

Современные информационные технологии в моделировании сложных систем


Программа дисциплины

^ ПАРАДИГМЫ И СТИЛИ ПРОГРАММИРОВАНИЯ

(Аннотация курса)

Цели освоения дисциплины

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

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

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

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

^ Содержание дисциплины

Обзор парадигм программирования и представлены наиболее очевидные особенности применения языков программирования, отражающие расширение класса решаемых задач, прогресс элементной базы и рост квалификации программистов. Ключевые моменты развития парадигм программирования и закономерности в процессе реализационного освоения новых областей обработки информации. Следствия теоремы Гёделя о неполноте для программирования. Логическая несовместимость разных классов задач. Практическая несовместимость внутри стилей. Взаимодействия и сочетаемость стилей.

Определение систем программирования. Определение семантики языка программирования в виде интерпретатора, задающего операционную семантику на примере подмножества существующего языка.

Парадигма низкоуровневого программирования. Язык ассемблера. Основные методы адресации памяти. Определение языково-ориентированной абстрактной машины. Использование абстрактной машины для определения операционной семантики языка программирования по Венской методике. Машинно-независимое эффективное программирование. Приемы и примеры программирования на языке Forth, его основные преимущества и недостатки

Языки управления процессами. Технические проблемы управления процессами. Базовые средства для решения таких проблем на уровне функционирования операционных систем, исполнения отдельных задач и разработки информационных систем. Языки реализации операционных систем.

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


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

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

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

Языки параллельного программирования. Основные понятия, достоинства и недостатки языков параллельного программирования, сферы их применения. Приемы практического использования языков параллельного программирования.

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

Тенденции современного программирования, еще не получившие языковой поддержки. Компонентное программирование.


Программа дисциплины

^ ПРАКТИКУМ ПО РАЗРАБОТКЕ КОМПИЛЯТОРОВ

(Аннотация курса)


Цели освоения дисциплины

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

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

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


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


^ Содержание дисциплины

Место трансляторов в системном программном обеспечении. Процесс трансляции: этапы, фазы и проходы. Компиляторы и интерпретаторы. Организация таблиц идентификаторов и методов их поддержки. Обработка ошибок. Основы теории формальных языков и грамматик. Синтаксис и семантика. Алфавит языка. Регулярные выражения. Сентенциальная форма и предложение. Продукции и их использование для описания порождения предложений языка. Классификация Хомского языков и грамматик: регулярные, контекстно-свободные, контекстно-зависимые и рекурсивно-перечислимые языки и грамматики. Эквивалентные и неоднозначные грамматики и языки. Ограничения контекстно-свободных грамматик. Атрибутные грамматики. Распознаватели и преобразователи.

Задачи фазы лексического анализа. Распознаватели – конечные автоматы. Состояния автомата и переходы между ними. Табличное и графическое представление конечных автоматов. Три эквивалентных способа описания регулярных языков: регулярные выражения, регулярные грамматики и конечные автоматы. Связь между регулярными грамматиками и конечными автоматами. Автоматизированные средства генерации программ лексического анализа на основе расширенных регулярных выражений на примере программы flex.

Нисходящий синтаксический анализ. Левое порождение предложения языка. Символы предпросмотра. Множества первых порождаемых символов. Стартовый символ и символ-последователь. Алгоритмы синтаксического анализа для LL(K)-грамматик. LL(1)-грамматики и языки. Метод рекурсивного спуска. Преобразование грамматик: удаление левой рекурсии и факторизация. Введение действий в грамматику. Восходящий синтаксический анализ. Действия: перенос, свертка, переход и допуск. Конфликты перенос-свертка и свертка-свертка. LR(K)-грамматики и языки. Алгоритмы синтаксического анализа для LR(K)-грамматик. Таблица синтаксического анализа как основа синтаксического анализатора. LR(0)-, SLR(1)-, LALR(1)- и LR(1)-грамматики. Автоматизированные средства генерации программ синтаксического анализа на основе LALR(1)-грамматик на примере программы BYacc.

Не-контекстно-свободные характеристики языков. Примеры. Таблицы трансляции. Идентификаторы: переменные, функции, типы, метки. Включение семантики в алгоритмы синтаксического анализа.

Распределение памяти как фаза трансляции, вызываемая генератором кода. Память глобальная и локальная, статическая и динамическая. Управление динамической памятью. Стек, куча. Адреса времени компиляции и времени выполнения. Стековый фрейм, дисплеи. Методы управления кучей: сборка мусора и использование счетчиков ссылок. Генерация промежуточного кода. 3-адресный код, P-code и байт-код.


^ Программа дисциплины

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

(аннотация)


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

Целью преподавания дисциплины "Проектирование программных систем, ориентированных на предметную область" является приобретение магистрантами знаний о современных технологиях проектирования программных систем, ориентированных на предметную область (DDD – Domain Driven Design).

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

В результате изучения дисциплины магистрант будет знать принципы определения цели и области действия программного проекта, принципы создание структуры пооперационного перечня работ, технологии идентификации задач и действий, принципы распределения ресурсов, принципы формирования рабочего графика, спецификацию требований к ПО. Уметь производить выбор жизненного цикла разработки ПО с ориентацией на предметную область, анализировать процессы предметной области, производить отбор команды разработчиков проекта, производить оценку размера и возможности повторного использования ПО в смежных проблемных областях, производить оценку длительности и стоимости разработки ПО, разрабатывать спецификацию требований к ПО. Иметь представление об agile-методике проектирования ПО, рефакторинге модели и исходного кода.


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


^
еще рефераты
Еще работы по разное