Программа учебного курса ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ I. Организационно-методический раздел. Курс реализует...
150 downloads
211 Views
131KB 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
Программа учебного курса ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ I. Организационно-методический раздел. Курс реализуется в рамках специальности 220400 «Программное обеспечение вычислительной техники и автоматизированных систем», относится к циклу специальных дисциплин. 1.1.Цели и задачи курса Цель курса - изучение объектно-ориентированного программирования на примере языка C++ и получение навыков разработки программ в среде Microsoft Visual C++. Задачи курса - Изучение концепций объектно-ориентированного программирования - Изучение объектно-ориентированного языка программирования C++ - Обучение разработке программ в среде Microsoft Visual C++ 1.2.Требования к уровню освоения содержания курса По окончании изучения указанной дисциплины студент должен иметь представление - о концепциях и идеях объектно-ориентированного программирования знать - о правилах составления программ на языке программирования C++ - об основных возможностях среды программирования Microsoft Visual C++ уметь - составлять программы на языке программирования C++ - использовать среду программирования Microsoft Visual C++ для разработки и отладки программ на языке C++ 1.3.Формы контроля Итоговый контроль. Для контроля усвоения дисциплины учебным планом предусмотрен зачет по практической работе и экзамен по теоретическому материалу. Текущий контроль. В течение семестра выполняется контрольная лабораторная работа, которая является обязательной для всех студентов, а ее результаты служат основанием для выставления оценок в ведомость контрольной недели на факультете.
2. Содержание дисциплины.
2.1.Новизна и актуальность курса Учебный курс концентрирует внимание на практическом применении популярной концепции объектно-ориентированного программирования и основанного на ней языка программирования C++ для решения практических задач. 2.2.Тематический план курса (распределение часов).
Наименование разделов и тем Лекции Раздел 1. Основные концепции объектно-ориентированного программирования и основы языка C++. Раздел 2. Объектно-ориентированные средства языка C++. Объекты, классы, методы, средства ограничения доступа. Раздел 3. Наследование и полиморфизм классов. Виртуальные и статические методы. Раздел 4. Совместное использование функций, перегрузка операторов, специальные методы классов, конструкторы и деструкторы. Раздел 5. Средства вводавывода и работа с потоками. Раздел 6. Механизм исключительных ситуаций и обработка ошибок. Раздел 7. Поддержка модульности, пространства имен, внешнее связывание. Директивы препроцессора. Раздел 8. Шаблонные классы и шаблонные функции. Стандартные контейнерные классы. Итого по курсу:
1
Количество ЛабораторСеминаные работы ры 2
часов Самостоятельная работа
Всего часов
3
6
2
3
5
10
2
3
5
10
2
3
5
10
2
3
5
10
2
2
4
8
2
2
4
8
2
3
5
10
15
21
36
72
2.3.Содержание отдельных разделов и тем. А) Теоретическая часть 1. Основные концепции объектно-ориентированного программирования. Инкапсуляция, наследование, полиморфизм. Объектно-ориентированный подход к разработке программ. История и основы языка С++. Примеры простых программ на языке C++. 2. Объектно-ориентированные средства языка С++. Объекты, классы. Инкапсуляция данных и методы доступа. Средства ограничения доступа. Интерфейс и реализация. Примеры простых программ с использованием классов. 3. Наследование классов. Переопределение методов. Виртуальные и статические методы. Примеры простых программ с иерархией классов. 4. Совместное использование функций и методов. Сигнатуры и правила отождествления вызова. Перегрузка операторов. Специальные методы классов, конструкторы и деструкторы. Автоматическая и динамическая память. Примеры простых программ с перегрузкой операторов. 5. Потоки ввода-вывода. Иерархия потоковых классов. Операции ввода-вывода для стандартных типов. Организация ввода-вывода для пользовательских типов. Работа с файлами и буферами в памяти. Средства форматирование вывода, манипуляторы. Примеры простых программ с организацией ввода-вывода. 6. Механизм исключительных ситуаций. Возбуждение и обработка ситуаций. Свертка стека, исполнение конструкторов и деструкторов. Поддержка иерархии классов. Стандартные классы исключительных ситуаций. Примеры простых программ с использованием исключительных ситуаций. 7. Поддержка модульности. Единицы компиляции. Разделение на файлы заголовков и реализации. Подключение заголовков. Директивы предпроцессора, макросы и условная компиляция. Внешнее связывание. Пространства имен. 8. Шаблонные функции. Шаблонные классы. Методы шаблонных классов. Явное и неявное отождествление. Объявление и реализация методов шаблонных классов. Стандартные шаблонные контейнерные классы. Основные методы контейнерных классов. Итераторы. Б) Практические занятия 1. Основные средства языка С++. Программы для решения квадратного уравнения, сортировки массива, работы со строками. Знакомство со средой Microsoft Visual C++. 2. Объектно-ориентированные средства. Программа для описания класса Person с возможностью ввода-вывода данных и сортировки списка по имени человека. 3. Наследование и полиморфизм. Программа для описания иерархии классов Person, Student, Teacher и переопределения их методов.
4. Совместное использование функций и перегрузка операторов. Программа для описания класса Date, перегрузки операторов для этого класса и использования его в классе Person. 5. Использование динамической памяти. Программа для описания класса динамически расширяемого списка List и использование его для хранения информации о людях. 6. Потоки ввода-вывода. Организация операций ввода-вывода для описанных классов, сохранение и восстановление в файлах, средства форматирования вывода. 7. Механизм исключительных ситуаций. Организация и использование исключительных ситуаций при выполнении операций над описанными классами. 9. Поддержка модульности. Разбиение программы на единицы компиляции, использование файлов заголовков и условной компиляции. 10. Шаблонные классы и стандартные контейнеры. Организация шаблонного класса List для хранения объектов любых типов и использование его для хранения информации о людях. Использование стандартных контейнерных классов для той же цели. 11. Организация интерфейса. Программа для организации базы данных о людях с интерфейсом командной строки и использованием всех описанных классов. 2.4. Перечень примерных контрольных вопросов и заданий для самостоятельной работы – см. раздел 3.2 (вопросы для подготовки к экзамену). 3. Учебно-методическое обеспечение дисциплины 3.1. 3.2. Образцы вопросов для подготовки к экзамену Раздел 1. 1) Основные концепции объектно-ориентированного программирования. 2) Основные методы объектно-ориентированной разработки программ. 3) Основные понятия языка C++. Типы данных, операции, указатели. 4) Основные конструкции языка С++. Раздел 2 1) Описание классов. Компоненты классов. 2) Создание объектов. Доступ к данным и вызов методов. 3) Средства ограничения доступа к компонентам классов. Раздел 3. 1) Наследование классов, полей и методов. Поведение производных классов. 2) Виртуальные и статические методы класса.
3) Доступ к компонентам базового класса. Раздел 4. 1) Совместное использование функций и методов класса. Отождествление сигнатуры. 2) Перегрузка операторов. 3) Работа конструкторов и деструкторов. Конструкторы по умолчанию. 4) Работа динамической памятью. Особенности работы конструкторов и деструкторов. Раздел 5. 1) Стандартные классы потоков ввода-вывода. 2) Организация ввода-вывода для пользовательских классов. 3) Использование файлов и буферов в памяти для ввода-вывода. 4) Средства форматного вывода, манипуляторы. Раздел 6. 1) Средства возбуждения и обработки исключительных ситуаций. 2) Обработка иерархии классов исключительных ситуаций. Раздел 7. 1) Единицы компиляции программы, файлы заголовков и реализации. 2) Директивы препроцессора, макросы и условная компиляция. 3) Организация пространств имен. Пространство имен для стандартной библиотеки. Раздел 8. 1) Шаблонные функции. Описание и использование. Отождествление сигнатур. 2) Шаблонные классы. Описание и использование. Реализация методов. 3) Стандартные шаблонные контейнерные классы. Основные методы. Итераторы. 3.3.Список основной и дополнительной литературы 1. А.В. Замулин. Курс лекций: Объектно-ориентированное программирование (С++) http://www.iis.nsk.su/persons/zamulin/C++.zip 2. А.В. Замулин. Курс лекций: Объектно-ориентированное программирование (С++, Ява, C#) - http://www.iis.nsk.su/persons/zamulin/OOPCourse.zip 3. Бьерн Страуструп. Язык программирования С++. Третье издание. - М.: Изд. Бином, Невский Диалект, 1999. 4. Г. Шилдт. Самоучитель C++. - Санкт-Петербург, Изд. BHV, 2004. 5. Гради Буч. Объектно - ориентированный анализ и проектирование с примерами приложений на С++. - М.: Изд. Бином, Невский Диалект, 1998. Программу подготовил:
Попов И.Г.
Программа утверждена на заседании Ученого совета факультета информационных технологий Новосибирского государственного университета 18 декабря 2003 г., протокол заседания №16. Декан ФИТ НГУ, д.ф.-м.н.
М.М.Лаврентьев