Аннотация курса - Программирование на языке Python (L1, L2)


На данный момент времени язык программирования Python является одной из самых перспективных платформ для разработки современного программного обеспечения. Предельно ясные и гибкие синтаксические конструкции, легкость подключения и использования разнообразных библиотек, низкий порог вхождения в процесс разработки, делают этот язык все более популярным у разработчиков и все более востребованным на рынке труда.

Данный курс позволяет слушателям получить глубокие знания и хорошие практические навыки для дальнейшей работы в качестве программиста – разработчика широкого спектра приложений, от небольших специализированных консольных утилит до крупных веб-порталов со сложной серверной логикой и взаимодействием с базами данных.

По окончанию данного курса уровень подготовки будет примерно соответствовать позиции middle – разработчика или даже выше, в зависимости от уровня начальной подготовки, базовых программистских навыков и личной работоспособности. Знания, полученные в рамках данного курса позволят вам в дальнейшем разрабатывать IT – проекты любого уровня сложности. Программа предназначена как для тех, кто только делает первые шаги в программировании, так и для разработчиков с большим опытом на других языках программирования, желающим перейти на другую платформу разработки или повысить свою квалификацию. В качестве минимального начального уровня подготовки желательно иметь представление об алгоритмах, типах переменных и обобщенном синтаксисе любого языка программирования (базовый курс информатики и математики 11 класса) , уметь работать с командной строкой Windows или Linux, уметь искать в интернете необходимое ПО, скачивать и инсталлировать программное обеспечение, иметь общие представления о реляционных базах данных, иметь базовые знания по синтаксису HTML.

Программирование на языке Python. Начальный уровень (курс L1)

Тема 1: Введение. Общие понятия языка Python. (2 ак.ч)

Установка среды программирования на компьютер. Интерпретаторы Python. Особенности установки среды программирования под Windows и Linux. Интерактивный режим работы. Общая структура программы. Особенности работы в IDLE. Вывод результатов работы в консоль. Документирование программы.

Тема 2: Система контроля версий Mercurial. (2 ак.ч)

Общие понятия о системах контроля версий, обзор актуальных СКВ, Git, Mercurial

Тема 3: Условные операторы, функции и циклы. (2 ак.ч)

"Утиная" типизация. Константы. Переменные. Операторы. Условные конструкции и циклы. Функции. Замыкания. Особенности использования функций, возвращающих другие функции. Лямбда – функции. Карирование.

Тема 4: Сложные типы данных. (2 ак.ч)

Работа со строками, списками, кортежами. Использование словарей и диапазонов. Работа с множествами. Причина существования в языке Python такого большого количества перечислимых типов.

Тема 5: Работа с файлами и каталогами.(2 ак.ч)

Работа с файлами. Работа с датой и временем.

Тема 6: Объектно ориентированное программирование.(2 ак.ч)

Инкапсуляция. Наследование. Полиморфизм. Статические элементы класса. Декораторы. Особенности объектно - ориентировенного программирования в Python.

Тема 7: Обработка исключений. (2 ак.ч)

Типы ошибок в программах. Иерархия классов исключений в Python. Пояснения по классификации. Инструкция try…except. Инструкция with…as. Пользовательские исключения. Инструкция assert. Механизм предупреждений.

Тема 8: Тестирование программного кода.(2 ак.ч)

Общие понятия, затраты на тестирование и выгоды от его применения, библиотека Doctest, фреймворк Unittest, Nose, PyTest. Системы анализа качества кода. Pylint и pyflakes.

Тема 9: Управление пакетами. Сериализация. (2 ак.ч)

Определение. Стандартные атрибуты модуля. Пакеты. Кеширование модулей. Блокировка. Абсолютный и относительный импорт. Главный модуль. Загрузка модулей. Сериализация.

Тема 10: Работа с базами данных.(2 ак.ч)

Базы данных SQLite. Возможности Python по доступу к базам данных SQLite. Механизм управления транзакциями. Назначение объекта курсора. Обработка результатов запросов. Преобразование формата выдачи. Агрегатные функции.

Тема 11: Графические интерфейсы Python. Библиотека Tkinter(2 ак.ч)

Использование графических интерфейсов. Библиотека Tkinter.



Программирование на языке Python. Продвинутый уровень (курс L2)

Тема 12: Процессы, потоки и многозадачность. (2 ак.ч)

Глобальная блокировка интерпретатора (GIL). Отличие процесса от потока. Создание потоков. Завершение потока. Присоединение потока. Синхронизация. Блокировки. Условные переменные. Альтернатива оператору with. Высокоуровневые объекты. Мониторы. Пулы потоков. Активные объекты.

Тема 13: Паттерны проектирования 1 часть. (2 ак.ч)

Общие понятие. Описание паттернов: Фабрика, Построитель, Прототип, Одиночка, Адаптер, MVC.

Тема 14: Паттерны проектирования 2 часть.(2 ак.ч)

Паттерны: Мост, Компоновщик, Декоратор, Фасад, Приспособленец, Заместитель.

Тема 15: Паттерны проектирования 3 часть. (2 ак.ч)

Паттерны: Цепочка ответственности, Команда, Интерпретатор, Итератор, Посредник.

Тема 16: Паттерны проектирования 4 часть. (2 ак.ч)

Паттерны: Хранитель, Наблюдатель, Состояние, Шаблонный метод, Посетитель, Стратегия.

Тема 17: Метаклассы, специальные свойства и методы. (2 ак.ч)

Метаклассы. "Магические" методы.

Тема 18: Библиотека PyQt. Окна. Формы. (2 ак.ч)

Основные функции библиотеки PyQt. Построение оконных приложений.

Тема 19: Библиотека PyQt. Обработка событий. Диалоговые окна. (2 ак.ч)

SDI и MDI – интерфейсы. Обработка событий. Диалоговые окна.

Тема 20: Фреймворк PonyORM. (2 ак.ч)

ORM для работы с базами данных, их достоинства и недостатки. Особенности реализации PonyORM. Выполнение запросов.

Тема 21: Взаимодействие с Internet и сетями. (2 ак.ч)

Работа с модулем socket. Клиент – серверное приложение. Работа с модулем http. Простой http - сервер. Модуль URLLIB. Доступ к FTP. Парсинг Internet – адресов. Доступ по SSH.

Тема 22: Веб-фреймворк Flask. (2 ак.ч)

Общие сведения. Архитектура Flask. Инсталляция и использование. Роутинг. Блюпринты. Шаблонизатор Jinja2. Virtualnv.

Тема 23: Фреймворк Django, конфигурация и установка. (2 ак.ч)

Общее описание фреймворка Django. Установка и конфигурация. Архитектура программы на Django, диспетчер адресов. Запуск приложения на боевом Web – сервере.

Тема 24: Фреймворк Django, работа с базой данных. (2 ак.ч)

Модель данных. Реляционные отношения и миграции.

Тема 25: Фреймворк Django, шаблонизатор. (2 ак.ч)

Шаблоны в Django, механизм наследования. Подключение собственных файлов .css и .js. Механизм рендеринга шаблонов, формы и их обработчики.





За время моей преподавательской карьеры
я научил программировать уже сотни человек