Цель этого курса — развить базовые навыки прикладного программирования, сформировать представление о возможностях для развития в дальнейшем и методах решения реальных задач. В рамках курса мы займемся небольшими проектными задачами, для каждой из которых участники реализуют рабочие прототипы на языке Python. Это позволит, с одной стороны, получить много практического опыта и разносторонних навыков, а с другой стороны, даст впоследствии развить любой из них до большого актуального проекта.
Введение
- Парадигмы программирования.
- Языки программирования.
Основы. Python
- Основы языка Python. Основные типы данных. Хэширования.
- Прототипирование.
- Работа из командной строки.
- Пакеты в ОС.
- Интерпретатор Python, iPython-notebook, Python IDLE.
- Блоки структурного программирования в Python. Условия, циклы, последовательное выполнение.
- Написание функций.
- Работа с файлами.
- Основы ООП. Классы, объекты.
- Модули.
- Регулярные выражения.
- Репозиторий модулей PyPi.
- Обработка ошибок. Тестирование. PyLint, Prospector.
- Кодировки, Unicode.
- Декораторы.
- Многопоточный Python. GIL.
- Базы данных.
Работа с API
- Как работает интернет? Модель OSI. Протоколы.
- oAuth, получаем ключи своими руками.
- Текстовый формат обмена данными JSON.
- Работа с vk.
- Работа с ботами. pyTelegramBotAPI.
- Парсинг. lxml.
Практика
- Обучение нейронной сети (Style Transformer) на фотографиях.
- Изменение голоса, ускорение речи.
- Бот Telegram.
- Телефонный робот. SpeechKit.
- Анализ соцсетей и визуализация данных.
- Веб-сервисы. Работа с Алисой (Яндекс.Диалоги).
- CMS для своего сайта.
- Бот для онлайн игры, соревнования.
- CTF.