Методичка для преподавателя информатики
11 класс, 1-я четверть (8 уроков)
Темы:
- Алгоритмы и структуры данных: работа с графами, деревьями, хэш-таблицами, динамическое программирование.
- Программирование: сложное ООП — шаблоны, интерфейсы, многопоточность, обработка исключений.
- Введение в проектное программирование: архитектура программного обеспечения, моделирование систем, UML-диаграммы.
Урок 1: Алгоритмы работы с графами — поиск кратчайшего пути
Цель:
Изучить алгоритмы поиска кратчайшего пути в графах, такие как алгоритм Дейкстры.
План урока:
- Основы графов (10 мин).
- Представление графов: списки смежности и матрицы смежности.
- Задача поиска кратчайшего пути в графе.
- Алгоритм Дейкстры (15 мин).
- Принцип работы алгоритма, пример его использования.
- Время работы алгоритма и его оптимизация.
- Практическая работа (20 мин).
- Реализация алгоритма Дейкстры на выбранном языке программирования (например, Python, C++).
Домашнее задание:
Завершить реализацию алгоритма и протестировать его на примерах.
Урок 2: Динамическое программирование
Цель:
Изучить основы динамического программирования на примере задач оптимизации.
План урока:
- Понятие динамического программирования (10 мин).
- Отличие от жадных алгоритмов и метода полного перебора.
- Пример задачи с динамическим программированием (задача о рюкзаке).
- Применение динамического программирования (10 мин).
- Основные шаги: определение подзадач, рекуррентные соотношения, мемоизация.
- Практическая работа (20 мин).
- Реализация задачи с динамическим программированием.
Домашнее задание:
Решить задачи на динамическое программирование (например, задача о наибольшей возрастающей подпоследовательности).
Урок 3: Структуры данных — деревья и хэш-таблицы
Цель:
Изучить деревья и хэш-таблицы, их применение и алгоритмы работы с ними.
План урока:
- Основы деревьев (10 мин).
- Двоичные деревья, деревья поиска (BST), балансировка деревьев (AVL, красно-черные деревья).
- Хэш-таблицы (10 мин).
- Принцип работы хэш-таблиц, коллизии и методы их разрешения.
- Практическая работа (20 мин).
- Реализация базовых операций с деревьями и хэш-таблицами (вставка, удаление, поиск).
Домашнее задание:
Завершить реализацию алгоритмов и подготовить примеры работы.
Урок 4: Сложное ООП — шаблоны и интерфейсы
Цель:
Погрузить учеников в работу с шаблонами (generics) и интерфейсами в объектно-ориентированном программировании.
План урока:
- Шаблоны (Generics) (10 мин).
- Понятие шаблонов в ООП, использование generics для создания универсальных классов и функций.
- Примеры использования generics на выбранном языке (C++, Java).
- Интерфейсы и абстрактные классы (10 мин).
- Различия между интерфейсами и абстрактными классами, применение в проектировании программ.
- Практическая работа (20 мин).
- Реализация простых программ с использованием шаблонов и интерфейсов.
Домашнее задание:
Разработать несколько классов с использованием интерфейсов и шаблонов.
Урок 5: Многопоточность и обработка исключений
Цель:
Изучить основы многопоточности и обработки исключений в программировании.
План урока:
- Многопоточность (10 мин).
- Основы работы с потоками, синхронизация потоков, проблемы гонки потоков (race condition).
- Использование многопоточности для оптимизации выполнения программ.
- Обработка исключений (10 мин).
- Принципы обработки ошибок и исключений в программировании.
- Конструкции try-catch-finally в разных языках.
- Практическая работа (20 мин).
- Реализация многопоточной программы с обработкой исключений.
Домашнее задание:
Завершить многопоточные задачи и протестировать обработку исключений в программах.
Урок 6: Введение в проектное программирование — архитектура ПО
Цель:
Познакомить учеников с основами проектирования программного обеспечения и его архитектуры.
План урока:
- Основы архитектуры ПО (10 мин).
- Модульность, разделение ответственности, принципы SOLID.
- Шаблоны проектирования (паттерны) и их применение.
- Моделирование систем (10 мин).
- Разработка архитектуры системы: слои приложения, компоненты и взаимодействие.
- Практическая работа (20 мин).
- Построение архитектуры простого проекта.
Домашнее задание:
Создать архитектуру собственного программного проекта с использованием принципов SOLID.
Урок 7: UML-диаграммы для моделирования систем
Цель:
Изучить базовые UML-диаграммы для моделирования систем и программного обеспечения.
План урока:
- Введение в UML (10 мин).
- Основные виды диаграмм: диаграмма классов, диаграмма последовательности, диаграмма компонентов.
- Примеры их использования для описания архитектуры системы.
- Практическая работа (20 мин).
- Построение диаграммы классов и диаграммы последовательности для проектируемого ПО.
Домашнее задание:
Завершить построение UML-диаграмм для проекта.
Урок 8: Подведение итогов — презентация проектов и архитектур
Цель:
Подведение итогов работы за четверть, презентация разработанных архитектур и проектов.
План урока:
- Презентация проектов (30 мин).
- Представление архитектуры ПО, описание моделей и методов, использованных в проекте.
- Анализ и обсуждение (10 мин).
- Вопросы и обсуждение представленных проектов, разбор сильных и слабых сторон.
- Подведение итогов (10 мин).
- Итоговая оценка проектов, обсуждение дальнейших тем и задач.
Домашнее задание:
Подготовить полный отчет по проекту, включая UML-диаграммы и описание архитектуры.
Эта методичка обеспечивает углубленное изучение сложных алгоритмов, ООП и проектного программирования, что позволит ученикам развить навыки, необходимые для реальных программных проектов.