Ю. А. Самарский 8 декабря 2010 г. Программа

Вид материалаПрограмма

Содержание


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

УТВЕРЖДАЮ

Проректор по учебной работе

Ю.А.Самарский

8 декабря 2010 г.


ПРОГРАММА



по дисциплине: ИНФОРМАТИКА И ПРИМЕНЕНИЕ КОМПЬЮТЕРОВ В НАУЧНЫХ ИССЛЕДОВАНИЯХ (Прикладное программное обеспечение). Основной курс

по направлению подготовки:

010900 «Прикладные математика и физика»

факультеты ФОПФ

кафедра ИНФОРМАТИКИ

курс II

семестр 4

лекции – нет Экзамен – нет

семинарские занятия – 32 (час) Зачет – дифференцированный

практические занятия – 32 (час) Самостоятельная работа – 64 часа

Задания – нет

Контрольные работы – нет

Курсовая работа – 1


^ ВСЕГО АУДИТОРНЫХ ЧАСОВ – 64


Программу составил профессор, д.ф.-м.н. Л.Н. Столяров


Программа обсуждена

на заседании кафедры

информатики

5 декабря 2010 г.


Заведующий кафедрой И.Б.Петров

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

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

б) профессиональные (ПК), в том числе:

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

в области научно-исследовательской и аналитической деятельности:
  • способность эксплуатировать современную аппаратуру и оборудование для выполнения прикладных математических и физических исследований, направленных на решение физико-технических, естественнонаучных, экономических и иных задач (ПК-14);

в области инновационной, конструкторско-технологической и производственно-технологической (в сфере высоких и наукоёмких технологий) деятельности:
  • способность применять на практике базовые профессиональные знания теории и методов математических и физических исследований, направленных на решение инженерных, технических, экономических, экологических, информационных и технологических инновационных задач (ПК-16);
  • способность понимать, излагать и критически анализировать получаемую информацию и представлять результаты прикладных математических, физических исследований, направленных на решение инженерных, технических, социально-экономических, информационных технологических инновационных задач (ПК-17);

в области проектной и организационно-управленческой деятельности:
  • умение участвовать в разработке и реализации проектов исследовательской и инновационной направленности в команде исполнителей (ПК-19).

В результате освоения дисциплины ИНФОРМАТИКА И ПРИМЕНЕНИЕ КОМПЬЮТЕРОВ В НАУЧНЫХ ИССЛЕДОВАНИЯХ (Прикладное программное обеспечение) обучающийся должен:

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

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

владеть:
  • объектно-ориентированным языком программирования (С++, Java, C#) и средствами использования стандартных библиотек.

^ Структура преподавания дисциплины

Теоретические основы объектно-ориентированного проектирования (ООП)

1. Элементы теории отношений. Бинарные и п-арные отношения. Графы бинарных отношений. Признаковое пространство и отношения в признаковом пространстве. Отношения, заданные логическими утверждениями (высказываниями). Определение понятия свойства, атрибута, поля. Основные типы теории отношений – эквивалентность, толерантность, порядок. Основные типы отношений в ООП. Алгебраические системы и классы объектов в ООП. Композиции классов (отношения между классами). Фундаментальные композиции – «состоит из» (has-a), «имеет значение» (is–a). Композиции классов и объектов в ООП. Агрегация – отношение включения (has-a), иерархия включения. Ассоциация (включение) уточняется отношением взаимосвязи «сущность–связь». Композиция классов – наследование, как отношение толерантности. Классы толерантности. Мощность связи между классами, обозначение мощности.

^ 2. Элементы теории алгоритмов. Основные типы задач: 1) задачи на «вычисление» или «порождение»; 2) задачи на «распознавание». Алгоритмы решения задач. Три типа уточнений алгоритма: 1) алгоритмические машины; 2) конструктор функций, вычислимых алгоритмом; 3) алгоритмические исчисления.

2.1.^ Алгоритмические машины. Определение «машины состояний» (SM). Логическая структура алгоритма. Граф машины состояний, цепочки действий, сценарии действий. Строка Ляпунова для SM как модель текста программы. Машина состояний над объектами. Определение Java-машины. Композиция действий и ее отображение в объекты Java-машины.

2.2.^ Конструктор функций, вычислимых алгоритмом. Конструктор Клини. Конечный набор базовых функций и композиций функций – конечные подстановки, примитивно рекурсивные подстановки, итерации. Информационная структура алгоритма (ИСА). ИСА в виде графа подстановок с вершинами, интерпретированными переменными, и функциями, которые их вычисляют. Потоки данных. Ярусно-параллельная форма ИСА (ЯПФ). Объекты как процессоры. Информационная структура взаимосвязи объектов через интерфейсы.

3. Модели взаимодействующих процессов. Процессы с естественной параллельностью. Искусственное распараллеливание алгоритма.

