Phyton WELL
Первая ступень.
Алфавит языка. Правила синтаксиса и семантики. Лексема, идентификатор, оператор. Структура программы.
Числовые типы данных: целые, вещественные. Правила записи числовых, строковых констант. Определение типа константы по ее записи.
Переменная. Оператор присваивания. Тип переменной. Правило определения типа переменной. Консольный ввод, вывод значений переменных.
Целый тип данных: множество значений и множество операций. Деление нацело. Остаток от деления. Приоритеты арифметических операций.
Вещественный тип данных: множество значений и множество операций. Приоритеты арифметических операций. Особенности представления вещественных чисел в памяти компьютера.
Правила записи арифметических выражений. Правила определения типа результата.
Функции преобразования типов.
Стандартные математические функции.
Случайные и псевдослучайные числа. Генераторы случайных чисел.
Логический тип данных: множество значений и множество операций. Логические операции И, ИЛИ, НЕ. Порядок выполнения операций.
Операции сравнения. Тип результата операции сравнения. Правила построения логического выражения. Простые, сложные логические выражения.
Условный оператор. Полная и неполная формы условного оператора. Вложенные условные операторы.
Цикл с параметром. Итератор. Начальное, конечное значение, шаг изменения параметра цикла.
Цикл с предусловием. Правило завершения цикла.
Подпрограммы: процедуры и функции. Подпрограммы с параметрами. Область видимости переменной: глобальная, локальная. Логические функции. Рекурсия. Рекурсивные процедуры и функции. Фракталы.
Лямбда функции.
Этапы создания программ. Методы проектирования программ «сверху вниз» и «снизу вверх». Рефакторинг. Интерфейс и реализация.
Символьный тип данных: множество значений и множество операций. ASCII код. Операции, функции для работы с символами.
Строковый тип данных: множество значений и множество операций. Представление строк в памяти компьютера. Сравнение строк. Операции со строками. Обращение к символам. Перебор всех символов. Срезы. Удаление и вставка. Встроенные методы. Поиск в символьных строках. Замена символов. Преобразования «строка — число». Символьные строки в функциях и процедурах. Функции преобразования типов.
Списки как структурный тип данных . Представление списка в памяти компьютера. Создание списка. Обращение к элементу списка. Перебор элементов списка. Генераторы. Вывод списка. Ввод списка с клавиатуры. Заполнение списка случайными числами.
Алгоритмы обработки списка. Сумма, произведение элементов списка. Подсчёт элементов списка, удовлетворяющих условию. Особенности копирования списков в Python. Стандартные функции.
Поиск в списке. Линейный поиск. Поиск максимального, минимального элемента в массиве. Элемент, удовлетворяющий условию. Использование списков в прикладных задачах. Двоичный поиск. Стандартные функции.
Сортировка списка. Стандартные функции. Методы сортировки: пузырек (сортировка обменами), метод выбора, сортировка слиянием, быстрая сортировка.
Вложенные списки. Матрица. Создание и заполнение матриц. Вывод матрицы на экран. Перебор элементов матрицы. Квадратные матрицы.
Множество как структурный тип данных: множество значений и множество операций. Представление множества в памяти компьютера. Операции работы с множествами. Стандартные функции.Сравнение со списками. Преобразование типов данных.
Словарь как структурный тип данных: множество значений и множество операций. Представление словаря в памяти компьютера. Операции работы со словарем. Стандартные функции. Алфавитно-частотный словарь. Сравнение со списками, множествами. Преобразование типов данных.
Файловый тип данных. Типы файлов. Чтение данных. Запись данных. Обработка данных из файла.
Стек как абстрактный тип данных. Использование списка для организации стека. Использование стека для вычисления арифметических выражений. Системный стек.
Очередь как абстрактный тип данных. Использование списка для организации очереди.
Дек как абстрактный тип данных. Использование списка для организации дека.
Дерево как абстрактный тип данных. Организация хранения дерева. Деревья поиска. Обход дерева. Использование связанных структур. Вычисление арифметических выражений.
Граф как абстрактный тип данных. Организация хранения графа. Жадные алгоритмы. Использование списков смежности.
Phyton ADVANCED
Вторая ступень.
Объектный подход в программировании(ООП). Три основных принципа ООП: инкапсуляция, наследование и полиморфизм.
Объектно-ориентированный анализ. Абстракция. Объект. Свойства объекта. Класс объектов. Метод класса. Взаимодействие объектов. Диаграмма взаимодействия объектов.
Объявление класса объектов в программе. Поля класса. Конструктор класса. Конструктор класса с параметрами. Деструктор класса. Данныекласса. Методы класса.
Скрытие внутреннего устройства. Инкапсуляция. Скрытие полей. Доступ к полям через методы. Свойства класса объектов.
Иерархия классов. Наследование. Базовый класс. Абстрактный класс. Абстрактный метод. Доступ к полям. Защищенное поле. Полиморфизм.
Событийно-ориентированное программирование. Событие. Сообщение. Обработчик события. Очередь сообщений. Цикл обработки сообщений.
Графический интерфейс приложения. Компоненты(виджеты).
Графический интерфейс приложения на основе библиотеки
Tkinter.
Подключение библиотеки
Tkinter. Окно приложения. Создание окна приложения.
Всплывающее окно с сообщением.
Показ сообщений о предупреждениях и ошибках.
Диалоговое окно с выбором вариантов.
Компоненты (виджеты). Общие принципы создания, свойства.
Позиционирование. Pack. Place. Grid.Панель на основе компонента
TPanel, наследника класса Frame.
Текст на основе класса
Label.
Кнопка на основе класса Button.Текстовое поле для ввода на основе класса
Entry.
Текстовое поле со списком для ввода на основе класса
Combobox.
Флажок на основе класса
Checkbutton.
Переключатель на основе класса
RadioButton.
Многострочное текстовое поле на основе класса
Text.
Текстовая область с полосой прокрутки на основе класса
ScrollText.
Элемент выбора значения на основе класса
SpinBox.
Прогресс-бар на основе класса
Progressbar.
Ползунок со шкалой на основе класса
Scale.
Диалог загрузки файла на основе класса
Filedialog.
Меню на основе класса
Menu.
Панель вкладок на основе класса
Noterbook.
Добавление виджетов на вкладку.Холст на основе класса
Canvas.
Отображение на холсте векторных графических объектов: линий, дуг,
прямоугольников, полигонов, овалов и текста.
Отображение на холсте растровых графических объектов: графических файлов в формате GIF. Поле для рисунка на основе компонента
TImage, наследника класса
Canvas.
Phyton WAW
Третья ступень.
Библиотека
matplotlib: большой набор инструментов для двумерной графики. Инструменты модуля
matplotlib.pyplot как стандартный способ работы с библиотекой
matplotlib.
Двумерные графики.
Гистограммы.
Диаграммы рассеяния.
Контурные диаграммы.
Средства настройки свойств линий и маркеров.
Средства настройки координатных осей: подписи, размер шрифта, координатная сетка, произвольные метки др.
Инструменты для расположения нескольких координатных осей в одном окне.
Визуализация графиков функций, заданных в декартовых координатах: парабола, гипербола, синус, косинус, тангенс, модуль и др.
Визуализация кривых, заданных параметрически в декартовых координатах: окружность, эллипс , спираль Архимеда, Астроида, Полярная роза, Гипоциклоида, Эпициклоида и др.
Визуализация кривых, заданных в полярных координатах: окружность, эллипс, спираль Архимеда, Астроида, Полярная роза Гипоциклоида, Эпициклоида и др.
Визуализация фрактальных изображений: папоротник Барнсли, Треугольник Серпинского, фрактал Пифагора, фрактал Дракона, фрактал Леви и др. Метод итерируемых функций(ITF).
Черепашья графика-библиотека
Turtle.
Движение черепахи. Состояние черепахи. Видимость. Внешний вид. Настройка параметров.
Управление Pen. Состояние рисования. Управление цветом. Заполнение. Контроль рисования.
Управление окном Screen.
Управление анимацией.
Использование событий. Использование событий экрана. Методы ввода. Методы, специфичные для Screen.
Рисование геометрических фигур, правильных многоугольников.
Круговые, горизонтальные, вертикальные узоры из геометрических фигур.
Визуализация графиков функций, заданных в декартовых координатах: парабола, гипербола, синус, косинус, тангенс, модуль и др.
Визуализация кривых, заданных параметрически в декартовых координатах: окружность, эллипс , спираль Архимеда, Астроида, Полярная роза, Гипоциклоида, Эпициклоида и др.
Визуализация кривых, заданных в полярных координатах: окружность, эллипс, спираль Архимеда, Астроида, Полярная роза Гипоциклоида, Эпициклоида и др.
Метод итерируемых функций(ITF). Визуализация фрактальных изображений: папоротник Барнсли, Треугольник Серпинского, фрактал Пифагора, фрактал Дракона, фрактал Леви и др.
Системы Линденмайера. Рекурсия для организации фрактального изображения. Визуализация фрактальных изображений: Дерево, снежинка Коха, фрактал Дракона и др.