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