Модуль 1. Основы программирования и составления алгоритмов
1. Алгоритм – свойства и способы представления.
Типы данных – назначение и роль в программе.
Операнды и операторы – вычисление выражений
2. Модели разработки программ.
Структурное программирование.
Базовые принципы: блочная структура кода – блоки и подпрограммы.
Типовые структуры управления – последовательность, ветвление, цикл
3. Практические примеры составления блок-схем и псевдокода.
Простейшие алгоритмические задачи.
Перевод алгоритма в код.
Подпрограммы (функции) как основные блоки кода.
Типовые задачи на обработку текста
4. Установка интерпретатора Python.
Основные операции и типы данных.
Операторы ветвления и циклы.
Установка и запуск среды разработки.
Типы данных: числа, строки, списки, логический тип, None.
Функции преобразования типов. Простой ввод и простой вывод
5. Ветвления. Оператор if.
Базовая форма цикла while.
Операторы break и continue.
Перебор (for).
6. Понятие массива. Типовые задачи с массивами: доступ к элементу, обход элементов, инициализация элементов
7. Cтроки.
Методы и функции.
Использование срезов.
Кортеж. Основные операции с кортежем. Распаковка кортежа.
Список. Основные операции со списком.
Словарь. Основные операции со словарем.
Множества. Основные операции с множеством
8. Основные алгоритмы поиска и сортировки.
Вычисление сложности алгоритмов. Анализ эффективности работы программы.
9. Простейшие конструкции данных: список, стек, очередь, дерево.
Поиск элемента и сортировка элементов.
Реализация динамического стека
Модуль 2. Расширенные возможности Python
1. Функции.
Именованные и неименованные аргументы функций.
Локальные и глобальные переменные.
Лямбда выражения.
2. Функционалы.
Функциональное программирование.
Функции map, filter.
Генераторы, декораторы.
3. Работа с файлами и каталогами.
Основные операции с путями к файлам.
Импорт пакета. Важнейшие стандартные пакеты.
Подсистема pip. Установка стороннего модуля. Создание собственных модулей.
Чтение данных из файлов и запись данных в файл
4. Классы и объекты.
Введение в Объектно ориентированное программирование (ООП).
Класс и экземпляр класса.
Данные экземпляра, методы экземпляра и свойства экземпляра.
Создание собственного класса. Инкапсуляция. Атрибуты класса. Чтение и изменение атрибута
5. Объектно-ориентированное программирование.
Классы и объекты.
Атрибуты и методы класса.
Инкапсуляция.
Определение операций
6. Полиморфизм.
Утиная типизация.
Проверка типов.
Наследование.
Базовые и производные классы.
Абстрактные методы.
Множественное наследование
7. Понятие об исключении.
Обработка исключений.
Создание исключений.
Стандартные исключения.
Собственные классы исключений
8. Создание свойств.
Классы данных.
Контейнерные классы.
Абстрактные контейнерные классы.
Парсинг XML и JSON
Модуль 3. Практическая реализация программ и задач на языке Python
1. Базы данных. Реляционная модель данных. СУБД MySQL и PostgreSQL. Язык SQL, основные команды. Работа с БД в Python
2. Патетерны проектирования и принципы SOLID
3. Создание собственных REST API. Разработка веб-приложений. Введение в фреймворк Django
4. Основы тестирования приложений. Создание Unit тестов