УТВЕРЖДАЮ Директор ИК _______________А.А.Захарова 2014 г. « » БАЗОВАЯ РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ И ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ Направление (специальность) ООП 09.03.04 Программная инженерия Квалификация (степень) бакалавр Базовый учебный план приема 2014 г. Курс 4 семестр 7 Количество кредитов 6 Код дисциплины ДИСЦ.В.1.3 Виды учебной деятельности Временной ресурс по очной форме обучения Лекции, ч Лабораторные занятия, ч Аудиторные занятия, ч Самостоятельная работа, ч ИТОГО, ч 32 32 64 152 216 Вид промежуточной аттестации 7 семестр, экзамен Обеспечивающая подразделение каф. ПМ Заведующий кафедрой ПМ А.Н. Квасов Руководитель ООП Е.С. Чердынцев Преподаватель Рыбалка С.А. 2014 г. 1. Цели освоения дисциплины Целью освоения дисциплины «Объектно-ориентированное программирование и паттерны программирования» является приобретение базовых знаний и навыков проектирования и разработки приложений с применением объектно-ориентированного подхода и паттернов. В процессе изучения дисциплины решаются следующие задачи: формирование представлений об общей методологии и средствах технологии объектно-ориентированного программирования; углубленная подготовка студентов в области применения технологии объектно-ориентированного программирования; приобретение навыков использования паттернов при разработке приложений. 2. Место дисциплины в структуре ООП Дисциплина «Объектно-ориентированное программирование и паттерны проектирования» относится к вариативной составляющей профессионального цикла учебных дисциплин ООП и входит в модуль ДИСЦ.В.1 «Компьютерное моделирование». Необходимым условием усвоения данного курса является наличие твердых знаний по предшествующим дисциплинам, связанным с разработкой и применением программного обеспечения. Дисциплине «Объектноориентированное программирование и паттерны проектирования» предшествует (ПРЕРЕКВИЗИТЫ): «Информатика», «Программирование, «Конструирование программного обеспечения», «Тестирование программного обеспечения». Содержание разделов дисциплины «Объектноориентированного программирование и паттерны проектирования» согласовано с содержанием дисциплин, изучаемых параллельно (КОРЕКВИЗИТЫ): «Технология командной разработки ПО», «Построение сложных информационных систем», «Компьютерное моделирование». 3. Результаты освоения дисциплины В соответствии с требованиями ООП освоение дисциплины направлено на формирование у студентов следующих компетенций (результатов обучения), в т. ч. в соответствии с ФГОС: Таблица 2 Составляющие результатов обучения, которые будут получены при изучении данной дисциплины Результаты обучения Код Знания (унифицирован ные компетенции) Р1 З.1 основные виды (ОК.1, ПК.1) прикладного Составляющие результатов обучения Код Умения Код У.1 определять средства прикладных систем, Владение опытом В.1 средствами повышения эффективности программного обеспечения Р2 (ПК.6, ПК.17) З.2 средства повышения эффективности применения прикладного программного обеспечения У.2 обеспечивающие повышение эффективности применения данных систем применять прикладное обеспечение на различных уровнях применения прикладного программного обеспечения В.2 технологиями использования шаблонов при разработке новых программных средств В результате освоения дисциплины «Объектно-ориентированное программирование и паттерны проектирования» студентом должны быть достигнуты следующие результаты: Таблица 3 Планируемые результаты освоения дисциплины № п/п Результат РД 1 способность использовать углубленные теоретические и практические знания в области программной инженерии; способность разрабатывать концептуальные и теоретические модели решаемых задач РД 2 способность углубленного анализа проблем, постановки и обоснования задач научной и проектно-технологической деятельности; способность формировать проект программного продукта 4. Структура и содержание дисциплины Раздел 1. Объектно-ориентированный подход Основные понятия и элементы программирования. Структурное программирование. Процедурное программирование. Объектноориентированное программирование. Лабораторные работы Лабораторная работа 1. Разработка консольного приложения с использованием процедур Лабораторная работа 2. Разработка классов для консольных приложений. Раздел 2. Основные программирования принципы объектно-ориентированного Три основополагающие принципа объектно-ориентированного программирования: наследование, инкапсуляция, полиморфизм. Взаимоотношения классов. Создание диаграммы классов. Лабораторные работы Лабораторная работа 3. Знакомство со средой Builder Лабораторная работа 4. Разработка графического интерфейса приложения Лабораторная работа 5. Компоненты библиотеки VCL Лабораторная работа 6. Разработка обработчиков событий Лабораторная работа 7. Использование Action для обработки событий Лабораторная работа 8. Разработка классов, реализующих вычисления Лабораторная работа 9. Разработка интерфейса графического приложения Лабораторная работа 10. Средства отладки приложений Лабораторная работа 11. Оптимизация работы приложения Лабораторная работа 12. Стандартные диалоговые окна в приложениях Раздел 3. Паттерны проектирования Шаблоны классов. Основы проектирования программ на основе паттернов. Типы паттернов: проектирования, порождающие, структурные, поведения. Лабораторные работы Лабораторная работа 13. Использование паттернов проектирования при разработке приложений Лабораторная работа 14. Использование порождающих паттернов при разработке приложений Лабораторная работа 15. Использование структурных паттернов при разработке приложений Лабораторная работа 16. Использование паттернов поведения при разработке приложений 6. Организация и учебно-методическое обеспечение самостоятельной работы студентов Самостоятельная работа студента (СРС) является наиболее продуктивной формой образовательной и познавательной деятельности студента в период обучения. Для реализации творческих способностей и более глубокого освоения дисциплины предусмотрены следующие виды самостоятельной работы: 1) текущая и 2) творческая проблемноориентированная. 6.1. Виды и формы самостоятельной работы Текущая самостоятельная работа, направленная на углубление и закрепление знаний студента, развитие практических умений включает: работу с лекционным материалом, поиск и обзор литературы и электронных источников информации по индивидуально заданной проблеме курса; опережающую самостоятельную работу; изучение тем, вынесенных на самостоятельную проработку; подготовку к лабораторным работам; подготовку к экзамену. Творческая проблемно-ориентированная самостоятельная работа (ТСР) предусматривает: участие в олимпиадах; участие в мероприятиях конференц-недели; углубленное исследование вопросов по тематике лабораторных работ. 6.3. Контроль самостоятельной работы Оценка результатов самостоятельной работы организуется как единство двух форм: самоконтроль и контроль со стороны преподавателя. Самоконтроль зависит от определенных качеств личности, ответственности за результаты своего обучения, заинтересованности в положительной оценке своего труда, материальных и моральных стимулов, от того насколько обучаемый мотивирован в достижении наилучших результатов. Задача преподавателя состоит в том, чтобы создать условия для выполнения самостоятельной работы (учебно-методическое обеспечение), правильно использовать различные стимулы для реализации этой работы (рейтинговая система), повышать её значимость, и грамотно осуществлять контроль самостоятельной деятельности студента (фонд оценочных средств). Контроль за текущей СРС осуществляется на лабораторных занятиях во время защиты лабораторной работы, во время лекции в виде краткого опроса. Контроль за проработкой лекционного материала и самостоятельного изучения отдельных тем осуществляется во время рубежного контроля (контрольные работы) и также во время защиты лабораторных работ в том числе, и во время конференц-недель. Проведение конференц-недель (две недели в семестре в соответствии с линейным графиком учебного процесса) позволяет повысить результативность и качество самостоятельной деятельности студентов. 7. Средства текущей и промежуточной оценки качества освоения дисциплины Оценка качества освоения дисциплины производится по результатам контролирующих мероприятий из фонда оценочных средств. Элементы фонда оценивающих средств включают в себя: контрольные вопросы, задаваемые при выполнении и защитах лабораторных работ; вопросы для самоконтроля; вопросы, выносимые на экзамен. Примеры вопросов, выносимых на экзамен: 1. Цель объектно-ориентированного подхода. 2. Класс, объект, экземпляр класса. 3. Методы и поля класса. 4. Область видимости. 5. Статичные методы и поля. 6. Основные принципы объектно-ориентированного подхода. Абстракция. 7. Основные принципы объектно-ориентированного подхода. Инкапсуляция. 8. Основные принципы объектно-ориентированного подхода. Наследование. 9. Основные принципы объектно-ориентированного подхода. Полиморфизм. 10. Паттерны проектирования. Общие принципы. 11. Паттерны проектирования. Поиск подходящих объектов. 12. Паттерны проектирования. Определение степени детализации объекта. 13. Паттерны проектирования. Механизмы повторного использования. 14. Паттерны проектирования. Проектирование с учетом будущих изменений. 15. Порождающие паттерны. Абстрактная фабрика (Abstract Factory). 16. Порождающие паттерны. Строитель (Builder). 17. Порождающие паттерны. Фабричный метод (Factory Method). 18. Порождающие паттерны. Прототип (Prototype). 19. Порождающие паттерны. Одиночка (Singleton). 20. Структурные паттерны. Адаптер (Adapter). 21. Структурные паттерны. Мост (Bridge). 22. Структурные паттерны. Компоновщик (Composite). 23. Структурные паттерны. Декоратор (Decorator). 24. Структурные паттерны. Фасад (Facade). 25. Структурные паттерны. Приспособленец (Flyweight). 26. Структурные паттерны. Заместитель (Proxy). 27. Паттерны поведения. Цепочка обязанностей (Chain of Responsibility). 28. Паттерны поведения. Команда (Command). 29. Паттерны поведения. Интерпретатор (Interpreter). 30. Паттерны поведения. Итератор (Iterator). 31. Паттерны поведения. Посредник (Mediator). 32. Паттерны поведения. Хранитель (Memento). 33. Паттерны поведения. Наблюдатель (Observer). 34. Паттерны поведения. Состояние (State). 35. Паттерны поведения. Стратегия (Strategy). 36. Паттерны поведения. Шаблонный метод (Template Method). 37. Паттерны поведения. Посетитель (Visitor). 8. Рейтинг качества освоения дисциплины Оценка качества освоения дисциплины в ходе текущей и промежуточной аттестации обучающихся осуществляется в соответствии с «Руководящими материалами по текущему контролю успеваемости, промежуточной и итоговой аттестации студентов Томского политехнического университета», утвержденными приказом ректора № 77/од от 29.11.2011 г. В соответствии с «Календарным планом изучения дисциплины»: текущая аттестация (оценка качества усвоения теоретического материала (ответы на вопросы и др.) и результаты практической деятельности (решение задач, выполнение заданий, решение проблем и др.) производится в течение семестра (оценивается в баллах (максимально 60 баллов), к моменту завершения семестра студент должен набрать не менее 33 баллов); промежуточная аттестация (экзамен, зачет) производится в конце семестра (оценивается в баллах (максимально 40 баллов), на экзамене студент должен набрать не менее 22 баллов). Итоговый рейтинг по дисциплине определяется суммированием баллов, полученных в ходе текущей и промежуточной аттестаций. Максимальный итоговый рейтинг соответствует 100 баллам. 9. Учебно-методическое и информационное обеспечение дисциплины а) основная литература: 1. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектноориентированного проектирования. Паттерны проектирования. – СПб.: Питер, 2008. – 366 с. 2. Мартин Р., Ньюкирк Дж., Косс Р. Быстрая разработка программ. Принципы, примеры, практика. — М.: Издательский дом «Вильямс», 2004. – 752 с. 3. Иан Грэхем. Объектно-ориентированные методы. Принципы и практика. – 3-е изд. – М.: Издательский дом «Вильямс», 2004. – 880 с 4. С++.Объектно ориентированное программирование: Практикум/ Ю.А. Щупак. – СПб: Питер, 2005 г. 5. Основные концепции и механизмы объектно-ориентированного программирования/ Е.В. Пышкин. – СПб. : БХВ-Петербург, 2005 г. б) дополнительная литература: 6. Бадд Т. Объектно-ориентированное программирование в действии / Перев. с англ. — СПб.: Питер, 1997. 7. Максимчук Р.А.UML для простых смертных : пер. с англ. / Р.А.Максимчук, Э.Д.Нейбург. — Москва: Лори, 2014. – 268 с.: ил. в) программно-методическое обеспечение и Internet-ресурсы: 1. ОС Windows и его стандартные приложения. 2. Builder – интегрированная среда разработки программ. Интернет ресурсы: 3. Рыбалка С.А. C++ Builder. Задачи и решения [Электронный ресурс]: учебное пособие / С.А.Рыбалка, Г.И.Шкатова; Национальный исследовательский Томский политехнический университет (ТПУ). – 1 компьютерный файл (pdf; 3.7 MB). — Томск: Изд-во ТПУ, 2010. 4. Викиучебник. Объектно-ориентированное программирование [Электронный ресурс] – Режим доступа: http://ru.wikibooks.org/wiki/ Объектно-ориентированное программирование 5. http://www.citforum.ru/ (сайт аналитической информации). 6. http://dcprograms.narod.ru/ (языки и среды программирования). 10. Материально-техническое обеспечение дисциплины Указывается материально-техническое обеспечение дисциплины: технические средства, лабораторное оборудование и др. для кафедры, ведущей дисциплину «Информатика». Таблица 6 Материально-техническое обеспечение дисциплины № п/п 1 2 3 4 Компьютерные классы, оборудование Компьютерный класс (10 шт.) Компьютерный класс (10 шт.) Компьютерный класс (10 шт.) Компьютерный класс (10 шт.) Корпус, ауд., количество установок Корпус КЦ, ауд. 102 Корпус КЦ, ауд. 103 Корпус КЦ, ауд. 104 Корпус КЦ, ауд. 105 Программа составлена на основе Стандарта ООП ТПУ в соответствии с требованиями ФГОС по направлению «Программная инженерия» и профилю подготовки «Компьютерное моделирование». Программа одобрена на заседании кафедры прикладной математики ИК (протокол № ____ от «___» ____________ 2014 г.). Автор ______________________________ Рыбалка С.А. Рецензент ___________________________ Шевелев Г.Е.