Опис курсу:

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

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

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

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

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

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

  • Власний ПК

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