Учебно-методический комплекс для студентов специальности 351400. 65 «Прикладная информатика (по областям)» «подготовлено к изданию»

Вид материалаУчебно-методический комплекс

Содержание


«подготовлено к изданию»
«рекомендовано к электронному изданию»
Российская федерация
Тюменская государственная академия культуры, искусств и социальных технологий
Оглавление Оглавление
1.3. Требования к результатам освоения образовательной программы по высокоуровневым методам информатики и программирования: 6
1.7. Практические занятия 12
1.11.Методические рекомендации и задания для выполнения контрольной работы ОЗО (3-й семестр) 27
1. Рабочая программа 1.1. Федеральный компонент Государственного образовательного стандарта
Высокоуровневые методы информатики и программирования
1.2. Цели и задачи дисциплины, ее место в учебном процессе
Цель курса
Требования к начальной подготовке
1.3. Требования к результатам освоения образовательной программы по высокоуровневым методам информатики и программирования
1.4. Распределение часов по семестрам
1.5. Тематический план дисциплины
1.6. Лекционные занятия
1.7. Практические занятия
1.8. Самостоятельная работа
1. Объектно-ориентированный анализ.
...
Полное содержание
Подобный материал:
РОССИЙСКАЯ ФЕДЕРАЦИЯ

МИНКУЛЬТУРЫ РОССИИ

Федеральное государственное образовательное учреждение

высшего профессионального образования

ТЮМЕНСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ КУЛЬТУРЫ, ИСКУССТВ И СОЦИАЛЬНЫХ ТЕХНОЛОГИЙ


«УТВЕРЖДАЮ»:

Директор института

интеллектуальных ресурсов

и информационных технологий

_______________________ /________________ /

(подпись) (расшифровка подписи)

«____» ____________ 201_года.


Дисциплина «Высокоуровневые методы информатики и программирования»


Учебно-методический комплекс

для студентов специальности 351400.65 «Прикладная информатика (по областям)»


^ «ПОДГОТОВЛЕНО К ИЗДАНИЮ»:

Автор работы ______________________ / _______________________ /

(подпись) (расшифровка подписи)

«______»___________201__ г.


Рассмотрено на заседании кафедр:

Информатики и информационных технологий ___ _________ 201__г. Протокол № _____

Зав. кафедрой __________________________ / Гусева В.Е. /

«______»___________ 201__ г.


Соответствует требованиям к содержанию, структуре и оформлению.

^ «РЕКОМЕНДОВАНО К ЭЛЕКТРОННОМУ ИЗДАНИЮ»:


Рассмотрено на заседании УМК Института интеллектуальных ресурсов и информационных технологий «___» ___ 201__ Протокол № ____

Соответствует ФГОС ВПО и учебному плану образовательной программы.

«СОГЛАСОВАНО»:

Председатель УМК __________________ /_____________________ /

(подпись) (расшифровка подписи)

«______»_____________201__ г.


«СОГЛАСОВАНО»

Директор научной библиотеки_______________ / ________________________ /

(подпись) (расшифровка подписи)


«______»_____________201__ г.

^ РОССИЙСКАЯ ФЕДЕРАЦИЯ

МИНКУЛЬТУРЫ РОССИИ

Федеральное государственное образовательное учреждение

высшего профессионального образования

^ ТЮМЕНСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ КУЛЬТУРЫ, ИСКУССТВ И СОЦИАЛЬНЫХ ТЕХНОЛОГИЙ


Кафедра информатики и информационных технологий


Учебно-методический комплекс


по дисциплине цикла ОПД. Ф.04.


«Высокоуровневые методы информатики и программирования»


для студентов специальности «Прикладная информатика»


Учебно-методический комплекс составлен на основании Государственного образовательного стандарта высшего профессионального образования для специальности 351400.65 Прикладная информатика (по областям)


Составитель: В.Е. Гусева


УМК обсужден и утвержден

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

«__» _______________ 201__ г.

Протокол № _____


Зав. кафедрой ______________________________ / Гусева В.Е. /


^

Оглавление




Оглавление


Оглавление 3

Оглавление 3

1. Рабочая программа 4

1.1. Федеральный компонент Государственного образовательного стандарта 4

1.2. Цели и задачи дисциплины, ее место в учебном процессе 4

^ 1.3. Требования к результатам освоения образовательной программы по высокоуровневым методам информатики и программирования: 6

