ООП ПМИ 3курс - Высшая школа экономики

advertisement
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Объектно-ориентированное программирование» для направления
010400 «Прикладная математика и информатика» подготовки бакалавра
Правительство Российской Федерации
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"
Факультет Прикладной математики и кибернетики
Программа дисциплины Языки и методы программирования
для направления 010400 «Прикладная математика и информатика» подготовки бакалавра
Автор программы:
Гришкина М.П., к.т.н., mgrishkina@hse.ru
Одобрена на заседании кафедры Кибернетики «___»____________ 20 г
Зав. кафедрой Афанасьев В.Н.____________________________________
Утверждена УС МИЭМ НИУ ВШЭ «___»_____________20 г.
Ученый секретарь В.П.Симонов ________________________
Москва, 2013
Настоящая программа не может быть использована другими подразделениями
университета и другими вузами без разрешения кафедры-разработчика программы.
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Объектно-ориентированное программирование» для направления
010400 «Прикладная математика и информатика» подготовки бакалавра
1
Область применения и нормативные ссылки
Настоящая программа учебной дисциплины устанавливает минимальные требования к
знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности.
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных
ассистентов и студентов направления 010400 «Прикладная математика и информатика» подготовки
бакалавра изучающих дисциплину Языки и методы программирования.
Программа разработана в соответствии с:
 ФГОС для направления 010400 «Прикладная математика и информатика» подготовки
бакалавра.
 Рабочим учебным планом университета по направлению подготовки
010400
«Прикладная математика и информатика», утвержденным в 2013 г.
2
Цели освоения дисциплины
Целями освоения дисциплины Объектно-ориентированное программирование является
знакомство с современными системами программирования, основанными на технологии объектноориентированного проектирования (ООП), приобретение навыков работы в среде Visual Studio. В
процессе изучения дисциплины студенты приобретают навыки проектирования и
программирования компьютерных приложений, которые будут использоваться при выполнении
различных заданий и работ по дисциплинам, изучаемым на последующих курсах.
3
Компетенции обучающегося, формируемые в результате освоения
дисциплины
В результате освоения дисциплины студент должен:
 Знать:
 Основные направления разработки и проектирования программных продуктов.
 Парадигмы и технологии программирования.
 Технологию
объектно-ориентированного
проектирования
и
объектноориентированный анализ
 Теорию объектно-ориентированного программирования.
 Уметь:
 Формализовать прикладную задачу, выбирать для неё подходящие структуры данных и
алгоритмы обработки.
 Использовать
технологии
объектно-ориентированного
проектирования
и
программирования для решения прикладных задач.
 Иметь навыки (приобрести опыт)
 В разработке программных приложений.
 В проведении отладки и тестирования разработанных программ.
 В проведении анализа получаемых результатов и оформлении документации на
программу.
В результате освоения дисциплины студент осваивает следующие компетенции:
Компетенция
Стремится к
выполнению
Код по Дескрипторы – основные признаки
ФГОС/ освоения (показатели достижения
НИУ
результата)
ОК-9
Использует
Формы и методы обучения,
способствующие
формированию и развитию
компетенции
Самостоятельная работа,
выполнение
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Объектно-ориентированное программирование» для направления
010400 «Прикладная математика и информатика» подготовки бакалавра
Компетенция
Код по Дескрипторы – основные признаки
ФГОС/ освоения (показатели достижения
НИУ
результата)
профессиональной
деятельности
Способен работать с
ОК-12
информацией в
глобальных
компьютерных сетях
Использует
ОК-14
профессиональные
навыки работы с
информационными и
компьютерными
технологиями в научной
и познавательной
деятельности, а также в
социальной сфере
Стремится к повышению ОК-16
своей квалификации
мастерства
Способен
ПК-1
демонстрировать
общенаучные базовые
знания естественных
наук, математики и
информатики,
понимание основных
фактов, концепций,
принципов теорий,
связанных с прикладной
математикой и
информатикой
Способен приобретать
ПК-2
новые научные и
профессиональные
знания, используя
современные
образовательные и
информационные
технологии
Способен понимать и
ПК-3
применять в
исследовательской и
прикладной
деятельности
современный
математический аппарат
Способен решать задачи ПК-9
производственной и
Владеет и применяет
Формы и методы обучения,
способствующие
формированию и развитию
компетенции
лабораторных, домашних
и контрольных работ
Самостоятельная работа
Владеет и применяет
Самостоятельная работа,
выполнение домашних и
лабораторных работ
Демонстрирует
Самостоятельная работа,
выполнение домашних и
лабораторных работ
Лекции, лабораторные
работы, выполнение
контрольных и домашних
заданий
Применяет, обосновывает,
интерпретирует и оценивает
Демонстрирует
Самостоятельная работа,
выполнение домашних и
лабораторных работ
Применяет, обосновывает,
интерпретирует и оценивает
Лекции, лабораторные
работы, выполнение
контрольных и домашних
заданий
Применяет, обосновывает,
интерпретирует и оценивает
Самостоятельная работа,
выполнение
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Объектно-ориентированное программирование» для направления
010400 «Прикладная математика и информатика» подготовки бакалавра
Компетенция
Код по Дескрипторы – основные признаки
ФГОС/ освоения (показатели достижения
НИУ
результата)
технологической
деятельности на
профессиональном
уровне, включая:
разработку
алгоритмических и
программных решений в
области системного и
прикладного
программирования
Способен применять в
ПК-10
профессиональной
деятельности
современные языки
программирования и
языки баз данных,
операционные системы,
электронные библиотеки
и пакеты программ,
сетевые технологии
4
Формы и методы обучения,
способствующие
формированию и развитию
компетенции
лабораторных, домашних
и контрольных работ
Применяет, обосновывает,
интерпретирует и оценивает
Самостоятельная работа,
выполнение
лабораторных, домашних
и контрольных работ
Место дисциплины в структуре образовательной программы
Настоящая дисциплина относится к вариативной части цикла «Профессиональные
дисциплины».
Изучение данной дисциплины базируется на следующих дисциплинах:
 Основы линейной алгебры;
 Математическая логика;
 Языки и методы программирования.
Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и
компетенциями:
 знанием алгоритмизации и моделирования
 умением программировать на структурном языке программирования высокого уровня
