Направление для начинающих

Цель этого курса — развить базовые навыки прикладного программирования, сформировать представление о возможностях для развития в дальнейшем и методах решения реальных задач. В рамках курса мы займемся небольшими проектными задачами, для каждой из которых участники реализуют рабочие прототипы на языке 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.