Опис курсу:

Цей курс призначений для програмістів, які хочуть освоїти техніку програмування на мові Python. Курс також буде корисний вже кваліфікованим користувачам. Курс побудований за принципом 50% лекційного матеріалу – 50% лабораторні роботи.

Після вивчення курсу Ви зможете:

  • Розробляти програми на мові Python

Програма курсу:

  • Модуль 1. Швидке введення в процедурне програмування
    • Створення і запуск програм на мові Python
    • Правила оформлення коду PEP8
    • Типи даних, посилання на об'єкти
    • Вбудовані контейнери: рядки, списки, кортежі, словники, безлічі
    • Логічні операції, цикли
    • Обробка виключень
    • Логічні операції, цикли
  • Модуль 2. Функції в Python
    • Визначення функцій
    • Рядки документації і док-тести
    • Параметри за замовчуванням і функції з будь-якою кількістю параметрів
    • Рекурсивні функції
    • Порядок пошуку імен, правило LEGB
    • Елементи функціонального програмування: map, filter, reduce, каррінг і
    •  Композиція
    • Замикання
    • Декоратори
    • Приклади і вправам
  • Модуль 3. Використання файлів
    • Відкриття, читання і запис даних в файл
    • Файли з послідовним і довільним доступом
    • Контекст-менеджери
    • Серіалізація засобами стандартної бібліотеки: pickle, json
    • Функції для роботи з файловою системою
    • Тимчасові файли
    • Файли у форматі csv
    • Приклади і вправи
  • Модуль 4. Об'єктно-орієнтоване програмування
    • Визначення класу і створення екземпляра
    • Поля і методи класу
    • Magic-методи, конструктори
    • Множинне успадкування і MRO
    • Інкапсуляція і поліморфізм
    • Статичні методи і методи класу
    • Приклади і вправи
  • Модуль 5. Управління поведінкою примірників класу
    • Визначення операцій порівняння і хеширування
    • Перевизначення арифметичних операцій
    • Створення копії примірника класу
    • Зміна порядку серіалізації/десеріалізації
    • Створення контекст-менеджерів
    • Функтори і декоратори з використанням класів
    • Приклади і вправи
  • Модуль 6.Управлення створенням класів
    • Управління доступом до атрибутів класу
    • Метод-конструктор __new __ ()
    • Метакласи
    • Абстрактні базові класи
    • Використання властивостей для управління доступом до атрибутів
    • Декоратори класів
    • Приклади і вправи
  • Модуль 7. Контейнери, призначені для користувача
    • Визначення контейнера, призначеного для користувача, шляхом успадкування
    • Визначення контейнера, призначеного для користувача, шляхом агрегації
    • Визначення методів доступу до елементів контейнера
    • Протоколи ітераторів
    • Ітератори на базі генераторів
    • Генератори і ледачі обчислення
    • Співпрограми
    • Приклади і вправи
  • Модуль 8. Прийоми об'єктно-орієнтованого програмування
    • Введення в об'єктно-орієнтований аналіз Мова UML
    • Принципи SOLID
    • Паттерни об’єктно-орієнтованого проектування
    • Паттерн Одинак
    • Паттерни Фабричний метод і Абстрактна фабрика
    • Паттерн Спостерігач
    • Приклади використання паттернів
    • Вправи
  • Модуль 9. Модулі та пакети
    • Визначення і способи запуску модуля
    • Можливості підключення і зчепленість
    • Імпорт модулів
    • Видимість змінних в модулі
    • Визначення та імпортування пакета
    • Відносні і абсолютні обсяги імпорту
    • Менеджер пакетів pip і віртуальні середовища virtualenv
    • Приклади і вправи
  • Модуль 10. Паралельне програмування
    • Створення потоків
    • Синхронізація потоків
    • Черги завдань
    • Обмеження GIL
    • Використання процесів
    • Передача даних між процесами
    • Пули процесів
    • Приклади і вправи
  • Модуль 11 Програмування мережевої взаємодії
    • Запит віддаленого ресурсу по протоколу HTTP
    • Парсинг HTML-файлів
    • Найпростіший луна-сервер на сокетах
    • Багатопотоковий сервер на сокетах
    • Асинхронний сервер на сокетах
    • Приклади і вправи
  • Модуль 12. Засоби стандартної бібліотеки
    • Представлення числових даних і точність арифметичних операцій
    • Дати і час
    • Колекції в стандартній бібліотеці: чергу, іменований кортеж, упорядкований
    • Словник
    • Модульні тести і використання мок-об'єктів
    • Оцінка продуктивності
    • Приклади і вправи
  • Модуль 13. Реляційні бази даних
    • Основи реляційних баз даних
    • Стандарт PEP249
    • Приклад роботи з СУБД Sqlite
    • Приклад роботи з СУБД MySQL
    • ORM системи на прикладі SQLAlchemy
    • Приклади і вправи
  • Модуль 14. NoSQL бази даних
    • Теорема CAP
    • Основні типи NoSQL баз даних
    • Взаємодія з СУБД Redis
    • Взаємодія з СУБД MongoDB
    • Запис і читання даних в форматі XML DOM, StAX і SAX-парсери
    • Приклади і вправи
  • Модуль 15. Розробка графічних інтерфейсів користувача
    • Пакет Tkinter
    • Вікна й елементи керування
    • Події
    • Таймери
    • Діалогові вікна
    • Приклади і вправи
  • Модуль 16. Розробка web-додатків
    • Класифікація web-фреймворків
    • Введення в web-фреймворк Flask
    • Мова шаблонів Jinja2
    • Обробка форм
    • Використання сесії
    • Приклади і вправи
  • Модуль 17. Розробка асинхронних web-додатків
    • Бібліотека Twisted
    • Приклад розробки web-додатки на Twisted
    • Тестування програми з використанням пакета selenium
    • Навантажувальне тестування web-додатків
    • Приклади і вправи
  • Модуль 18. Розробка розподілених і високопродуктивних додатків
    • Підключення модулів, написаних на мовах C / C ++
    • Бібліотеки numpy, pandas
    • Розподілені додатки на основі MPI
    • Розподілений додатки на чергах повідомлень Celery
    • Відповіді на запитання слухачів

Мінімальні вимоги:

  • Власний ПК

* Вказані знижки не сумуються з іншими діючими акціями та спеціальними пропозиціями. Якщо у Вас виникли питання, звертайтеся за консультацією до наших менеджерів!