Технологии программирования на Python

Курс предназначен для школьников, которые хотят углубиться в изучение языка Python и познакомиться с различными технологиями и инструментами.

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

  • Уровень курса

    Продвинутый

  • Профиль

    Программирование на Python

  • Класс

    9-11 классы

  • Необходимый входной уровень

    Уверенное знание основ Python

  • Примеры материалов

  • Формат обучения

    Очный / дистанционный

  • Количество занятий

    26 занятий по 1 разу в неделю в течение 2 астрономических часов

  • Стоимость обучения

    32 000 рублей за весь курс

Примерная программа курса

Курсивом выделены темы для самостоятельного или дополнительного изучения.

Курс предполагает работу с проектом по созданию чат-бота.


В зависимости от уровня группы, некоторые темы могут быть пропущены для более

детального изучения базовых тем у групп начального уровня.

Раздел 1. Повторение

Экспресс-курс по основам Python

На данном занятии будут затронуты следующие темы:

  • Синтаксис языка;

  • Арифметические операции;

  • Условный оператор;

  • Циклы;

  • Списки и словари;

  • Функции, встроенные функции;

  • Импорт модулей;

  • Установка пакетов.

После изучения данных тем учащийся:

  • Вспомнит основы программирования на Python;

  • Сможет писать небольшие консольные приложения, не требующие сложной архитектуры.

Стандарты языка Python. PEP8

На данном занятии будут затронуты следующие темы:

  • Понятие Python Enhancement Proposal и их роль в экосистеме Python;

  • Основные PEP и их назначение;

  • Оформление кода в соответствии с PEP8.

После изучения данных тем учащийся:

  • Узнает различные стандарты языка Python;

  • Научится оформлять код в соответствии со стандартами.

Системы контроля версий

На данном занятии будут затронуты следующие темы:

  • Необходимость СКВ;

  • Типы СКВ;

  • Обзор популярных СКВ;

  • Основные команды Git;

  • Работа с Git в PyCharm;

  • Управление зависимостями и файл .gitignore;

  • Работа с ветками: создание и слияние;

  • Обзор популярных площадок для хранения репозиториев Git;

  • Регистрация на GitHub и загрузка проекта.

После изучения данных тем учащийся:

  • Научится использовать СКВ Git для сохранения истории разработки кода;

  • Сможет работать над одним проектом в команде;

  • Сможет использовать PyCharm для работы с Git.

Раздел 2. Объектно-ориентированное программирование

Основы ООП

На данных занятиях будут затронуты следующие темы:

  • Различные парадигмы программирования;

  • Основные понятия ООП: класс и объект;

  • Объявление классов в Python: ключевое слово class, поля и методы, ключевое слово self;

  • Создание экземпляров класса;

  • Конструкторы и деструкторы;

  • Обзор магических методов Python;

    • Имитация арифметических действий;

    • Строковая интерпретация объектов;

    • Операторы сравнения;

    • Работа с классом как с коллекцией;

    • Геттеры и сеттеры;

  • Примеры использования часто встречающихся магических методов;

  • Статические методы и методы классов.

После изучения данных тем учащийся:

  • Сможет рассказать об отличиях класса от объекта;

  • Сможет конструировать классы по описанию объектов различных областей жизни;

  • Научится реализовывать различное поведение классов в зависимости от контекста использования.

По окончании изучения блока будет выдан проект.

Принципы ООП

На данном занятии будут затронуты следующие темы:

  • Инкапсуляция;

  • Полиморфизм;

  • Наследование;

  • Ассоциация: агрегация и композиция;

  • Принципы SOLID:

    • Принцип единственной ответственности;

    • Принцип открытости-закрытости;

    • Принцип подстановки Барбары Лисков;

    • Принцип разделения интерфейсов;

    • Принцип инверсии зависимостей.

После изучения данных тем учащийся:

  • Сможет объяснить основные принципы проектирования классов на примере Python;

  • Научится проектировать классы в соответствии с принципами SOLID;

  • Научится проектировать сложные классы и их иерархии.

Контрольная работа 1

Раздел 3. Продвинутые механизмы Python

Модель памяти в Python

На данном занятии будут затронуты следующие темы:

  • Изменяемые и неизменяемые типы данных;

  • Механизм работы встроенных структур данных (списков, строк, множеств);

  • Правильное создание многомерных структур данных;

  • Поверхностное и глубокое копирование многомерных структур данных.

После изучения данных тем учащийся:

  • Сможет объяснить механизм хранения тех или иных типов данных в языке программирования Python;

  • Сможет объяснить различия между поверхностным и глубоким копированием;

  • Сможет писать приложения, требующие инициализации сложных структур данных.

Продвинутые функции. Декораторы

На данном занятии будут затронуты следующие темы:

  • Позиционные и именованные аргументы;

  • Аннотация функций;

  • Модуль typing для аннотации сложных структур данных;

  • Аннотация переменных;

  • Анонимные функции (лямбда-функции);

  • Определение декоратора;

  • Создание собственного декоратора;

  • Несколько декораторов для одной функции;

  • Декораторы общего назначения.

После изучения данных тем учащийся:

  • Сможет отличить позиционные аргументы от именованных и передавать переменное количество аргументов;

  • Научится задавать передаваемые в функции типы данных;

  • Сможет задавать тип используемых переменных;

  • Сможет использовать анонимные функции в своих программах;

  • Научится изменять поведение функций без их непосредственного изменения.

Итераторы и генераторы

На данном занятии будут затронуты следующие темы:

  • Понятие итератора и их использование;

  • Имитация цикла for с помощью ручного итерирования;

  • Добавление возможности итерироваться по объекту собственного класса;

  • Упрощение работы с итераторами при помощи генераторов;

  • Ключевое слово yield;

  • Преждевременный выход из генератора.

После изучения данных тем учащийся:

  • Сможет объяснить работу цикла for;

  • Научится создавать классы и функции для их последующего использования в циклах.

Регулярные выражения

На данном занятии будут затронуты следующие темы:

  • Понятие регулярных выражений и область их применимости;

  • Поиск по подстроке, наборам и диапазонам символов;

  • Квантификаторы и режимы их работы;

  • Проверки строки на различные условия;

  • Замена текста с использованием регулярных выражений;

  • Скобочные группы и особенности их использования.

После изучения данных тем учащийся:

  • Сможет писать сложные шаблоны поиска и замены текста.

Контрольная работа 2

Доработка демонстрационного проекта

Защита проектов и подведение итогов