(Си)
 знанием и умением применять современные компьютерные технологии
 умением решать и оформлять решения прикладных задач
Основные положения дисциплины должны быть использованы в дальнейшем при изучении
следующих дисциплин:
 Алгоритмы дискретной математики
 Операционные системы
 Базы данных
 Основы информатики
 Численные методы
 Проектирование программного обеспечения
 Программирование для Интернет
 Учебная и производственная практики
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Объектно-ориентированное программирование» для направления
010400 «Прикладная математика и информатика» подготовки бакалавра
5
№
1
2
3
4
5
6
Тематический план учебной дисциплины
Название раздела
Парадигмы и языки программирования.
Обзор современных систем
программирования.
Основы объектно-ориентированного
проектирования и программирования.
С++ - пример гибридного языка
программирования
Реализация парадигмы ООП в C++
Система Visual Studio..
Всего часов
Всего
часов
Аудиторные часы
СамостояПрактические тельная
Лекции
работа
занятия
6
6
8
6
6
6
86
122
228
20
34
72
2
16
36
54
50
52
102
Формы контроля знаний студентов
Промежуточной формой контроля является зачет после первого семестра.
Итоговой формой контроля является экзамен.
Критерии оценки знаний, навыков
Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале.
Для формирования практических навыков программирования проводятся лабораторные
работы и выполняются домашние задания. При этом студент должен продемонстрировать не только
уровень знаний, но и результаты самостоятельной работы: стремление к выполнению
профессиональной деятельности (ОК-9, ОК-16), способность к поиску информации (ОК-12),
использование для выполнения заданий компьютерных технологий (ОК-14).
Основной целью проведения лабораторных работ является приобретение опыта
практической разработки программ с использованием объектно-ориентированной технологии на
языке С++ (ПК-9 и ПК-10). При выполнении лабораторных работ закрепляются навыки
проектирования, программирования и документирования решений прикладных, в том числе
математических, задач с помощью ЭВМ (ПК-1, ПК-2, ПК-3).
С целью текущего контроля успеваемости предусмотрена защита лабораторных и домашних
работ. Оценка за лабораторную/домашнюю работу учитывает:
 Насколько точно студент выполнил задание, сформулированное в лабораторной работе;
 Степень и полноту усвоенных навыков работы со средствами разработки и отладки
программ;
 Насколько слушатель правильно и аргументировано ответил на все вопросы при обсуждении
выполненного задания;
 Качество оформления документации к программе и/или отчета по решению поставленной
