Введение в программирование на Python
• эволюция и современное значение языка Python
• краткое введение в синтаксис: константы, идентификаторы, ключевые слова
• упражнение: установка интерпретатора и интегрированной среды разработки Основы процедурного программирования
• типы данных
• арифметические и логические операции
• упорядоченные коллекции: строки, списки, кортежи
• управление потоком выполнения программы; ветвление и циклы
• создание и вызов функций, правило LEGB
• упражнение: разработка консольной программы “Телефонный справочник”
• неупорядоченные коллекции: словари и множества
• обработка исключений
• модули и пакеты
Инструментарий разработчика
• документирующие комментарии
• модульные тесты и рефакторинг
• конвенции оформления программного кода, PEP8
• инструменты статического анализа программного кода
• упражнение: рефакторинг программы “Телефонный справочник” с использованием словарей и исключений
Элементы функционального программирования
• функция как объект первого класса
• лямбда¬функции и замыкания
• рекурсивные функции
• декораторы
• упражнение: устранение дублирования кода в программе “Телефонный справочник”
Введение в объектно¬ориентированное программирование
• объектно¬ориентированное программирование
• конструкторы класса и переопределение операций
• наследование и полиморфизм
• отношения между классами, диаграммы классов UML
• упражнение: рефакторинг программы “Телефонный справочник” с использованием классов
Работа с файлами
• текстовые и бинарные файлы
• сериализация данных
• реализация контекст¬менеджера
• упражнение: сериализация и десериализация данных в программе “Телефонный справочник”
Усовершенствованные приемы программирования
• списочные выражения
• протокол итераторов
• протокол дескрипторов
• генераторы и генераторные выражения
• разработка пользовательских коллекций
• метаклассы
Профилирование и оптимизация
• оценка времени работы программы
• оптимизация по времени работы
• классы и слоты
Язык XML
• введение в XML
• использование SAX¬парсера
• упражнение: XML¬сериализация в программе “Телефонный справочник”
Инструментарий поддержки среды выполнения
• установка и управление пакетами
• виртуальная среда проекта
Интерфейсы пользователя
• разработка пользовательских интерфейсов
• паттерн MVC
• связность и сцепленность
• упражнение: декомпозиция программы “Телефонный справочник” в соответствии с паттерном MVC
Desktop¬приложения
• разработка оконного интерфейса
• процессы и потоки
• введение в библиотеку tkinter
• упражнение: разработка графического пользовательского интерфейса для программы “Телефонный справочник”
Программирование сетевых приложений
• взаимодействие через сокеты
• синхронные и асинхронные сокеты
• библиотека gevent
• распределенные вычисления на основе фреймворка celery
Разработка web¬интерфейсов
• основы протокола HTTP
• фреймворк Flask для создания web¬приложений
• введение в HTML5, CSS3, Twitter Bootstrap
• шаблонизатор Jinja2
• виды HTTP¬запросов и HTML¬формы
• система управления базами данных MongoDB
• упражнение: разработка web¬интерфейса для программы “Телефонный справочник”