1.4. Распределение часов по семестрам 8

1.5. Тематический план дисциплины 8

1.6. Лекционные занятия 10

^ 1.7. Практические занятия 12

1.8. Самостоятельная работа 13

1.9. Вопросы к зачету (3-й семестр) 15

1.10. Вопросы к экзамену (4-й семестр) 16

1.10.1 Теоретические вопросы. 16

1.10.2 Практические задания. 17

^ 1.11.Методические рекомендации и задания для выполнения контрольной работы ОЗО (3-й семестр) 27

1.12.Методические рекомендации и задания для выполнения контрольной работы ОЗО (4-й семестр) 29

1.13. Литература 30

1.Приложение: Титульный лист 31



^

1. Рабочая программа

1.1. Федеральный компонент Государственного образовательного стандарта


высшего профессионального образования

Обязательный минимум содержания

Цикл

Федеральный компонент

Всего
часов


ОПД.Ф.04

^ ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ

Новейшие направления в области создания технологий программирования. Законы эволюции программного обеспечения.

244




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







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







Конструкторы и деструкторы.







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







Среда разработки; система окон разработки; система меню.







Отладка и тестирование программ.







Основы визуального программирования. Размещение нового компонента.







Реакция на события. Компоненты; использование компонентов.



^

1.2. Цели и задачи дисциплины, ее место в учебном процессе


Курс ориентирован на студентов специальности 351400 – Прикладная информатика (по областям) и может быть полезен специалистам, желающим углубить свои знания в области объектно-ориентированных подходов к разработке программного обеспечения.

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

^ Цель курса: Освоение концепций и понятий объектно-ориентированного подхода, включая способы их выражения на языке программирования С++ и языке визуального моделирования UML. Изучение понятий объектной модели, объектов, классов и отношений между ними.

Информатик (с квалификацией в области) должен:

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


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

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


^

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


Выпускник должен обладать следующими общекультурными компетенциями (ОК):

- способен использовать, обобщать и анализировать информацию, ставить цели и находить пути их достижения в условиях формирования и развития информационного общества (ОК-1)

- способен логически верно, аргументировано и ясно строить устную и письменную речь, владеть навыками ведения дискуссии и полемики (ОК-2);

- способен самостоятельно приобретать и использовать в практической деятельности новые знания и умения, стремиться к саморазвитию (ОК-5);

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

-способен понимать сущность и проблемы развития современного информационного общества (ОК-7);

- способен работать с информацией в глобальных компьютерных сетях (ОК-8);

- способен свободно пользоваться русским языком и одним из иностранных языков на уровне, необходимом для выполнения профессиональных задач (ОК 9);

- способен понимать сущность и значение информации в развитии современного информационного общества, сознавать опасности и угрозы, возникающие в этом процессе, соблюдать основные требования информационной безопасности, в том числе защиты государственной тайны (ОК-14)

Выпускник должен обладать следующими профессиональными компетенциями (ПК):

общепрофессиональными:

- способен при решении профессиональных задач анализировать социально-экономические проблемы и процессы с применением методов системного анализа и математического моделирования (ПК-2);

- способен использовать основные законы естественнонаучных дисциплин в профессиональной деятельности и эксплуатировать современное электронное оборудование и информационно-коммуникационные технологии в соответствии с целями образовательной программы (ПК-3);

проектная деятельность:

- способен ставить и решать прикладные задачи с использованием современных информационно-коммуникационных технологий (ПК-4)

- способен осуществлять и обосновывать выбор проектных решений по видам обеспечения информационных систем (ПК-5);

- способен документировать процессы создания информационных систем на всех стадиях жизненного цикла (ПК-6);

- способен использовать технологические и профессиональные стандарты, современные модели и методы оценки качества и надежности при проектировании и отладке программных средств (ПК-7);

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

- способен моделировать и проектировать структуры данных и знаний, прикладные и информационные процессы (ПК-9);

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

организационно-управленческая и производственно-технологическая деятельность:

- способен принимать участие в создании и управлении ИС на всех этапах жизненного цикла (ПК-11);

- способен эксплуатировать и сопровождать информационные системы и сервисы (ПК-12);

- способен принимать участие во внедрении, адаптации и настройке прикладных ИС (ПК-13);

- способен принимать участие в реализации профессиональных коммуникаций в рамках проектных групп, презентовать результаты проектов и обучать пользователей ИС (ПК-14);

аналитическая деятельность:

