Занятие 1
Линейные и разветвленные алгоритмы
- Типы данных в Python, функции преобразования типов.
- Ввод и вывод.
- Многозначное присваивание.
- Дополнительные параметры вывода sep, end.
- Программирование линейных алгоритмов.
- Ветвление if.
- Условия простые и сложные.
- Оператор in в условиях.
- Трехместный оператор ветвления.
Работа в классе №1
Домашнее задание №1
Занятие 2
Разветвленные и циклические алгоритмы
- Программирование разветвленных алгоритмов.
- Цикл for.
- Операторы break и continue, else для for.
- Программирование циклических алгоритмов.
Работа в классе №2
Домашнее задание №2
Занятие 3
Циклические алгоритмы
- Цикл while.
- Операторы break и continue, else для while.
- Генерация случайных чисел.
- Отладка программы.
Работа в классе №3
Домашнее задание №3
Занятие 4
Стандартные функции
- Обзор стандартных функций в Python.
- Импорт стандартных функций из модулей.
- Модули math, time, random и использование функций из них.
Работа в классе №4
Домашнее задание №4
Занятие 5
Структурированные типы данных
- Проверочная работа: линейные, разветвленные и циклические алгоритмы.
- Обзор структурированных типов данных: строки, списки, кортежи, словари.
- Повторение: что знаем о списках и строках, тонкости и нюансы.
Работа в классе №5
Домашнее задание №5
Занятие 6
Одномерные списки
- Повторение работы с одномерными списками.
- Генерация списка в одну строку.
- Методы и функции списков.
Работа в классе №7
Домашнее задание №7
Занятие 7
Двумерные списки в Python
- Создание, перебор и печать двумерных списков.
- Генерация двумерного списка в одну строку.
- Двумерная индексация.
- Вывод списка в виде таблицы.
- Анализ таблицы по индексам.
Работа в классе №7
Домашнее задание №7
Занятие 8
Работа с файлами
- Открытие файла для чтения.
- Считывание данных из файла в двумерный список.
Работа в классе №8
Домашнее задание №8
Занятие 9
Кортежи и словари
- Кортежи. Сравнение со списками.
- Методы и функции кортежей.
- Создание словарей, перебор значений.
- Изменение словарей.
Работа в классе №9
Домашнее задание №9
Занятие 10
Практикум по структурированным типам данных
- Практикум по решению задач с использованием сложных типов данных.
- Проверочная работа: структурированные типы данных.
Работа в классе №10
Домашнее задание №10
Занятие 11
Пользовательские функции в Python
- Целесообразность создания пользовательской функции.
- Понятие подпрограммы.
- Синтаксис пользовательской функции.
- Параметры функции и возвращаемое значение.
- Вызов пользовательской функции.
- Необязательные параметры пользовательской функции.
Работа в классе №11
Домашнее задание №11
Занятие 12
Создание пользовательских функций
- Практикум по программированию задач с разработкой собственных пользовательских функций.
Работа в классе №12
Домашнее задание №12
Занятие 13
Строки и действия с ними
- Понятие «строка».
- Формирование строки из повторяющихся фрагментов.
- Переборные алгоритмы со строками в качестве исходных данных
- Функции и методы строк.
Работа в классе №13
Домашнее задание №13
Занятие 14
Интерфейс программы и качество кода
- Правила хорошего интерфейса.
- Качество кода.
- Стандарт PEP8.
- Форматированный вывод через f-строки.
Работа в классе №14
Домашнее задание №14
Занятие 15
Промежуточная аттестация
Занятие 16-17
Введение в Tkinter
- Получение представления об объектно-ориентированном программировании (ООП).
- Что такое GUI (графический интерфейс пользователя) и зачем он нужен.
- Что такое фреймворк.
- Tkinter: место среди других GUI фреймворков Python.
- План создания GUI-приложения.
- Подключение модуля tkinter.
- Создание главного окна программы.
Работа в классе №16-17
Домашнее задание №16-17
Занятие 18
Обработка событий и организация общения программы и пользователя
- Понятие событий (нажатие кнопки, ввод текста, перемещение мыши и т.д.)
- Привязка обработчиков событий к виджетам bind().
- Работа с обратными вызовами (callback-функциями).
- Передача аргументов в обработчики.
Работа в классе №18
Домашнее задание №18
Занятие 19
Разметка окна программы
- Простое последовательное размещение pack().
- Табличное размещение grid().
- Абсолютное позиционирование по координатам place().
Работа в классе №19
Домашнее задание №19
Занятие 20
Расширенный набор виджетов
- Элементы выбора опций.
- Организация рабочего пространства: выпадающее меню, полосы прокрутки.
- Организация диалога с пользователем: сообщения и диалоги.
Работа в классе №20
Домашнее задание №20
Занятие 21
Организация интерфейса и многооконные приложения
- Использование Frame и LabelFrame для логической группировки виджетов.
- Вкладки: Notebook из модуля ttk.
- Дополнительные окна: Toplevel.
- Диалоговые окна: filedialog, messagebox, colorchooser.
Работа в классе №21
Домашнее задание №21
Занятие 22
Стилизация и темы оформления
- Модуль ttk (themed tkinter): современные виджеты.
- Выбор и применение тем (ttk.Style).
Работа в классе №22
Домашнее задание №22
Занятие 23
Работа с компьютерной и встраиваемой графикой
- Виджет Canvas: рисование фигур.
- Отображение изображений.
- Анимация на Canvas.
Работа в классе №23
Домашнее задание №23
Занятие 24-25
Создание своего проекта в Tkinter
- Обсуждение идей проектов.
- Выбор темы и названия проекта.
- Критерии оценки итогового проекта.
- Зарисовка и продумывание интерфейса проекта.
- Описание алгоритма проекта.
Разработка кода и тестирование своего проекта в Tkinter
- Разработка кода.
- Тестирование проекта.
- Документирование проекта, подготовка к защите проекта.
Занятие 26
Итоговое занятие
- Представление и защита своего проекта.
- Подведение итогов курса, варианты дальнейшего обучения.