Данный курс посвящен углублению знаний, полученных на предыдущем этапе в плане практики решения поставленной задачи, начиная от анализа и формализации условия, до набора и отладки кода. Расширяются знания о возможностях языка и подходах к построению программы.
Особое внимание уделяется процедурному программированию, при котором код структурируется с помощью пользовательских функций, каждая из которых решает конкретную подзадачу в рамках общей цели. Углубляется работа со структурированными типами данных: списками, кортежами, словарями, строками. Изучается работа со множествами, очередями и классом Counter из модуля collection.
Вторая половина года посвящена углубленному изучению функционального подхода в построении программного обеспечения и использованию сложных структур данных. Рассматриваются встроенные функции, модули и их подключение, работа с аргументами различных типов. Отдельное внимание уделяется программированию рекуррентных выражений с использованием рекурсивных функций, что в дальнейшем пригодится при сдаче ЕГЭ по информатике. В курс входит подробное изучение анонимных функций (lambda) и функций высшего порядка (map, filter, zip).
Также изучаются исключения и способы их обработки в контексте функционального программирования. Осваивается работа с текстовыми файлами в Python: чтение и запись данных. В завершающей части курса углубляется работа со сложными структурами данных. Изучается библиотека NumPy для работы с многомерными массивами и библиотека Pandas для анализа данных. Вводится понятие объектно-ориентированного программирования: методы класса, атрибуты, а также применение классов в связке с функциональным подходом. Рассматриваются ключевые принципы ООП — инкапсуляция и полиморфизм.