- способен оценивать и выбирать современные операционные среды и информационно-коммуникационные технологии для информатизации и автоматизации решения прикладных задач и создания ИС (ПК-16);

- способен применять методы анализа прикладной области на концептуальном, логическом, математическом и алгоритмическом уровнях (ПК-17);

- способен анализировать и выбирать методы и средства обеспечения информационной безопасности (ПК-18);

- способен анализировать рынок программно-технических средств, информационных продуктов и услуг для решения прикладных задач и создания информационных систем (ПК-19);

- способен выбирать необходимые для организации информационные ресурсы и источники знаний в электронной среде (ПК-20);

научно-исследовательская деятельность:

- способен применять системный подход и математические методы в формализации решения прикладных задач (ПК-21).

^

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




Семестр

Предмет

Объем учебной работы студентов (в час.)

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

Итоговая аттестация

Общий объем

В том числе

Аудиторные

Самостоятельная работа студента

Всего

Из них

Лекций

Лабораторных работ

Практических занятий

3

Высокоуровневые методы информатики и программирования

72

72

18

-

18

36

-

зачет

4

104

104

16

-

36

52

-

экзамен

Всего:

176

176

34

-

54

88

-






^

1.5. Тематический план дисциплины





Модуль 1.
    1. Новейшие направления в области создания технологий программирования.
    2. Законы эволюции программного обеспечения.
    3. Основные идеи и преимущества использования объектно-ориентированного подхода к разработке программного обеспечения.
    4. Особенности программирования в оконных операционных средах.
    5. Основные стандартные модули, обеспечивающие работу в оконной операционной среде.
    6. Среда разработки; система окон разработки; система меню.
    7. Отладка и тестирование программ.
    8. Основы визуального программирования. Размещение нового компонента. Реакция на события. Компоненты; использование компонентов. Объектно-ориентированный подход как ответ на растущую сложность программного обеспечения.
    9. Сложные промышленные программные продукты. Примеры и характеристики задач, решаемых с использованием объектно-ориентированного подхода. Причины сложности, присущей программному обеспечению.
    10. Отладка и тестирование программ. Общие признаки сложных систем.

Модуль 2.
    1. Объектная модель – принципы лежащие в основе объектно-ориентированного подхода.
    2. Абстрагирование: абстракция, барьер и уровни абстракции, контрактная модель программирования, инварианты, обработка исключительных ситуаций.
    3. Инкапсуляция: интерфейс и реализация, инструменты скрытия реализации.
    4. Модульность: модуль, разделение описание-реализация, принципы, приемы и правила разбиения системы на модули, подсистемы.
    5. Иерархичность: иерархии типа «является» и «имеет», одиночное и множественное наследование.
    6. Типизация: согласование типов, полиморфизм и его виды, операторы приведения. Параллелизм: поток управления, активные и неактивные объекты.
    7. Сохраняемость: сохранение объектов в пространстве и времени.
    8. Объекты. Состояние объекта. Поведение объекта: операции (модификатор, селектор, конструктор, деструктор), конструктор с одним аргументом, инициализаторы конструктора, свободные подпрограммы. Идентичность объекта: проблема структурной зависимости, конструктор копирования, присваивание и равенство объектов. Отношения между объектами: связи и агрегация
    9. Классы. Виды отношений между классами.
    10. Ассоциация: мощность ассоциации, рефлексивная ассоциация.
    11. Агрегация и композитная агрегация.
    12. Обобщение (наследование): построение наследственных иерархий; конкретные, абстрактные, листовые и базовые классы; операции и методы класса; виртуальные и чисто виртуальные функции; защищенная часть класса.
    13. Обобщение и типизация: открытое, закрытое и защищенное наследование; чистый полиморфизм, динамическое определение типа, повышающее и понижающее приведение.
    14. Множественное наследование: конфликт имен между суперклассами, повторное наследование, виртуальное наследование.
    15. Зависимость (использование).
    16. Инстанцирование: параметризованный класс, параметрический полиморфизм. Переменные и операции класса, утилиты. Интерфейсы.
    17. Группирование классов: пакеты и пространства имен.

Модуль 3.
    1. Объектно-ориентированный анализ.
    2. Классический подход, анализ поведения, анализ предметной области, анализ вариантов, CRC-карточки, неформальное описание.
    3. Поиск, выбор и уточнение ключевых абстракций.