3.1. Модели параллельных процессов с общей памятью и памятью локализованной в объектах. Разложение ИСА по процессорам. Разложение объектов по процессорам.

3.2. Модели синхронизации параллельных процессов
  1. Модель Хоара синхронизации последовательных процессов.
  2. Потоковая модель синхронизации в Java.
  3. Сетевые модели синхронизации. Сети Петри. Многоагентные сети.

План семинарских занятий «Программирование на языке Java»
  1. Лексика языка Java, необходимая для первичной иллюстрации примеров программ.
  2. Модель объектно-ориентированной программы (ООП), объекты и их описание. Взаимодействие между объектами. Интерфейс. Пример взаимодействия пары объектов (управляющий и управляемый объекты).
  3. Классы. Объявление классов. Заголовок класса. Тело класса.
  4. Объявление полей (атрибутов). Объявление методов.
  5. Отношения между классами. Агрегация и ассоциация. Примеры проектирования структуры отношений для содержательных задач.
  6. Отношения между классами. Наследование. Примеры проектирования отношения наследования на содержательных задачах.
  7. Типы данных Java. Объекты и правила работы с ними. Класс «Object» и класс «Class».
  8. Утверждение технического задания на курсовой проект.
  9. Правила именования элементов языка Java. Область видимости имен.
  10. Пакеты в языке Java как аналоги библиотек. Иерархическая структура пакетов.
  11. Интерфейсы. Объявление интерфейсов. Реализация интерфейса. Применение интерфейсов. Интерфейсы классов и интерфейсы методов. Инкапсуляция интерфейсов.
  12. Потоки выполнения. Синхронизация. Многопоточная архитектура. Базовые классы для работы с потоками. Организация интерфейса. Синхронизация. Параллельные потоки. Хранение переменных в памяти, основное хранилище. Блокирование.
  13. Пакет java.AWT для создания графического оконного интерфейса. AWT-технология создания визуального интерфейса, работа с цветом, шрифтом, отрисовка графических примитивов, применение менеджеров компоновки.
  14. Консультации по выполнению курсового проекта.
  15. Защита курсового проекта.

^ Контрольные вопросы и задания по базовой и вариативной части дисциплины для промежуточной аттестации по итогам освоения дисциплины

Техническое задание на курсовой проект

Техническое задание является документом, который содержит описания следующих разделов.
  1. ^ Содержательное описание задачи
    1. Для такого описания предлагается применение методологии «for sight» (от экрана), которая ориентирована на пользователя программного продукта и содержит последовательность экранов, сопровождающих различные сценарии решения задачи. Каждый экран делится на две части – operating board (OB) и control board (СВ). ОВ содержит визуальные объекты (таблицы, рисунки, графики), которые отражают этапы решения задачи (подзадачи). СВ содержит меню действий (сервисов, процедур), позволяющих редактировать, дополнять или изменять содержание ОВ. Каждый экран должен содержать текст комментария.
    2. Другой способ описания – структурное описание (дерево «задача–подзадача») с комментариями.
  2. Определение составляющих систему классов
    1. Выделение объектов (процессов, процессоров).
    2. Композиция объектов в классы (агрегация, ассоциация, наследование). Этот раздел должен содержать список объектов и список классов с комментариями. Графы композиции желательно изобразить на графическом языке UML.
  3. ^ Определение обязанностей классов

В понятие обязанностей классов входят неформальные описания данных и действий над данными. Объекты и классы должны быть привязаны к экранам (методология «for sight») или подзадачам структурного описания.
  1. ^ Определение взаимодействий классов между собой

Для выполнения обязанностей класс должен взаимодействовать с другими классами для получения необходимых данных и/или использовать методы другого класса. Документ содержит список сообщений между парами классов с комментариями о привязке к подзадачам.
  1. ^ Тестирование содержательной правильности решения задачи

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


^ Материально-техническое обеспечение дисциплины

Компьютерные классы для проведения лабораторных работ.

Необходимое лабораторное оснащение

Компьютеры, объединенные в локальную сеть с выходом в Интернет.

^ Необходимое оборудование для лекций и практических занятий

Ноутбуки и проекторы.

Необходимое программное обеспечение

Системы программирования на языках С++, Java, C#.

^ Обеспечение самостоятельной работы

Доступ студентов в локальную сеть института и в Интернет.

Учебно-методическое и информационное обеспечение дисциплины

Основная литература
  1. Вязовик Н.А. Программирование на Java. – М.: Интернет Университет Информационных технологий, 2003.
  2. Вайсфельд М. Объектно-ориентированный подход Java, .NET C++. – М.: Кудицобраз, 2005.

Дополнительная литература
  1. Буч Г. и др. Язык UML. Руководство пользователя. – М.: ДМК, 2000.
  2. Непейвода Н.Н. Стили и методы программирования (курс лекций). – М.: Интернет Университет Информационных технологий, 2005.



Усл. печ. л. 0,5. Тираж 120 экз.