Запись вспомогательных алгоритмов на языке Python
Цели и задачи
- Цель: сформировать представление о вспомогательных алгоритмах и научить создавать простейшие функции на языке Python для решения типовых задач.
- Образовательная задача: изучить синтаксис описания подпрограмм (ключевое слово def, отступы, оператор return).
- Развивающая задача: развить навыки декомпозиции сложной задачи на простые составляющие.
- Воспитательная задача: способствовать преодолению страха перед программированием через использование бытовых аналогий.
- Профориентационная задача: показать связь темы с заданиями ОГЭ по информатике (анализ кода).
Планируемые результаты
Личностные
- Формирование ответственного отношения к обучению и готовности к саморазвитию.
- Развитие критического мышления при анализе готового программного кода.
- Повышение уверенности в своих силах при работе с цифровыми инструментами.
Метапредметные
- Познавательные: умение выделять главное, структурировать знания, строить логические рассуждения.
- Регулятивные: умение планировать свои действия в соответствии с поставленной задачей.
- Коммуникативные: умение работать в паре, аргументировать свою позицию при обсуждении алгоритма.
Предметные
- Знать определение подпрограммы, процедуры и функции.
- Понимать различие между встроенными и пользовательскими функциями.
- Уметь записывать простейшую функцию на Python с использованием параметров и возвращаемого значения.
Универсальные учебные действия (УУД)
Личностные УУД
- Смыслообразование: понимание практической значимости умения программировать для будущей профессии.
- Самоопределение: оценка своих способностей в области информационных технологий.
Регулятивные УУД
- Целеполагание как постановка учебной задачи.
- Контроль в форме сличения способа действия и его результата с заданным эталоном.
Познавательные УУД
- Синтез — составление целого из частей (сборка программы из функций).
- Моделирование — преобразование объекта из чувственной формы в модель (алгоритм).
Коммуникативные УУД
- Сотрудничество в поиске и сборе информации.
- Умение с достаточной полнотой и точностью выражать свои мысли.
Подготовка учителя к уроку
- Подготовить презентацию с ключевыми понятиями (def, return, процедура, функция).
- Распечатать карточки-шпаргалки со структурой функции (1 на парту).
- Подготовить файлы-заготовки для практической работы с комментариями "Допиши здесь".
- Проверить работоспособность среды программирования Python (IDLE, Thonny или онлайн-компилятор) на всех ПК.
- Подготовить демонстрационный пример программы с ошибкой в отступах для анализа.
Ход урока
Этап 1. Организационный момент / Мотивация (3 мин)
Действие учителя | Действие учеников |
|---|---|
"Здравствуйте, ребята! Сегодня мы станем архитекторами программ. Скажите, если бы вы строили дом, вы бы сами каждый кирпич обжигали или купили бы готовые?" | Отвечают: "Купили бы готовые, так быстрее". |
"В программировании так же. Чтобы не писать один и тот же сложный код много раз, программисты создают 'кирпичики' — вспомогательные алгоритмы. Сегодня мы научимся их делать." | Слушают учителя, настраиваются на изучение новой темы. |
Этап 2. Актуализация знаний (4 мин)
Действие учителя | Действие учеников |
|---|---|
"Давайте вспомним команды, которые мы уже знаем. Как вывести текст на экран? Как получить число от пользователя?" | Отвечают: "print() для вывода, input() для ввода". |
"Верно. А знали ли вы, что print и input — это тоже вспомогательные алгоритмы, только встроенные в язык? Кто-то уже написал их за нас!" | Удивляются, осознают, что уже пользовались функциями. |
Этап 3. Выявление места и причины затруднения (3 мин)
Действие учителя | Действие учеников |
|---|---|
"Представьте, что нам нужно в программе трижды спросить имя пользователя и поздороваться с ним. Мы будем три раза писать одни и те же строчки? А если их будет 100? В чем здесь проблема?" | Предполагают: "Будет очень длинный код", "Легко ошибиться", "Долго писать". |
Посмотрите план целиком
Зарегистрируйтесь — и откройте план урока по этой теме полностью: цели, ход урока и рефлексия по ФГОС.
Этап 4. Открытие нового знания (10 мин)
Действие учителя | Действие учеников |
|---|---|
"Посмотрите на слайд 'Ключевые слова'. Для создания своего алгоритма используется слово def (от англ. define — определить). Пишем: def имя_функции():. Что обязательно должно стоять в конце этой строки?" | Смотрят на экран, отвечают: "Двоеточие". |
"Правильно. А теперь самое важное: всё, что входит в нашу функцию, пишется с отступом в 4 пробела. Это как абзац в книге. Если отступа нет — Python не поймет, что это часть функции." | Записывают в тетрадь схему: def -> имя -> () -> : -> отступ. |
"Бывают функции-процедуры (просто выполняют действие, как print) и функции, которые возвращают результат (как математическая функция). Для возврата используется слово return. Представьте, что вы дали роботу задание 'свари кофе'. Процедура — он сварил и стоит. Функция — он сварил и принес чашку вам (вернул результат)." | Слушают аналогию, фиксируют разницу между процедурой и функцией. |
Запись в тетрадях
def имя(параметры):
# действия (блок кода)
return значение
Этап 5. Первичное закрепление (3 мин)
Действие учителя | Действие учеников |
|---|---|
"Посмотрите на слайд с алгоритмом Евклида. Не пугайтесь кода! Здесь функция nod(a, b) находит наибольший общий делитель. Видите слово return a? Что оно делает?" | Анализируют код на слайде, отвечают: "Оно отдает ответ назад в основную программу". |
Этап 6. Практическая работа (20 мин)
Действие учителя | Действие учеников |
|---|---|
"Садимся за компьютеры. Откройте файл 'Задание 1'. Там написана функция greet(name). Ваша задача — изменить её так, чтобы она не просто здоровалась, а говорила: 'Привет, [имя], добро пожаловать на урок информатики!'" | Садятся за ПК, открывают среду программирования, редактируют строку внутри функции. |
"Теперь переходим к 'Заданию 2'. Нам нужно создать функцию-калькулятор, которая складывает два числа. Я подготовил скелет программы, вам нужно дописать слово return и правильно указать, что мы возвращаем." | Работают с кодом. Дописывают: return a + b. Запускают программу, проверяют результат. |
"Для тех, кто справился — бонусное задание на карточке. Попробуйте создать функцию, которая вычисляет площадь прямоугольника по двум сторонам." | Более сильные ученики пробуют написать функцию самостоятельно с нуля. |
Карточка для учащихся: практическая работа
Задание 1. Измени функцию приветствия
В программе уже создана функция:
def greet(name):
print("Привет, " + name)
Измени её так, чтобы программа выводила сообщение:
Привет, [имя], добро пожаловать на урок информатики!
Например, при вызове:
greet("Анна")
на экране должно появиться:
Привет, Анна, добро пожаловать на урок информатики!
Задание 2. Создай функцию сложения
Допиши программу, которая складывает два числа с помощью функции add_numbers.
def add_numbers(a, b): # допиши тело функции
x = int(input("Введите первое число: "))
y = int(input("Введите второе число: "))
print(add_numbers(x, y))
Требования:
- используй оператор
return; - функция должна возвращать сумму чисел
aиb; - проверь работу программы на нескольких примерах.
Ожидаемый результат для чисел 7 и 5:
text 12
Эталон решения
def greet(name):
print("Привет, " + name + ", добро пожаловать на урок информатики!")
greet("Анна")
Результат выполнения:
text Привет, Анна, добро пожаловать на урок информатики!
def add_numbers(a, b):
result = a + b
return result
x = int(input())
y = int(input())
print(add_numbers(x, y))
def rectangle_area(length, width):
return length * width
a = float(input("Введите длину прямоугольника: "))
b = float(input("Введите ширину прямоугольника: "))
print("Площадь прямоугольника:", rectangle_area(a, b))
Например, при вводе длины 5 и ширины 3 программа выведет:
Площадь прямоугольника: 15.0
Этап 7. Рефлексия и домашнее задание (2 мин)
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | "Ребята, сегодня мы сделали большой шаг. Программирование — это не магия, а сборка из понятных деталей. Что было самым сложным?" | Отвечают: "Отступы", "Понять, куда возвращается return". |
Критерии оценивания практической работы
- "5" — выполнены все 3 задания, функции работают корректно, соблюдены отступы.
- "4" — выполнены 2 задания, допущены незначительные ошибки в синтаксисе, которые ученик исправил сам.
- "3" — выполнено только 1 задание (модификация готового кода), ученику требовалась постоянная помощь учителя.
Рефлексия
Вопрос для ученика | Цель вопроса |
|---|---|
Какое слово в Python говорит: 'Сейчас я создам свою команду'? | Проверка усвоения ключевого слова def. |
Зачем нужны 4 пробела (отступ) в начале строки внутри функции? | Проверка понимания синтаксической структуры блока кода. |
Оцените свою работу: я справился сам или мне нужна была помощь? | Самооценка и выявление уровня комфорта с материалом. |