Модуль 4.
    1. Элементы языка визуального моделирования UML: диаграмма классов, диаграмма объектов, диаграммы взаимодействий (диаграмма последовательностей и диаграмма кооперации).

Структура курса





^

1.6. Лекционные занятия


Семестр – 3-й


п/п

Темы лекционных занятий

Час



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

2


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

2


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

2


Объектная модель – принципы лежащие в основе объектно-ориентированного подхода. Абстрагирование: абстракция, барьер и уровни абстракции, контрактная модель программирования, инварианты, обработка исключительных ситуаций. Инкапсуляция: интерфейс и реализация, инструменты скрытия реализации. Модульность: модуль, разделение описание-реализация, принципы, приемы и правила разбиения системы на модули, подсистемы. Иерархичность: иерархии типа «является» и «имеет», одиночное и множественное наследование. Типизация: согласование типов, полиморфизм и его виды, операторы приведения. Параллелизм: поток управления, активные и неактивные объекты. Сохраняемость: сохранение объектов в пространстве и времени.

2


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

2


Системное программирование в WIN 32. Системный реестр. Структура реестра. Классы для управления информацией реестра. Создание и удаление параметров. Расширения оболочки Windows. Файловые операции в оболочке.

4


Построение приложений для работы с базами данных. Понятие реляционной базы данных. Схема базы данных. Средства доступа к данным ОС Windows. Провайдеры данных и клиенты. Открытие и закрытие соединения. Язык структурированных запросов SQL. Курсорные операции. Методы программирования типовых операций над базами данных. Классы для работы с базами данных.

4

Всего

18


Лекционные занятия

Семестр – 4-й


п/п

Темы лекционных занятий

Час



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

4


Обобщение и типизация: открытое, закрытое и защищенное наследование; чистый полиморфизм, динамическое определение типа, повышающее и понижающее приведение. Множественное наследование: конфликт имен между суперклассами, повторное наследование, виртуальное наследование. Зависимость (использование). Инстанцирование: параметризованный класс, параметрический полиморфизм. Переменные и операции класса, утилиты. Интерфейсы. Группирование классов: пакеты и пространства имен.

4


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

4


Элементы языка визуального моделирования UML: диаграмма классов, диаграмма объектов, диаграммы взаимодействий (диаграмма последовательностей и диаграмма кооперации).

4

Всего

16



^

1.7. Практические занятия


Семестр – 3-й


п/п

Темы практических занятий

Час



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

2


Методология проектирования в системе Borland С++ Builder. Структура проекта программы, разработанной для выполнения в Windows. Компоненты среды проектирования: события, свойства, методы. Иерархия классов визуальной среды проектирования. Управление событиями, исключительные ситуации. Использование визуальных компонент среды проектирования. Отладка проекта в среде Borland С++ Builder.

2


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

2


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

2


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

4


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

6

Итого:

18


Практические занятия

Семестр – 4-й


п/п

Темы практических занятий

Час



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

4


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

4


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

4


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

6


Системное программирование в WIN 32 (4 час) Системный реестр. Структура реестра. Классы для управления информацией реестра. Создание и удаление параметров. Расширения оболочки Windows. Файловые операции в оболочке.

8


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

8

Итого:

34



^

1.8. Самостоятельная работа


студентов включает в себя

– подготовку к лекциям (изучение материала предшествующих лекций);

– подготовку к выполнению практических заданий (изучение соответствующего теоретического материала и методических указаний, анализ задачи, проектирование и разработку необходимого программного обеспечения, разработку системы тестов, оформление отчета);

– выполнение индивидуального проекта.


При выполнении индивидуального проекта студент может выбрать одну из двух тем:


^ 1. Объектно-ориентированный анализ. Требуется изучить основные приемы объектно-ориентированного анализа, средства работы с диаграммами UML и создания прототипа кода на языке С++, предоставляемые системой Rational Rose, произвести объектно-ориентированный анализ некоторой предметной области, результаты представить в виде диаграмм UML и прототипа кода, полученных в системе Rational Rose.


^ 2. Создание диаграммы классов и прототипа кода на языке C++ в среде Rational Rose. Требуется изучить средства работы с диаграммами UML и создания прототипа кода на языке С++, предоставляемые системой Rational Rose, необходимо создать диаграммы классов, и прототипа кода на С++ в среде Rational Rose.


