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