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