Примеры предметных областей для выполнения индивидуального проекта (первая тема)

  1. Книжный магазин
  2. Магазин промышленных товаров
  3. Склад
  4. Центр заказов
  5. Почтовая служба, включая службу доставки
  6. Почтовое отделение
  7. Управление персоналом в компании (отдел кадров)
  8. Управление компанией (заводом)
  9. Цент междугородних (международных) переговоров
  10. Аэропорт
  11. Железнодорожный вокзал
  12. Управление железной дорогой
  13. Сортировочная станция
  14. Автострада
  15. Автовокзал
  16. Автотранспортные услуги
  17. Экосистема
  18. Факультет вуза
  19. Школа
  20. Спортивный клуб (организация и управление)
  21. Библиотека
  22. Банк
  23. Процесс обучения некоторому предмету (организация и управление)


Отчет для темы 1 включает в себя следующие разделы:

– описание предметной области, словарь предметной области,

– спецификации разработанных классов и их назначение, диаграммы классов,

– словесное описание сценариев и их роль в моделировании предметной области, диаграммы взаимодействий, полученные в системе Rational Rose,

– прототип кода, сгенерированный в Rational Rose.

Отчет для темы 2 включает в себя следующие разделы:

– постановка задачи,

– диаграммы классов, полученные в системе Rational Rose,

– прототип кода, сгенерированный в Rational Rose.


По дисциплине предусмотрен зачет (3 семестр), экзамен (4 семестр). К зачету (экзамену) допускаются студенты, выполнившие и защитившие лабораторные работы и РГЗ.

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

Время, отведенное для подготовки к устному ответу 1 час.


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

Время, отведенное для составления в письменной форме ответа на билет: 2 часа.

^

1.9. Вопросы к зачету (3-й семестр)




  1. Новейшие направления в области создания технологий программирования. Законы эволюции программного обеспечения.
  2. Основные идеи и преимущества использования объектно-ориентированного подхода к разработке программного обеспечения.
  3. Особенности программирования в оконных операционных средах.
  4. Основные стандартные модули, обеспечивающие работу в оконной операционной среде.
  5. Среда разработки; система окон разработки; система меню. Отладка и тестирование программ.
  6. Основы визуального программирования. Размещение нового компонента. Реакция на события. Компоненты; использование компонентов.
  7. Объектно-ориентированный подход как ответ на растущую сложность программного обеспечения. Примеры и характеристики задач, решаемых с использованием объектно-ориентированного подхода.
  8. Причины сложности, присущей программному обеспечению. Отладка и тестирование программ.
  9. Объектная модель – принципы лежащие в основе объектно-ориентированного подхода.
  10. Абстрагирование: абстракция, барьер и уровни абстракции, контрактная модель программирования, инварианты, обработка исключительных ситуаций.
  11. Инкапсуляция: интерфейс и реализация, инструменты скрытия реализации.
  12. Модульность: модуль, разделение описание-реализация, принципы, приемы и правила разбиения системы на модули, подсистемы.
  13. Иерархичность: иерархии типа «является» и «имеет», одиночное и множественное наследование.
  14. Типизация: согласование типов, полиморфизм и его виды, операторы приведения.
  15. Параллелизм: поток управления, активные и неактивные объекты. Сохраняемость: сохранение объектов в пространстве и времени.
  16. Объекты. Состояние объекта.
  17. Системное программирование в WIN 32. Системный реестр. Структура реестра. Классы для управления информацией реестра. Создание и удаление параметров. Расширения оболочки Windows. Файловые операции в оболочке
  18. Построение приложений для работы с базами данных. Понятие реляционной базы данных
  19. Схема базы данных. Средства доступа к данным ОС Windows. Провайдеры данных и клиенты. Открытие и закрытие соединения.
  20. Язык структурированных запросов SQL. Курсорные операции. Методы программирования типовых операций над базами данных. Классы для работы с базами данных.



^

1.10. Вопросы к экзамену (4-й семестр)




