Объектно-ориентированное программирование
Короткий вводный курс в ООП: основные понятия, механизмы и паттерны проектирования.
Регистрация на занятии: https://forms.gle/QfPoc2hFCJEcFwSH7
Вопросы к экзамену
- История развития ООП как парадигмы программирования.
- Процедурный и объектно-ориентированный стили программирования.
- Базовые принципы объектно-ориентированного программирования.
- Области видимости свойств и методов в классах и объектах.
- Создание и удаление объектов. Конструкторы и деструкторы объектов.
- Инкапсуляция и наследование в ООП.
- Принцип полиморфизма в ООП.
- Абстрактные классы и интерфейсы
- Константы класса. Статические свойства и методы.
- Типы отношений между объектами: наследование, композиция, агрегация.
- UML-диаграммы классов.
- Принципы SOLID в ООП.
- Паттерны проектирования в ООП: назначение и основные принципы.
- Паттерн проектировани Simple Factory.
- Паттерн проектирования Strategy.
- Паттерн проектирования Decorator.
- Паттерн проектирования Singleton.
- Паттерн проектирования Builder.
- Особенности ООП в JavaScript. Объектные литералы. Варианты создания объектов.
- Создание объектов в JavaScript с помощью фабричной функции. Паттерн "Модуль".
- Прототипы объектов в JavaScript. Создание объектов с помощью механизма прототипов.
- Создание объектов в JavaScript с помощью оператора new.
- Синтаксис классов в JavaScript. Создание объектов.
- Синтаксис классов в JavaScript. Геттеры и сеттеры, приватные свойства, наследование, перекрытие методов.
- Компонентный подход к программированию, бинарные объекты. Языки сценариев для работы с компонентами.
- Внутренние объекты в операционной системе Windows. COM-объекты, WMI.
- Доступ к внешним объектам из сценариев Windows Script Host.
- Возможности и особенности командной оболочки PowerShell. Связь PowerShell с .NET Framework.
- Работа с объектами с помощью конвейеров в PowerShell.
Литература к курсу
- Зандстра М. "РНР: объекты, шаблоны и методики программирования", 4-е изд. ООО "И.Д. Вильяме", 2015. - 576 с.
- Фримен Э., Фримен Э., Сьерра К., Бейтс Б. "Паттерны проектирования" — СПб.: Питер, 2011. — 656 с.
- Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. "Приемы объектно-ориентированного проектирования. Паттерны проектирования". – СПб.: Питер, 2016. – 368 с.
- Вайсфельд М. "Объектно-ориентированное мышление". – СПб.: Питер, 2014. – 304 с.
- Мартин Р. "Чистый код: создание, анализ и рефакторинг. Библиотека программиста". – СПб.: Питер, 2013. – 464 с.
- Блинов И.Н., Романчик В.С. "Java. Методы программирования : уч.-мет. пособие". – Минск : издательство «Четыре четверти», 2013. — 896 с.
Презентации и примеры к лекциям
Примеры: https://github.com/andpop/oop-examples
Схема сдачи лабораторных работ через Pull Request.
- Объектно-ориентированное программирование. Предыстория.
- Про инструменты программиста.
- Базовые понятия ООП. Классы, объекты, инкапсуляция, наследование, полиморфизм. Статические свойства и методы, интерфейсы, трейты, пространства имен.
- Разновидности объектов. Отношения между классами и объектами. Наследование, композиция, агрегация. Диаграммы UML.
- Экватор курса.
- Итераторы и генераторы.
- Принципы SOLID построения кода в ООП.
- Паттерны (шаблоны) проектирования.
- Компонентный подход к программированию. Объекты-компоненты в операционной системе Windows.
- Работа с объектами с помощью Microsoft PowerShell.
Видео лекций
Лабораторные работы
Тематика заданий- ООП на классах. Основные понятия классического подхода к ООП на примере языка PHP.
- ООП на прототипах. Особенности реализации ООП в языке JavaScript.
- Конвейерная обработка объектов. На примере языка программирования PowerShell.
- Для каждого студента 402 группы создан свой репозиторий в https://github.com/andpop-mrsu. В этих репозиториях преподаватель размещает задания для лабораторных работ (файлы task01.md, task02.md, ...), а студент - проекты для решения этих заданий (в соответствующих папках Task01, Task02, Task03, ...).
- Прав на запись в эти репозитории у студентов нет, ваши файлы должны попадать туда из личных репозиториев через механизм Pull Requests.
- Задание будет считаться принятым после закрытия соответствующего Pull Request в https://github.com/andpop-mrsu.
Статистика группы 302
- Полное выполнение задания к контрольному сроку - 100% баллов за это задание.
- Задержка с выполнением задания на срок до 14 дней - 80% баллов за это задание.
- Задержка с выполнением задания на срок более 14 дней - 50% баллов за это задание.