Курс Python-разработчик [2022]
ИТМО (Институт Техники Механики и Оптики СПб)
Python популярен ввиду его применимости в разных видах приложений в таких сферах, как: Искусственный интеллект и Машинное обучение, Мобильная и Web разработка, Data Science и др. Помимо прочего, является бесплатным, имеет открытый исходный код, независим от операционных систем.
Специализация уникальна тем, что проводят ее преподаватели - ведущие IT специалисты, имеющие большой опыт разработки на Python и преподавания в ЦАО ИТ Университета ИТМО. Программа специализации рассчитана на программистов и студентов технических ВУЗов, имеющих опыт программирования на других языках программирования: Pascal, C++ и т.д.) и желающих получить профессию Python - разработчик.
Обучение позволит:
- Узнать основные положения методологий разработки программного обеспечения;
- Получить представление о структурах данных, типизации языка программирования;
- Научиться использовать стандартные алгоритмы для решения различных задач;
- Освоить базовые возможности языка программирования Python , включая принципы ООП;
- Научиться использовать средства ООП для создания приложений на Python ;
- Освоить принципы проектирования, создания и работы с реляционными БД;
- Стать грамотным специалистом в области Python разработки;
- Получить диплом о профессиональной переподготовке с правом ведения профессиональной деятельности в сфере компьютерных технологий.
Часть 1 - Технологии программирования
Модуль 1. Технологии программирования
- Программа как формализованное описание процесса обработки данных.
- Технология программирования как технология разработки надежных программных средств.
- Этапы разработки ПО, итеративный подход к разработке ПО.
- Жизненный цикл ПО.
- Введение в различные методологии разработки ПО (Agile/Scrum/Waterfall/Kanban).
- Система типов языка программирования.
- Общее понятие структуры данных.
- Реализация структур данных.
- Простейшие структуры данных.
- Понятие алгоритма, основные требования, предъявляемые к алгоритмам.
- Способы описания алгоритмов.
- Основные типы алгоритмических моделей. Рекурсия и итерация.
- Оценка эффективности алгоритмов.
- Методы построения алгоритмов.
- Свойства алгоритмов сортировки.
- Простые алгоритмы сортировки.
- Сложные алгоритмы сортировки.
- Алгоритмы поиска данных.
- Процедурное программирование.
- Использование процедур и функций.
- Передача параметров по ссылке и по значению.
- Сущность структурного проектирования. Принцип декомпозиции.
- Методы анализ предметной области.
- Сущность и принципы моделирования.
- Основные средства визуального моделирования.
- Понятие объекта, определение его свойств и взаимодействия с другими объектами.
- Понятие класса, связь объекта и класса.
- Представление объектов и классов при проектировании.
- Базовые понятия объектно-ориентированного программирования.
- Пример реализации класса на языке программирования.
- Основные типы приложений.
- Основы событийного программирования.
- Принципы работы и разработки настольных приложений.
- Базовые понятия web-разработки, основные типы запросов.
Часть 2 - Программирование на Python (базовые возможности)
проводится преподавателями - представителями IT индустрии
Модуль 1. Обзор языка Python. Установка интерпретатора и основные принципы работы с ним.
Часть 3 - Основы разработки БД на СУБД MySQL- Версии и реализации языка Python.
- Основные принципы работы интерпретатора Python.
- Установка интерпретатора и среды разработки используемых на курсе.
- Основные элементы программирования.
- Типы данных и Python.
- Выполнение стандартных операций.
- Реализация ввода-вывода данных.
- Базовые операции со строками.
- Логические выражения.
- Реализация алгоритмов выбора (ветвлений)
- Цикл while.
- Цикл for: циклы со счётчиком, особенности работы с range, работа со строками.
- Вложенные циклы.
- Прерывание циклов.
- Создание и использование функций.
- Передача параметров.
- Параметры по умолчанию и способы вызова функций.
- Локальные и глобальные переменные.
- Способы импортирования кода.
- Создание собственного модуля
- Создание пакета
- Подсистема pip
- Краткий обзор стандартной библиотеки
- Понятие итераторов и итерируемых объектов.
- Использование генераторов.
- Создание списков на основе comprehensions (списковое включение).
- Множества.
- Открытие файла. Режимы работы с данными.
- Работа с каталогами.
- Применение регулярных выражений.
- Применение модуля pickle для сохранения данных.
- Реализация хранения данных в формате JSON.
- Основы работы с модулем pandas. CSV-файлы.
- Принципы построения устойчивых приложений. Обработка ошибок.
- Понятие об исключениях.
- Генерация и перехват исключений.
- Применение стандартных исключений.
- Функция как объект.
- Операция замыкания (closure) и операция каррирования (currying).
- Понятие о декораторах.
Модуль 1. Основные понятия баз данных
Часть 4 - Программирование на Python (расширенные возможности)- Основы реляционных баз данных.
- Таблицы.
- Нормализация.
- Ссылочная целостность
- Проектирование и реализация баз данных
- Виды запросов в реляционных база данных.
- Основные операторы SQL
- Операторы: определения данных (DDL), манипуляции данными (DML), определения доступа к данным (DCL) управления транзакциями (TCL)
Модуль 1. Основные концепции объектно-ориентированного программирования
Часть 5 - Программирование на Python (расширенные возможности)- Понятие объекта и его класса, атрибуты и методы.
- Различие атрибутов класса и экземпляра.
- Указатель на свой объект в методах.
- Специальные методы классов.
- Перегрузка операторов.
- Понятие наследования, рекомендации к применению.
- Множественное наследование.
- Создание декорирующей функции.
- Декораторы класса.
- Практическое применение декораторов.
- Понятие метакласса, примеры применения.
- Динамическое создание классов.
- Практическое применение метаклассов.
- Модель параллельных вычислений. GIL.
- Потоки. Блокировки.
- Очереди.
- Варианты параллелизма.
- Асинхронность.
- Типы приложений с точки зрения взаимодействия с пользователем. Жизненный цикл приложений.
- Основы событийного программирования. Понятие события.
- Реализация обработчика события.
- Состав библиотеки Tkinter. Разработка графического окна.
- Использование библиотеки PyQt.
- Использование библиотеки wxPython.
- Понятие компонента.
- Разработка класса компонента.
- Применение компонента в окне приложения.
- Организация тестирования.
- Применение doctest, unittest, pytest для тестирования приложений.
- Создание приложений с базой данных SQLite.
- Понятие Object Relational Mapping (ORM).
- Применение ORM peewee и SQLAlchemy.
- Введение в MVC.
- Основные шаблоны проектирования и их реализация в приложениях Python.
проводится преподавателями - представителями IT индустрии
Модуль 1. Принципы разработки серверных приложений.
- Структура клиент-серверного приложения.
- Структура микросервисной архитектуры приложения.
- Использование системы контроля версий.
- Сетевой сокет. Модуль socket.
- Создание TCP/IP сервера.
- Создание TCP/IP клиента.
- Реализация чата для обмена сообщениями между клиентом и сервером.
- Принципы и содержание методики Test Driven Development (TDD).
- Интеграционное тестирование.
- Тестовая разработка с помощью PyTest.
- Синхронное и асинхронное выполнение.
- Потоки, циклы событий, корутины и футуры.
- Модуль asyncio.
- Введение в веб-фреймворки для создания web-приложений.
- Использование Flask.
- Обработка запросов в Django.
- Введение в REST и Django REST framework.
- Создание Django API, используя Django Rest Framework.
- Создание API для чтения данных.
- Контейнеризация в Python
- Развертывание проекта с docker и docker-compose.
- Настройка Heroku и развертывание приложения.
http://itcenter.itmo.ru/kurs-python-razrabotchik