1.10.1 Теоретические вопросы.




  1. Основные причины сложности программных систем и общие признаки сложных систем.
  2. Абстрагирование.
  3. Инкапсуляция.
  4. Модульность.
  5. Иерархичность.
  6. Типизация.
  7. Параллелизм, сохраняемость.
  8. Состояние и поведение объекта.
  9. Идентичность объекта.
  10. Отношения между классами: ассоциация, агрегация, композитная агрегация.
  11. Обобщение: наследственная иерархия.
  12. Обобщение: наследование и типизация.
  13. Обобщение: множественное наследование.
  14. Отношения между классами: зависимость, инстанцирование: параметризованный класс, параметрический полиморфизм.
  15. Переменные и операции класса, интерфейсы, группирование классов.
  16. Объектно-ориентированный анализ.
  17. Классы. Виды отношений между классами.
  18. Ассоциация: мощность ассоциации, рефлексивная ассоциация.
  19. Объектно-ориентированный анализ. Классический подход, анализ поведения, анализ предметной области.
  20. Объектно-ориентированный анализ. Анализ вариантов, CRC-карточки, неформальное описание. Поиск, выбор и уточнение ключевых абстракций.
  21. Элементы языка визуального моделирования UML: диаграмма классов, диаграмма объектов.
  22. Элементы языка визуального моделирования UML: диаграммы взаимодействий (диаграмма последовательностей и диаграмма кооперации).
  23. Интерфейсы. Группирование классов: пакеты и пространства имен.
  24. Множественное наследование: конфликт имен между суперклассами, повторное наследование, виртуальное наследование.



^

1.10.2 Практические задания.



1
. Составить словесное описание ситуации, изображенной на диаграмме классов.


2
. Составить словесное описание ситуации, изображенной на диаграмме классов.

Билет № 4


3
. Составить словесное описание ситуации, изображенной на диаграмме классов.


4. Составить диаграмму классов по фрагменту кода на языке С++.


class F; class K; class L;


class G: F{

protected:

L objL[4];

int auxiliary( );

};


class H: F{

K objK[7];

public:

int run( );

};


5. Составить диаграмму классов по фрагменту кода на языке С++.


class A; class B; class C; class D;


class E: public A{

B objB[4];

protected:

C* objC; // массив с потенциально неограниченным числом элементов

int auxiliary();

public:

int run( ) { D objD; . . . };

};


6. Составить диаграмму классов по фрагменту кода на языке С++.


class Q; class P; class U;


template class S{

public:

int func();

};

typedef S US;


class R: public Q{

US* objUS; // массив с потенциально неограниченным числом элементов,

// но не менее двух

protected:

int auxiliary( ){ P objP; ...}

public:

void service( ) ;

};


7. Составить диаграмму классов по фрагменту кода на языке С++.


class P; class Q; class R; class U;


class S: Q{

protected:

P objP[4];

public:

int service( ) { R objR; . . . };

};


class T {

U* objU; // массив с потенциально неограниченным числом элементов

public:

int service( ) { S objS; . . . };

};


8. Составить диаграмму классов по фрагменту кода на языке С++.


class A; class B; class F;


class C: A{

protected:

B objB[4];

public:

int run( );

};

class D: protected A{

F* objF; // массив с потенциально неограниченным числом элементов,

//но не менее трех

public:

int run( ){C objC; . . . };

};


9. Составить словесное описание ситуации, изображенной на диаграмме последовательностей.




10. Составить словесное описание ситуации, изображенной на диаграмме последовательностей.




11. Изобразить диаграмму кооперации, эквивалентную диаграмме последовательностей.




12. Изобразить диаграмму кооперации, эквивалентную диаграмме последовательностей.




13. Составить словесное описание ситуации, изображенной на диаграмме кооперации.





14. Составить словесное описание ситуации, изображенной на диаграмме кооперации.




15. Изобразить диаграмму последовательностей, эквивалентную диаграмме кооперации.




16. Изобразить диаграмму последовательностей, эквивалентную диаграмме кооперации.





17. По фрагменту кода на языке С++ составить диаграмму кооперации, отражающую сценарий, который реализует функцию func1( ) класса U, вызываемую из функции main( ).


class W{

void func4( );

public: void func3( ){ func4( ); }

};

class V {

public: void func2(W objW) { objW.func3( ); }

};

class U{

public: void func1(V objV, W objW){ objV.func2(objW); }

};

void main( ){

U objU; V objV; W objW;

objU.func1(objV, objW);

}


18. По фрагменту кода на языке С++ составить диаграмму последовательностей, отражающую сценарий, который реализует функцию func1( ) класса U, вызываемую из функции main( ).


class W{

void func4( );

public: void func3( ){ func4( ); }

};

class V {

public: void func2(W objW) { objW.func3( ); }

};

class U{

public: void func1(V objV, W objW){ objV.func2(objW); }

};

void main( ){

U objU; V objV; W objW;

objU.func1(objV, objW);

}