задачи.
Для текущей и промежуточной аттестации студентов выполняются контрольные работы.
Контрольная работа выполняется каждым студентом индивидуально в соответствии с
предоставленным вариантом.
6.1
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Объектно-ориентированное программирование» для направления
010400 «Прикладная математика и информатика» подготовки бакалавра
Порядок формирования оценок по дисциплине
Средняя оценка за выполненные лабораторные, домашние и контрольные задания считается
накопленной оценкой Qнак1 за первый семестр.
Промежуточная оценка вычисляется по формуле:
Qпромежуточная=0,5*Qзачет+0,5*Qнак1
Средняя оценка за выполненные лабораторные, домашние и контрольные задания считается
накопленной оценкой Qнак2 за второй семестр.
Общая накопленная оценка:
Qнак= 0,5*Qнак2+0,5*Qпромежуточная
Итоговая оценка вычисляется по формуле:
Qитог=0,5*Qэкзамен+0,5*Qнак
6.2
7
Содержание дисциплины
Раздел 1 Парадигмы и языки программирования
Понятие парадигмы программирования. Связь языков и парадигм программирования.
Процедурные и декларативные языки. (2 часа лекций)
Декларативные парадигмы: логическое, функциональное, реляционное программирование.
Системы и языки программирования: LPA Prolog++, swi-prolog, Lisp, My SQL и т.п. (2 часа
лекций)
Системы, основанные на гибридных языках программирования: Delphi, LPA Prolog++, Lisp++. (2
часа лекций)
Литература по разделу:
1. Грэди Буч, Роберт А. Максимчук, Майкл У. Энгл, Бобби Дж. Янг, Джим Коналлен, Келли
А. Хьюстон, Объектно-ориентированный анализ и проектирование с примерами
приложений, Москва: Вильямс, 2010
2. Айвор Хортон, Visual C++ 2010 полный курс, Москва: Вильямс, 2011
3. Братко И., Алгоритмы искусственного интеллекта на языке Prolog, Москва: Вильямс, 2004
4. Архангельский А., Delphi 2006. Язык Delphi, классы, функции Win32 и .NET. Справочное
пособие, Бином-пресс, 2011
Раздел 2 Основы объектно-ориентированного проектирования и программирования.
Объектно-ориентированная парадигма. Теория и терминология. Объектная среда, объекты,
супервайзер, таймер. Способы взаимодействия объектов: идентификация, сообщения,
исключения (4 часа лекций).
Подсистемы. Генерация новых классов (спецификация и классификация)
(2 часа лекций)
Творческое задание: привести пример объектной среды из реальной жизни. (2 часа практических
занятий)
Литература по разделу:
1. Грэди Буч, Роберт А. Максимчук, Майкл У. Энгл, Бобби Дж. Янг, Джим Коналлен, Келли
А. Хьюстон, Объектно-ориентированный анализ и проектирование с примерами
приложений, Москва: Вильямс, 2010
2. Айвор Хортон, Visual C++ 2010 полный курс, Москва: Вильямс, 2011
Раздел 3 С++ - пример гибридного языка программирования
Совмещение элементов структурной и объектно-ориентированной парадигм.
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Объектно-ориентированное программирование» для направления
010400 «Прикладная математика и информатика» подготовки бакалавра
Соответствие понятий теории ООП и терминологии С++. Какие механизмы ООП и в какой
степени реализованы в С++ (4 часа лекций)
Класс в С++ как расширения понятия структуры в С. Наследие структурного программирования
в С++. (2 часа лекций)
Литература по разделу:
1. Подбельский В.В. Язык С++. – М.: «Финансы и статистика», 2003 г.
2. Айвор Хортон, Visual C++ 2010 полный курс, Москва : Вильямс, 2011
Раздел 4 Реализация парадигмы ООП в C++
Инкапсуляция. Классы и объекты. Спецификаторы видимости. Конструкторы, деструкторы.
Статические компоненты класса. Особенности порождения объектов, связанных отношением
часть-целое. (6 часов лекций и 6 часов практических занятий)
Перегрузка операций. (4 часа лекций и 2 часа практических занятий)
Наследование. Полиморфизм. Виртуальные функции. Абстрактные типы данных.
(10 часов лекций и 6 часов практических занятий)
Домашнее задание: «Создание класса Точка на плоскости»
Контрольная работа: «Классы и объекты» (2 часа практических занятий)
На раздел выделено 50 часов самостоятельной работы для подготовки к выполнению и защите
лабораторных работ.
Литература по разделу:
1. Биллиг, В. А. Основы объектного программирования на C#(С#3.0, Visual Studio 2008). М.
БИНОМ. Лаборатория знаний, 2010,2012
2. Павловская, Т. А. С/С++. Программирование на языке высокого уровня. СПб. Питер,2002,
2008.
3. Подбельский В.В. Язык С++. – М.: «Финансы и статистика», 2003 г.
Раздел 5 Система Visual Studio.
Особенности системы Visual Studio.Многомодульность решения. Построение проекта. Работа с
отладчиком. (4 часа лекций и 8 часов практических занятий)
Перегрузка функций. Работа с динамической памятью. (4 часа лекций и 2 часа практических
занятий)
Потоковый ввод/вывод. Работа с файловыми потоками в С++ (6 часов лекций и 4 часа
практических занятий)
Шаблоны функций. Шаблоны классов (4 часа лекций и 4 часа практических занятий)
Классы исключений, обработка исключений. (4 часа лекций и 4 часа практических занятий)
Библиотека STL. Класс String. Контейнеры и итераторы. (6 часов лекций и 6 часов практических
занятий)
Библиотека MFC. Создание GUI-приложений (6 часов лекций и 6 часов практических занятий)
Домашнее задание: «Создание и обработка двумерного динамического массива»
Контрольная работа: «Программирование на С++» (2 часа практических занятий)
На раздел выделено 52 часа самостоятельной работы для подготовки к выполнению и защите
лабораторных работ.
Литература по разделу:
1. Айвор Хортон, Visual C++ 2010 полный курс, Москва : Вильямс, 2011
2. Биллиг, В. А. Основы объектного программирования на C#(С#3.0, Visual Studio 2008). М.
БИНОМ. Лаборатория знаний, 2010,2012
3. Павловская, Т. А. С/С++. Программирование на языке высокого уровня. СПб. Питер,2002,
2008.
4. Подбельский В.В. Язык С++. – М.: «Финансы и статистика», 2003 г.
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Объектно-ориентированное программирование» для направления
010400 «Прикладная математика и информатика» подготовки бакалавра
8
Образовательные технологии
В учебном процессе, помимо чтения лекций, широко используются интерактивные формы
(обсуждение отдельных разделов дисциплины, защита домашних заданий и лабораторных работ). В
сочетании с внеаудиторной самостоятельной работой это способствует формированию и развитию
как общекультурных, так и профессиональных компетенций.
Для закрепления и проверки знаний студентов по наиболее важным разделам курса
проводятся контрольные работы.
При проведении промежуточного и итогового контроля особое внимание обращается на
умение решать задачи, поэтому билеты содержат не только теоретические вопросы, но и задачи.
9
9.1
9.2
Оценочные средства для текущего контроля и аттестации студента
Текущий контроль
Перечень тем контрольных, домашних и лабораторных работ приведен в разделе 7.
Вопросы для оценки качества освоения дисциплины
Примерный перечень вопросов к экзамену:
1. Парадигмы и языки программирования.
2. С++ - язык ООП. Соответствие понятий, терминологии, механизмов.
3. С++ - гибридный язык. Терминология структурного программирования и ООП. Чем классы
отличаются от структур.
4. Понятия класса и объекта в С++. Инкапсуляция. Описание, определение, использование.
5. Инкапсуляция. Компоненты класса и объекта. Спецификаторы доступа.
6. Специальные компоненты класса. Перегрузка операции присваивания.
7. Перегрузка функций. Перегрузка операций.
8. Перегрузка операций: компонентные и дружественные функции. Перегрузка операций,
связанных с потоком. Друзья класса.
9. Работа с динамической памятью в С++. Особенности определения класса, имеющего
динамические компоненты.
10. Наследование. Что наследуется, а что - нет? Спецификаторы наследования. Как обратиться
к родительскому компоненту.
11. Виртуальные функции. Чисто виртуальные функции. Полиморфизм. Абстрактные классы.
12. Прямые и косвенные родители. Множественное наследование. Особенности множественного
наследования от одного косвенного родителя.
13. Шаблоны функций. Шаблоны классов.
14. Библиотека STL. Контейнеры и итераторы. Класс String.
15. Исключения. Обработка исключений. Классы исключений.
10 Учебно-методическое и информационное обеспечение дисциплины
10.1 Основная литература
1. Биллиг, В. А. Основы объектного программирования на C#(С#3.0, Visual Studio 2008). М.
БИНОМ. Лаборатория знаний, 2010,2012
2. Павловская, Т. А. С/С++. Программирование на языке высокого уровня. СПб. Питер,2002,
2008.
3. Подбельский В.В. Язык С++. – М.: «Финансы и статистика», 2003 г.
Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины «Объектно-ориентированное программирование» для направления
010400 «Прикладная математика и информатика» подготовки бакалавра
4. Вайсфельд, М. Объектно - ориентированный подход: Java, .Net, C++. М. КУДИЦ-ОБРАЗ,
2005
10.2 Дополнительная литература
1. Грэди Буч, Роберт А. Максимчук, Майкл У. Энгл, Бобби Дж. Янг, Джим Коналлен, Келли
А. Хьюстон, Объектно-ориентированный анализ и проектирование с примерами
приложений, Москва: Вильямс, 2010
2. Архангельский А., Delphi 2006. Язык Delphi, классы, функции Win32 и .NET. Справочное
пособие, Бином-пресс, 2011
3. Братко И., Алгоритмы искусственного интеллекта на языке Prolog, Москва: Вильямс, 2004
4 Айвор Хортон, Visual C++ 2010 полный курс, Москва : Вильямс, 2011
5. Культин, Н. Б. С/С++ в задачах и примерах. БХВ-Петербург, 2012
10.3 Программные средства
Для успешного освоения дисциплины, студент использует следующие программные
средства:
Visual Studio 2008
11 Материально-техническое обеспечение дисциплины
Для проведения лекций требуется проектор.
Для проведения практических занятий требуется компьютерный класс, оснащенный
проектором.
Download