Министерство образования Российской Федерации Санкт-Петербургский государственный электротехнический университет “ЛЭТИ”
...
27 downloads
201 Views
140KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования Российской Федерации Санкт-Петербургский государственный электротехнический университет “ЛЭТИ”
РАБОЧАЯ ПРОГРАММА дисциплины ОБЪЕКТНО – ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ Для подготовки дипломированных специалистов по направлению 657100 – “Прикладная математика” по специальности 073000 -“Прикладная математика”.
Санкт-Петербург 2001
Санкт-Петербургский государственный электротехнический университет “ЛЭТИ”
“УТВЕРЖДАЮ” Проректор по учебной работе проф. ___________ Ушаков В.Н. “_____”_______________2001 г.
РАБОЧАЯ ПРОГРАММА дисциплины ОБЪЕКТНО – ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ Для
подготовки дипломированных специалистов по направлению 657100 – “Прикладная математика” по специальности 073000 -“Прикладная математика”.
Факультет компьютерных технологий и информатики Кафедра математического обеспечения и применения ЭВМ Курс – 3 Семестр – 6 Лекции
30 ч.
Курсовое проектирование
15 ч.
Аудиторные занятия Самостоятельные занятия Всего часов
45 ч. 50 ч. 95 ч.
Текущий контроль
2001
2
семестр 6
Рабочая программа обсуждена на заседании кафедры математематического обеспечения и применения ЭВМ “____”_______________2001 г., протокол №______.
Рабочая программа согласована с рабочими программами изученных ранее дисциплин: 1) “Программирование” 2) “Структуры и алгоритмы обработки данных”
Рабочая программа одобрена методической комиссией факультета компьютерных технологий и информатики “____”_____________2001г.
3
Цели и задачи дисциплины 1. Изучение концепции объектно-ориентированного программирования (ООП), основных ее понятий, свойств, методики анализа и проектирования объектно-ориентированных программ, способов составления объектно-ориентированных программ на языке программирования С++. 2. Формирование навыков проектирования, программирования и отладки объектноориентированные программ. Требования к уровню освоения дисциплины В результате изучения дисциплины студенты должны: 1. Знать концепцию объектно-ориентированного программирования, основные ее понятия (класс, объект), свойства (инкапсуляция, наследование, полиморфизм), методику анализа и проектирования объектно-ориентированных программ, основные понятия, синтаксис и семантику конструкций языка программирования С++, способы составления объектно-ориентированных программ на языке программирования С++, возможности интегрированной среды программирования на языке С++; 2. Уметь проектировать, программировать и отлаживать объектно-ориентированные программы на языке С++; 3. Иметь представление об объектно-ориентированных расширениях современных языков программирования, инструментальных программных средствах ООП; тенденциях развития и областях применения ООП.
Содержание рабочей программы Введение Предмет дисциплины, ее структура и содержание. Цели и содержание дисциплины для подготовки студентов по выбранному направлению. Структура и план учебной деятельности студентов, рекомендуемая литература. Связь дисциплины с предшествующими и последующими дисциплинами и ее место в подготовке специалиста по прикладной математике. Краткие сведения об истории развития и становления проблематики дисциплины. Стандарты, используемые в ООП. Тема 1. Основные понятия дисциплины Семантика и интерпретация языка программирования. Основные положения объектного подхода к разработке программ, Принципы объектного подхода, абстрагирование, ограничение доступа, модульность, иерархия, типизация параллелизм, устойчивость. Понятие объекта и класса. Инкапсуляция и спецификация правил доступности элементов класса. Конструкторы и деструкторы. Наследование. Иерархия классов. Одиночное и множественное наследование. Способы реализации множественного наследования, их достоинства и недостатки. Отношения между объектами и/или классами. Полиморфизм. Ранее и позднее связывание. Управление последовательностью действий в объектно-ориентированной программе. Объект и процесс. Инициализация и взаимодействие объектов и процессов. Сообщения. Реализация механизмов посылки сообщений. Примеры функционирования объектноориентированной программы. Формальные модели объектов и классов: автоматная и алгебраическая модели объ-
4
ектов, исчисления типов. Тема 2. Введение в объектно-ориентированный анализ и проектирование Системный анализ. Принципы объектно-ориентированного анализа и их обсуждение. Основные определения: система, домен, подсистема, элемент, связи, среда. Структура системы, декомпозиция, иерархия элементов. Процессы в системе и потоки информации. Исследование действий. Построение моделей доменов и подсистем, связей и взаимодействия подсистем, взаимодействия объектов, событий, процессов, потоков данных, действий. Описание классов и их взаимосвязей. Динамика поведения объектов, диаграммы перехода состояний. Диаграммы объектов. Видимость и синхронизация объектов, временные диаграммы. Диаграмма процессов. Обработка исключительных ситуаций. Тема 3. Введение в язык программирования С++ Краткие сведения об истории развития и текущем состоянии языка программирования С++. Реализация парадигм программирования на С++. Структура программы. Ввод и вывод информации. Имена и их объявления. Инициализация значений. Область и время действия имени. Класс памяти. Типы. Фундаментальные и производные типы. Тип void. Преобразование типов. Указатели и ссылки. Вектора. Структуры. Константы. Строки. Выражения. Операторы и операторы выражений. Операторы выражений: присваивания, арифметические, логические, отношений, явного преобразования типа, вычисления размера операнда. Приоритет операторов выражений. Управление последовательностью вычислений в выражении. Выделение и освобождение памяти. Операторы и метки. Условный оператор. Операторы цикла. Оператор выбора. Операторы, применяемые для выхода из циклов, операторов выбора и функций. Тема 4. Функции и файлы Объявление и определение функции. Способы передачи аргументов. Возврат значения функции. Совместно используемые функции. Дополнительные возможности вызова функций: использование аргументов по умолчанию, неопределенное число аргументов, указатели на функцию, подстановка тела функции. Макросы. Подстановка лексем. Включение файлов. Заголовочные файлы. Способы размещения программы в файлах. Тема 5. Классы Способы реализации инкапсуляции. Определение класса. Личная и общая части определения класса. Функции-элементы класса и функции-друзья. Объекты класса. Создание и уничтожение объектов класса. Конструкторы и деструкторы. Интерфейс и реализация контейнерных классов для моделирования структур данных. Статические члены объектов класса. Вложенные и локальные классы. Примеры описания и использования классов.
5
Тема 6. Наследование классов Базовый и производный классы. Функции-элементы и функции-друзья. Правила доступа к элементам производного класса. Конструкторы и деструкторы. Иерархия классов. Одиночное и множественное наследование. Виртуальные базовые классы. Особенности доступа при множественном наследовании. Правила преобразования указателей. Виртуальные функции. Таблицы виртуальных функций. Распределение таблиц виртуальных функций в многофайловых программах. Чистые виртуальные функции и абстрактные базовые классы. Полиморфные контейнерные классы, итераторы и аппликаторы. Абстрактные и конкретные контейнерные классы. Виды классов: конкретный тип, абстрактный тип, узловой класс, интерфейсный класс и другие. Инициализация объектов. Отличия инициализации от присваивания. Инициализация баз и членов. Полный объект конечного производного класса. Примеры описания и использования классов с наследованием. Тема 7. Шаблоны Шаблоны классов и функций. Наследование шаблонных классов. Правила отождествления параметров шаблона. Применение шаблонных классов для создания контейнерных классов. Анализ вариантов шаблонных классов на примере шаблона вектора с операцией сортировки. Тема 8. Обработка исключительных ситуаций Анализ различных моделей обработки исключительных ситуаций. Стандартные средства контроля подтверждений. Проверка предусловий и постусловий, вычисления инвариантов. Контроль асинхронных событий. Реализация модели обработки синхронных ситуаций с завершением в С++. Возбуждение ситуации, Описание блоков с контролем и реакций на ситуации. Система классов для описания исключительных ситуаций. Обработка исключительных ситуаций при обработке исключительных ситуаций. Примеры контроля ситуаций в контейнерных классах. Тема 9. Разработка объектно-ориентированных программ на С++ Особенности разработки объектно-ориентированных программ на С++. Проектирование классов. Механизмы функционирования программ. Стиль программирования. Надежность программ на С++. Тема 10. Инструментальные программные средства для С++ Библиотеки классов для С++. Средства генерации прикладных программ на С++. Заключение Тенденции развития ООП. Пути дальнейшего изучения вопросов ООП студентами специальности 073000.
6
Цели и содержание курсового проекта и его ориентировочная трудоемкость Целью курсового проекта является формирование навыков проектирования, программирования и отладки объектно-ориентированные программ. Содержание курсового проекта: разработка объектно-ориентированной программы на языке С++, реализующей заданный полиморфный контейнер для хранения объектов заданной иерархии классов. Ориентировочная трудоемкость проекта составляет: - аудиторные занятия - 15 часов; - самостоятельные занятия – 30 часов.
7
Распределение учебных часов по темам и видам занятий № темы
1 2
3 4 5 6 7 8 9 10
Объем учебных часов Практ. Аудит. Самост. занятия занятия работа
Всего
Семестр
1 2
1 2
2
1 4
6 6
2
2
2
4
6
4
4
2
6
6
2 4 6 2 2
2 4 6 2 2
2 2 3 2 2
4 6 9 4 4
6 6 6 6 6
2
2
2
4
6
2
2
1
3
6
1
1 15 45
30 50
1 45 95
6 6
Название разделов и тем
Лекции
Введение Основные понятия дисциплины Введение в объектноориентированный анализ и проектирование Введение в язык программирования С++ Функции и файлы Классы Наследование классов Шаблоны Обработка исключительных ситуаций Разработка объектноориентированных программ на С++ Инструментальные программные средства для С++ Заключение Курс. проектирование ИТОГО:
Лабор. занятия
30
Методика текущего контроля Текущий контроль включает две точки. Первая контрольная точка имеет цель проверить степень усвоения части лекционного курса и оценить практические навыки. Она включает опрос остаточных знаний в аудитории и оценку навыков работы в компьютерном классе. Вторая контрольная точка имеет цель оценки степени усвоения лекционного курса. Опрос осуществляется по индивидуальным заданиям. Общая оценка по текущему контролю выполняется на основании полученных оценок и итогового собеседования. График текущего контроля Первая контрольная точка на 8 неделе. Вторая контрольная точка на 12 неделе.
8
ЛИТЕРАТУРА Основная
№ 1 2
Название, библиографическое описание Бадд Т. Объектно-ориентированное программирование в действии. - 1997 Дейтел Х.М. Как программировать на C++/ Пер. с англ. под ред. В.Г.Кузьменко. - 2001
Л
Кп
К-во экз. в библ. (на каф.)
6
6
Уч 16 Ф4
6
6
Уч 28 Ф2
Гриф
ГосКомРФ по высш.обр. Мин.обр РФ
Дополнительная № 1 2 3 4 5
Название, библиографическое описание Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++/ Пер. с англ. под ред. И.Романовского, Ф.Андреева. - 1998 Страуструп Б. Язык программирования C++/ Пер. с англ. С.Анисимова, М.Кононова под ред. Ф.Андреева, А.Ушакова. - 2001 Лукас П.Д. C++ под рукой/ Пер. с англ. К.В.Сулема; Под ред. С.Н. Сущенко. - 1993 Телло Э.Р. Объективно - ориентированное программирование в среде Windows/ Пер. с англ. Д.М.Арапова, А.К.Петренко. - 1993 Топп У. Структуры данных в С++/ Пер. с англ. под ред. В.Кузьменко. 2000
9
К-во экз. в библ. (на каф.)
Ф1
Уч 12 Ф2 Уч 13 Ф2 Уч 39 Ф4 Уч 12 Ф2
Авторы: с к. т. н., доцент к. т. н, доцент
Спицын А.В. Чередниченко А.И.
Рецензент к. т. н, доцент
Казак А.Ф.
Зав. кафедрой МО ЭВМ д. т. н., профессор
Лисс А.Р.
Декан факультета компьютерных технологий и информатики д. т. н., профессор
Герасимов И.В.
Программа согласована: Зав. отделом учебной литературы)
Смирнова О.Н.
Председатель методической комиссии факультета КТИ к.т.н., доцент
Чугунов Л.А.
Руководитель методического отдела к.т.н., доцент
Марасина Л.А.
10