19. По фрагменту кода на языке С++ составить диаграмму кооперации, отражающую сценарий, который реализует функцию execute( ) класса A, вызываемую из функции main( ).


class C{

void aux( ) ;

public: void set( ); void service( ) { aux( ); };

};


class B {

public: void run( ) { C objC; objC.set( ); objC.service( ); }

};


class A{

public: void execute( ){ B objB; objB.run( ); }

};


void main( ){

A objA; objA.execute( );

}


20. По фрагменту кода на языке С++ составить диаграмму последовательностей, отражающую сценарий, который реализует функцию execute( ) класса A, вызываемую из функции main( ).


class C{

void aux( ) ;

public: void set( ); void service( ){ aux( ); };

};


class B {

public: void run( ) { C objC; objC.set( ); objC.service( ); }

};


class A{

public: void execute( ){ B objB; objB.run( ); }

};


void main( ){

A objA; objA.execute( );

}


21. Составить диаграмму классов по фрагменту кода на языке С++.


class A; class B; class C; class D;


class E: public A{

B objB[4];

protected:

C* objC; // массив с потенциально неограниченным числом элементов

int auxiliary();

public:

int run( ) { D objD; . . . };

};


22. Составить диаграмму классов по фрагменту кода на языке С++.


class F; class K; class L;


class G: F{

protected:

L objL[4];

int auxiliary( );

};


class H: F{

K objK[7];

public:

int run( );

};


23. Составить диаграмму классов по фрагменту кода на языке С++.


class P; class Q; class R; class U;


class S: Q{

protected:

P objP[4];

public:

int service( ) { R objR; . . . };

};


class T {

U* objU; // массив с потенциально неограниченным числом элементов

public:

int service( ) { S objS; . . . };

};


24. Составить диаграмму классов по фрагменту кода на языке С++.


class A; class B; class F;


class C: A{

protected:

B objB[4];

public:

int run( );

};

class D: protected A{

F* objF; // массив с потенциально неограниченным числом элементов,

//но не менее трех

public:

int run( ){C objC; . . . };

};


    1. ^

      Методические рекомендации и задания для выполнения контрольной работы ОЗО (3-й семестр)




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

Контрольная работа защищается у руководителя.

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

Контрольная работа сдается за две недели до сессии (иногородние студенты в первый день сессии).


Контрольная работа состоит из теоретической части – это письменный ответ на три вопроса. Вопросы выбираются из перечня вопросов к зачету по последней цифре номера зачетной книжки. Например, номеру зачетной книжки 103 - соответствует два вопроса 3, 13. Объём работы – не менее 5 печатных листов.

Ответы на вопросы оформляются как текстовый документ: (имя файла ОЗО СКД Фамилия.doc). В документе должен быть оформлен титульный лист (Приложение) и оглавление. Текст должен удовлетворять следующим требованиям:
  • шрифт 14 Times New Roman,
  • междустрочный интервал 1,5.
  • каждый абзац должен начинаться с красной строки.
  • в тексте должны быть следующие элементы: список, автофигуры, таблица, рисунок в тексте,
  • номера страниц в нижнем колонтитуле,
  • в верхнем колонтитуле: Ф.И.О., курс и специальность.


Вопросы для контрольной работы:

  1. Новейшие направления в области создания технологий программирования. Законы эволюции программного обеспечения.
  2. Основные идеи и преимущества использования объектно-ориентированного подхода к разработке программного обеспечения.
  3. Особенности программирования в оконных операционных средах.
  4. Основные стандартные модули, обеспечивающие работу в оконной операционной среде.
  5. Среда разработки; система окон разработки; система меню. Отладка и тестирование программ.
  6. Основы визуального программирования. Размещение нового компонента. Реакция на события. Компоненты; использование компонентов.
  7. Объектно-ориентированный подход как ответ на растущую сложность программного обеспечения. Примеры и характеристики задач, решаемых с использованием объектно-ориентированного подхода.
  8. Причины сложности, присущей программному обеспечению. Отладка и тестирование программ.
  9. Объектная модель – принципы лежащие в основе объектно-ориентированного подхода.
  10. Абстрагирование: абстракция, барьер и уровни абстракции, контрактная модель программирования, инварианты, обработка исключительных ситуаций.
  11. Инкапсуляция: интерфейс и реализация, инструменты скрытия реализации.
  12. Модульность: модуль, разделение описание-реализация, принципы, приемы и правила разбиения системы на модули, подсистемы.
  13. Иерархичность: иерархии типа «является» и «имеет», одиночное и множественное наследование.
  14. Типизация: согласование типов, полиморфизм и его виды, операторы приведения.
  15. Параллелизм: поток управления, активные и неактивные объекты. Сохраняемость: сохранение объектов в пространстве и времени.
  16. Объекты. Состояние объекта.
  17. Системное программирование в WIN 32. Системный реестр. Структура реестра. Классы для управления информацией реестра. Создание и удаление параметров. Расширения оболочки Windows. Файловые операции в оболочке
  18. Построение приложений для работы с базами данных. Понятие реляционной базы данных
  19. Схема базы данных. Средства доступа к данным ОС Windows. Провайдеры данных и клиенты. Открытие и закрытие соединения.
  20. Язык структурированных запросов SQL. Курсорные операции. Методы программирования типовых операций над базами данных. Классы для работы с базами данных.



    1. ^

      Методические рекомендации и задания для выполнения контрольной работы ОЗО (4-й семестр)



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

