Закрепление навыков программирования циклических алгоритмов (8 класс)
Цели и задачи
- Цель: закрепить умение применять циклы for и while для решения практических вычислительных задач, переводить математические алгоритмы в программный код.
- Образовательные задачи: отработать навык выбора оптимального типа цикла, закрепить синтаксис управляющих конструкций в Python/Pascal, научить находить и исправлять логические ошибки в коде.
- Развивающие задачи: развивать алгоритмическое мышление, умение анализировать структуру задачи и разбивать её на этапы.
- Воспитательные задачи: формировать культуру программирования и ответственное отношение к проверке результатов своей деятельности.
Планируемые результаты
Личностные
- Готовность к саморазвитию и самообразованию на основе мотивации к обучению программированию.
- Осознание важности алгоритмической грамотности в современном цифровом мире.
- Развитие навыков сотрудничества при работе в парах и обсуждении кода.
Метапредметные
- Умение определять понятия, создавать обобщения и устанавливать аналогии между математическими формулами и кодом.
- Навык смыслового чтения при анализе условий задач и текстов программ.
- Умение самостоятельно планировать пути достижения целей при написании сложных алгоритмов.
Предметные
- Владение навыками записи циклов for и while на выбранном языке программирования.
- Умение реализовывать алгоритмы суммирования и поиска произведения последовательности чисел.
- Способность проводить отладку и тестирование программы.
Универсальные учебные действия (УУД)
Личностные УУД
- Формирование позитивной самооценки своих способностей в области ИТ.
Регулятивные УУД
- Умение сличать способ действия и его результат с заданным эталоном (тестирование программы).
- Коррекция кода в случае расхождения результата с ожидаемым.
Познавательные УУД
- Преобразование математической модели в алгоритмическую.
- Выбор наиболее эффективного способа решения задачи в зависимости от условий.
Коммуникативные УУД
- Умение аргументировать свою точку зрения при выборе типа цикла в конкретной задаче.
Подготовка учителя к уроку
- Проверить работоспособность среды программирования (Python IDLE / PyCharm / PascalABC.NET) на всех рабочих местах.
- Подготовить презентацию с примерами кода, содержащими ошибки (для этапа актуализации).
- Распечатать карточки с дифференцированными заданиями для самостоятельной работы (по количеству учеников).
- Подготовить файл-заготовку с условиями задач на сетевом диске.
- Написать на доске ключевые слова: итерация, инкремент, условие выхода, тело цикла.
Ход урока
Этап 1. Организационный момент и мотивация (3 мин)
Цель этапа: настроить учеников на продуктивную работу, создать ситуацию успеха и подчеркнуть значимость темы.
Время | Действие учителя | Действие учеников |
|---|---|---|
1 мин | "Здравствуйте, ребята! Присаживайтесь. Сегодня мы продолжаем покорять мир алгоритмов. Представьте: если бы программисты писали каждую строку кода вручную для каждой итерации, современные игры или социальные сети создавались бы десятилетиями. Циклы — это сердце автоматизации. Сегодня наша задача — отточить мастерство управления этим инструментом." | Приветствуют учителя, проверяют наличие тетрадей и готовность компьютеров к работе. |
2 мин | "Вспомните, как в алгебре мы записываем суммы последовательностей. Сегодня мы заставим компьютер делать эту скучную работу за нас. Кто готов доказать, что он понимает логику машины лучше, чем сама машина?" | Слушают учителя, эмоционально настраиваются на работу, включаются в диалог. |
Завершение этапа: учитель подводит итог: "Прекрасно, настрой боевой. Но перед тем как сесть за штурвал, проверим наши знания."
Этап 2. Актуализация знаний и приём «Лови ошибку» (7 мин)
Цель этапа: повторить синтаксис циклов и выявить типичные ошибки в понимании работы алгоритмов.
Время | Действие учителя | Действие учеников |
|---|---|---|
3 мин | "Посмотрите на экран. Здесь написан фрагмент кода на Python и Pascal, который должен вывести числа от 1 до 5. Но что-то пошло не так. Кто первым найдет ошибку?" Учитель показывает код с бесконечным циклом (пропущен инкремент в while) или ошибкой в range (range(1, 5) выводит до 4). | Анализируют код на экране, поднимают руки. Отвечают: "В Python range не включает последнее число, нужно писать range(1, 6)" или "В цикле while забыли увеличить переменную i, программа зависнет". |
4 мин | "Верно! А теперь блиц-опрос: 1. Когда мы используем цикл for, а когда while? 2. Что такое 'тело цикла'? 3. Что произойдет, если условие в while изначально ложно?" | Отвечают: "For — когда знаем количество повторений, while — когда есть условие"; "Тело — это команды внутри цикла"; "Цикл не выполнится ни разу". |
Посмотрите план целиком
Зарегистрируйтесь — и откройте план урока по этой теме полностью: цели, ход урока и рефлексия по ФГОС.
Завершение этапа: учитель подводит итог: "Вижу, теорию вы помните отлично. Теперь перейдем к решению практической задачи у доски."
Этап 3. Коллективное решение задачи (10 мин)
Цель этапа: разобрать алгоритм накопления суммы, который является базовым для многих вычислительных задач.
Время | Действие учителя | Действие учеников |
|---|---|---|
5 мин | "Давайте решим задачу: Найти сумму всех четных чисел в диапазоне от 1 до N, где N вводится с клавиатуры. Один человек работает у доски, остальные в тетрадях. С чего мы начнем? Какую переменную нам нужно создать для хранения результата?" | Ученик у доски записывает ввод данных: N = int(input()). Класс предлагает создать переменную s = 0. Обсуждают условие проверки четности (i % 2 == 0). |
5 мин | "А можно ли решить эту задачу эффективнее, не проверяя каждое число на четность, а сразу шагая через одно? Как изменить параметры цикла for?" | Предлагают вариант: for i in range(2, N + 1, 2). Ученик у доски корректирует код. Остальные сверяют записи. |
Эталон решения (Python)
n = int(input("Введите N: "))
s = 0
for i in range(2, n + 1, 2):
s += i
print("Сумма:", s)
s = 0
for i in range(2, n + 1, 2):
s += i
print("Сумма:", s)
Завершение этапа: учитель подводит итог: "Мы составили оптимальный алгоритм. Перед тем как вы сядете за компьютеры для выполнения индивидуальных заданий, давайте немного разомнемся."
Этап 4. Физкультминутка (2 мин)
Цель этапа: снять мышечное напряжение и дать отдых глазам перед работой с монитором.
Время | Действие учителя | Действие учеников |
|---|---|---|
1 мин | "Встаньте, пожалуйста. Представьте, что вы — роботы. Выполняем цикл: 1. Поворот головы вправо. 2. Поворот головы влево. Повторить 4 раза. Теперь 'зарядка аккумулятора': потянитесь руками вверх, встаньте на носочки." | Встают, выполняют упражнения для шеи и спины. |
1 мин | "А теперь упражнение для глаз: посмотрите на кончик носа, затем на самую дальнюю точку в окне. Повторите 3 раза. Поморгайте быстро-быстро. Садитесь, приступаем к практике." | Выполняют гимнастику для глаз, садятся за рабочие места. |
Этап 5. Самостоятельная работа за ПК (15 мин)
Цель этапа: индивидуальное закрепление навыков программирования на задачах разного уровня сложности.
Время | Действие учителя | Действие учеников |
|---|---|---|
2 мин | "На ваших столах лежат карточки с тремя уровнями сложности. Уровень А — базовый (вычисление суммы), Уровень Б — средний (с условием), Уровень В — сложный (вложенные циклы или сложные математические ряды). Вы можете выбрать любой, но советую начать с того, в котором вы уверены." | Выбирают уровень задания, открывают среду программирования, приступают к написанию кода. |
13 мин | Учитель курсирует по классу, оказывает индивидуальную помощь, задает наводящие вопросы тем, кто столкнулся с трудностями. "Посмотри, где у тебя меняется значение счетчика?", "Почему программа выводит результат много раз, а не один? (проверка отступов)". | Самостоятельно пишут программы, тестируют их на разных входных данных. При возникновении ошибок пытаются найти их самостоятельно, затем обращаются к учителю. |
Завершение этапа: учитель подводит итог: "Время истекло. Сохраните свои работы в личные папки. Давайте обсудим, с какими трудностями вы столкнулись."
Этап 6. Рефлексия и подведение итогов (8 мин)
Цель этапа: осознание учениками своей учебной деятельности, оценка результатов и постановка задач на будущее.
Время | Действие учителя | Действие учеников |
|---|---|---|
4 мин | "Ребята, поднимите руки те, кто справился с уровнем Б и выше. Отлично! Давайте проведем краткую рефлексию. Используем приём 'Светофор': поднимите зеленую карточку, если тема циклов вам полностью понятна, желтую — если остались вопросы, красную — если пока трудно." | Оценивают свои успехи, поднимают карточки соответствующего цвета. |
4 мин | Учитель комментирует результаты: "Вижу много зеленых карточек, это радует. Тем, у кого желтые — не переживайте, на следующем уроке мы разберем более сложные кейсы. Запишите домашнее задание." | Записывают домашнее задание в дневники, задают уточняющие вопросы. |
Критерии оценивания практической работы
- "5" — программа работает корректно, выбран оптимальный тип цикла, код чистый, соблюдены правила именования переменных, решена задача уровня В или две задачи уровня Б.
- "4" — программа работает, но есть небольшие недочеты в логике (например, неверный диапазон на 1 единицу) или решена только задача уровня Б.
- "3" — написан каркас программы, понятна логика цикла, но программа не запускается из-за синтаксических ошибок или решена только задача уровня А.
Рефлексия
Вопрос для ученика | Цель вопроса |
|---|---|
Какая ошибка в коде сегодня была самой 'коварной'? | Выявление типичных трудностей в отладке алгоритмов. |
В каких реальных задачах (кроме математики) может пригодиться цикл? | Развитие навыка переноса знаний в реальный контекст. |
Что бы вы объяснили другу, который пропустил сегодняшний урок? | Синтез знаний и выделение главного в теме. |
Завершающее слово учителя
"Сегодня вы сделали большой шаг в понимании того, как работают современные технологии. Мы научили компьютер выполнять повторяющиеся действия — это и есть суть автоматизации. Помните: программирование — это не только знание команд, но и умение мыслить логически. Если сегодня что-то не получилось — это не провал, а ценный опыт отладки. На следующем уроке мы перейдем к обработке списков и массивов, где циклы станут нашими главными помощниками. Спасибо за работу!"
Домашнее задание
Уровень сложности | Задания | Описание |
|---|---|---|
Базовый (обязательный) | Учебник, стр. 145, №5, №7 | Написать программы для вычисления суммы чисел от 1 до 50 и произведения чисел от 1 до 10. |
Средний (повышающий) | Задача 'Банковский вклад' | Написать программу: вклад в банке составляет X рублей. Ежегодно он увеличивается на P процентов. Через сколько лет вклад превысит Y рублей? |
Продвинутый (дополнительный) | Алгоритм Евклида | Реализовать поиск НОД (наибольшего общего делителя) двух чисел с помощью цикла while. |
Контрольный вопрос: "Чем отличается цикл с предусловием от цикла с параметром в ситуации, когда количество повторений заранее неизвестно?"