1. Классы и объекты. (8 ак.ч.) 
	 • Введение в Объектною-ориентированное программирование (ООП) 
 • Класс и экземпляр класса. 
 • Данные экземпляра, методы экземпляра и свойства экземпляра 
 • Создание собственного класса 
 • Инкапсуляция 
 • Атрибуты класса 
 • Чтение и изменение атрибута. 
 • Практикум: Разработка собственных классов. Определение нужных методов и свойств классов. Создание нескольких объектов 
   
 
2. Наследование (4 ак.ч.) 
 • Роль наследования в ООП, понятие иерархии наследования 
 • Принцип утиной типизации 
 • Понятие базового класса и производного класса 
 • Функция isinstance и ее применение. 
 • Создание производного класса 
 • Применение экземпляров базового и производного класса. 
 • Практикум: Расширение готовых классов 
 
 
3. Абстрактные классы и полиморфизм (4 ак.ч.) 
 •Полиморфизм. Принцип DRY и WET 
 • Понятие абстракции 
 • Знакомство с абстрактными классами Python 
 • Подмена методов в производном классе. 
 • Полиморфные классы 
 • Контейнерные типы. 
 • Библиотечные модули collections и collections.abc 
 • Применение контейнерных типов
 • Практикум: Имплементация новых методов 
 
 4. Функциональное программирование. Функции декораторы (6 ак.ч.) 
	 •Функция как объект. 
	 • Функциональное программирование, функции map, filter, reduce. 
	 • Лямбда-функция. 
	 • Понятие декоратора. Полный синтаксис блока try...except 
	 • Создание функций-декораторов. 
	 • Практикум: Использование функций высших порядков. Пример создания декораторов.
 
 5. Понятие исключения. Обработка исключений. Собственные исключения (6 ак.ч.) 
	 • Что такое ошибка или исключение 
	 • Cтек вызовов в Python. Работа с кодами возврата 
	 • Обработка исключений 
	 • Методики LBYL и EAFP.   
	 •  Создание пользовательских типов ошибок Конструкция assert 
	 • Практикум: Создание собственных классов исключений  
 6. Записи и данных. Работа с данными SQLite (4 ак.ч.) 
 • Разработка структуры данных 
 • Сохранение данных. 
 • Список и запись. Записи и таблицы 
 • Чтение и запись Понятие об объектно-реляционном соответствии 
 • Хранение данных пользователей в СУБД Sqlite 
 • Использование СУБД Sqlite для хранения данных графа московского метрополитена 
 • Практикум: Хранение данных пользователей в СУБД Sqlite 
 
 
7. Хранение данных вне программы (4 ак.ч.) 
 • Понятие о структуре данных 
 • Использование структуры для хранения данных 
 • Хранение данных вне Python 
 • Сохранение и восстановление данных. 
 • Библиотечный модуль pickle и shelve 
 • Практикум Сохранение данных графа и использованием модуля pickle 
 
 8. Работа с данными JSON в Python (4 ак.ч.) 
 • Знакомство с форматом JSON. Работа с форматом JSON в Python. 
 • Сериализация и десериализация файлов JSON в Python. 
 • Хранение данных вне Python 
 • Сохранение данных в файл JSON 
 • Практикум: Составление графа московского метрополитена на основе файла JSON