Контрольная работа защищается у руководителя.

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

Контрольная работа сдается за две недели до сессии (иногородние студенты в первый день сессии).


Контрольная работа состоит из двух частей: теоретической и практической. Первая часть контрольной работы – это письменный ответ на два вопроса. Вопросы выбираются из перечня вопросов к экзамену по последней цифре номера зачетной книжки. Например, номеру зачетной книжки 103 - соответствует два вопроса 3, 13. Объём работы – не менее 5 печатных листов.

Ответы на вопросы оформляются как текстовый документ: (имя файла ОЗО СКД Фамилия.doc). В документе должен быть оформлен титульный лист (Приложение) и оглавление. Текст должен удовлетворять следующим требованиям:
  • шрифт 14 Times New Roman,
  • междустрочный интервал 1,5.
  • каждый абзац должен начинаться с красной строки.
  • в тексте должны быть следующие элементы: список, автофигуры, таблица, рисунок в тексте,
  • номера страниц в нижнем колонтитуле,
  • в верхнем колонтитуле: Ф.И.О., курс и специальность.


Вторая часть контрольной работы – это выполнение в письменном виде решение двух задач, приведенных в экзаменационных билетах (1.9.2 Практические задания). Вопросы выбираются из перечня вопросов по последней цифре номера зачетной книжки. Например, номеру зачетной книжки 103 - соответствует две задачи: 3, 13.


1.13. Литература


Основная литература


  1. Истомин, Е. П. Высокоуровневые методы информатики и программирования : учебник / Е. П. Истомин, В. В. Новиков, М. В.Новикова. – Санкт-Петербург : Андреевский издательский дом, 2009 – 228 с.
  2. Лисицин, Д. В. Объектно-ориентированное программирование. Конспект лекций. : учеб. пособие / Д. В. Лисицин. – Новосибирск : Издательство НГТУ, 2010 – 230 с.
  3. Хабибуллин, И. Ш. Программирование на языке высокого уровня C/C++ : учеб. пособие / И. Ш. Хабибуллин. – Санкт-Петербург : БХВ-Петербург, 2008. – 608 с.


Дополнительная литература

  1. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++ / Г. Буч. – Москва : Бином, 2009. – 558 с.
  2. Леоненков, А. В. Самоучитель UML 2 / А. В. Леоненков. – Санкт-Петербург : Питер, 2008 – 558 с.
  3. Рамбо, Д. UML. : Специальный справочник / Д. Рамбо, А. Джекобсон, Г. Буч. – Санкт-Петербург : Питер, 2009. – 492 с.
  4. Браунси, К. Основные концепции структур данных и реализация в С++ : учеб. пособие / К Браунси. – Москва : Вильямс, 2009. – 319 с.
^

  1. Приложение: Титульный лист


ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ТЮМЕНСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ КУЛЬТУРЫ, ИСКУССТВ и СОЦИАЛЬНЫХ ТЕХНОЛОГИЙ»


Институт интеллектуальных ресурсов и информационных технологий

Кафедра информатики и информационных технологий




Контрольная работа

по дисциплине Высокоуровневые методы информатики и программирования:

___ семестр


Выполнил: Ф.И.О., специальность, курс, группа,

зачетной книжки.

Вариант

Проверил: Ф.И.О. преподавателя


Тюмень, 201__