🤖 Алгоритмы. Роботы как исполнители

Программируем логику мышления роботов

🧠 Алгоритмы • 🤖 Исполнители • 📊 Блок-схемы
5 класс • Технология • 45 минут

👨‍🏫 Учитель: Ахметов Рустам
🏫 Школа: ГБОУ № 1362
📅 Дата: 2025-06-11
🎯 Цель: Научиться мыслить как программист роботов!

🎯 План урока

🧠 Наша миссия:

  1. 🔍 Раскрыть тайну алгоритмов - что это и зачем нужно?
  2. 🤖 Понять роботов - как они “думают” и выполняют команды?
  3. 📊 Освоить блок-схемы - язык программистов
  4. 🛠️ Создать алгоритмы - для управления роботами
  5. 🎮 Применить знания - решить практические задачи

🎯 К концу урока вы сможете:

  • 📝 Объяснить, что такое алгоритм
  • 🤖 Понимать, как роботы выполняют команды
  • 📊 Составлять блок-схемы алгоритмов
  • 🎮 Программировать простые действия робота

🔍 Загадка робота

Может ли робот думать самостоятельно?

🎬 Посмотрим видео: Роботы выполняют сложные задачи

❓ Проблемные вопросы:

  • Как робот “знает”, что ему делать?
  • Может ли робот принимать решения?
  • Кто управляет роботом?
  • Что происходит “внутри” робота?

🧠 Мозговой штурм: Запишите ваши идеи о том, как работает “мозг” робота:

  • 🎭 Эксперимент “Человек-робот”

    🎮 Правила игры:

    • Один ученик = “программист”
    • Другой ученик = “робот”
    • Робот выполняет только точные команды

    📋 Задача: Робот должен взять книгу со стола учителя

    💻 Команды программиста:

    • “Встань”
    • “Иди вперед”
    • “Остановись”
    • “Поверни направо”
    • “Возьми предмет”

    🎯 Что мы увидим:

    • Робот выполняет только те команды, которые получил
    • Команды должны быть точными и понятными
    • Последовательность команд важна!

    📝 Выводы из эксперимента:

    Что получилось:

  • Какие были проблемы:

  • 🧠 Главное открытие: Роботы НЕ думают сами - они выполняют заранее написанные инструкции!

    📚 Что такое алгоритм?

    Основы алгоритмического мышления

    🎯 Определение алгоритма

    📖 Алгоритм - это точная пошаговая инструкция для решения задачи или достижения цели.

    🎭 Простыми словами: Алгоритм - это рецепт действий, написанный так, чтобы любой исполнитель (человек или робот) мог точно его выполнить.

    🌍 Примеры алгоритмов в жизни:

    • 🍞 Рецепт приготовления бутерброда
    • 🎵 Инструкция по настройке радио
    • 🚗 Правила дорожного движения
    • 📱 Руководство по использованию телефона

    ⚙️ Свойства хорошего алгоритма

    1️⃣ Понятность

    • Каждая команда должна быть ясной и недвусмысленной
    • Исполнитель должен понимать, что именно делать

    2️⃣ Пошаговость (дискретность)

    • Алгоритм состоит из отдельных шагов
    • Каждый шаг выполняется полностью, затем переходим к следующему

    3️⃣ Определенность (детерминированность)

    • При одинаковых условиях алгоритм всегда дает одинаковый результат
    • Нет случайности в выполнении

    4️⃣ Результативность

    • Алгоритм всегда приводит к результату
    • Процесс выполнения конечен

    5️⃣ Массовость

    • Алгоритм решает не одну конкретную задачу, а класс задач

    🧮 Алгоритмы в математике

    📐 Алгоритм нахождения площади прямоугольника:

    1. Измерить длину прямоугольника (a)
    2. Измерить ширину прямоугольника (b)
    3. Умножить длину на ширину: S = a × b
    4. Записать ответ

    🔢 Алгоритм нахождения НОД (наибольший общий делитель):

    1. Взять два числа a и b
    2. Если a = b, то НОД = a, конец
    3. Если a > b, то заменить a на (a - b)
    4. Если b > a, то заменить b на (b - a)
    5. Вернуться к шагу 2

    📊 Проверим на примере: НОД(12, 8)

    • a = 12, b = 8
    • 12 > 8, значит a = 12 - 8 = 4
    • a = 4, b = 8
    • 8 > 4, значит b = 8 - 4 = 4
    • a = 4, b = 4 → НОД = 4

    🎯 Задание: составьте алгоритм

    📝 Составьте алгоритм для одной из задач:

    A) Заварить чай:

  • B) Найти нужную страницу в книге:

  • 🔍 Проверьте свой алгоритм:

    • Все ли шаги понятны?
    • Можно ли выполнить каждый шаг?
    • Приведет ли алгоритм к нужному результату?

    🤖 Робот как исполнитель алгоритмов

    Понимаем “мышление” роботов

    🧠 Что такое исполнитель?

    🎯 Исполнитель - это объект (человек, робот, компьютер), который может выполнять определенные команды.

    🤖 Особенности робота-исполнителя:

    • Имеет ограниченный набор команд (система команд исполнителя)
    • Выполняет команды точно и без изменений
    • Не понимает команды, которых нет в его системе
    • Не может додумывать или исправлять ошибки программиста

    🎭 Аналогия: Робот как очень послушный, но не очень умный помощник

    📋 Система команд робота

    🚗 Команды движения:

    • move_forward(distance) - двигаться вперед на расстояние
    • move_backward(distance) - двигаться назад
    • turn_left(angle) - повернуть налево на угол
    • turn_right(angle) - повернуть направо на угол
    • stop() - остановиться

    ⏰ Команды времени:

    • wait(seconds) - ждать указанное время
    • repeat(n, commands) - повторить команды n раз

    🔧 Команды действий:

    • grab_object() - взять предмет
    • release_object() - отпустить предмет
    • send_signal() - подать сигнал

    📡 Команды датчиков:

    • read_distance() - измерить расстояние
    • read_color() - определить цвет
    • read_light() - измерить освещенность

    🎮 Практикум “Программируем робота”

    📝 Задача 1: Робот должен проехать квадрат со стороной 1 метр

    💻 Алгоритм:

    11. move_forward(100)  // 100 см = 1 м
    22. turn_left(90)      // поворот на 90°
    33. move_forward(100)
    44. turn_left(90)
    55. move_forward(100)
    66. turn_left(90)
    77. move_forward(100)
    88. turn_left(90)
    

    🔄 Оптимизированный алгоритм с циклом:

    1repeat(4, [
    2  move_forward(100)
    3  turn_left(90)
    4])
    

    📝 Задача 2: Робот рисует букву “П”

    💻 Алгоритм:

    11. move_forward(100)   // вертикальная линия вверх
    22. turn_right(90)      // поворот направо
    33. move_forward(50)    // горизонтальная линия
    44. turn_right(90)      // поворот направо
    55. move_forward(100)   // вертикальная линия вниз
    

    🎯 Ваша очередь! Составьте алгоритм для буквы “Г”:

    11. ________________________
    22. ________________________
    33. ________________________
    44. ________________________
    

    ⚠️ Типичные ошибки в алгоритмах

    ❌ Ошибка 1: Неточные команды

    1Плохо: "повернуть немного налево"
    2Хорошо: "turn_left(45)"
    

    ❌ Ошибка 2: Пропущенные шаги

    1Плохо: 
    21. move_forward(100)
    32. move_forward(100)  // забыли поворот!
    4
    5Хорошо:
    61. move_forward(100)
    72. turn_left(90)
    83. move_forward(100)
    

    ❌ Ошибка 3: Команды не из системы исполнителя

    1Плохо: "подумай и иди в нужную сторону"
    2Хорошо: "turn_left(90); move_forward(50)"
    

    ❌ Ошибка 4: Бесконечный цикл

    1Плохо: repeat(∞, [move_forward(10)])
    2Хорошо: repeat(5, [move_forward(10)])
    

    📊 Блок-схемы алгоритмов

    Визуальный язык программистов

    🎨 Зачем нужны блок-схемы?

    📊 Блок-схема - это графическое представление алгоритма с помощью специальных символов.

    ✅ Преимущества блок-схем:

    • Легко понять логику алгоритма
    • Видны все возможные пути выполнения
    • Проще найти и исправить ошибки
    • Универсальный язык для всех программистов

    🎯 Применение:

    • Планирование программ
    • Документирование алгоритмов
    • Обучение программированию
    • Анализ сложных процессов

    🔣 Основные символы блок-схем

    ⭕ Начало/Конец

    • Овал или круг
    • Обозначает начало или конец алгоритма

    📦 Процесс/Действие

    • Прямоугольник
    • Команда или действие исполнителя

    🔷 Условие/Решение

    • Ромб
    • Проверка условия (да/нет)

    📥 Ввод/Вывод

    • Параллелограмм
    • Получение данных или вывод результата

    🔗 Соединительные линии

    • Стрелки
    • Показывают направление выполнения

    📊 Пример блок-схемы

    🎯 Алгоритм “Робот проезжает квадрат”

     1     ⭕ НАЧАЛО
     2 3   📦 i = 1
     4 5   🔷 i ≤ 4?
     6     ↙     ↘
     7   НЕТ      ДА
     8    ↓        ↓
     9⭕ КОНЕЦ  📦 move_forward(100)
    1011      📦 turn_left(90)
    1213        📦 i = i + 1
    1415           ↑ (возврат к условию)
    

    🔍 Читаем блок-схему:

    1. Начинаем с i = 1
    2. Проверяем: i ≤ 4?
    3. Если ДА: едем вперед, поворачиваем, увеличиваем i
    4. Если НЕТ: заканчиваем
    5. Возвращаемся к проверке условия

    🛠️ Практическое задание

    📝 Составьте блок-схему для алгоритма “Поиск предмета”

    Условие: Робот должен найти красный предмет, двигаясь по прямой

    💻 Алгоритм в виде команд:

    11. move_forward(10)
    22. color = read_color()
    33. if color == "red": grab_object(), stop()
    44. else: go to step 1
    

    📊 Нарисуйте блок-схему:

     1     ⭕ _______
     2 3   📦 _________
     4 5   📥 _________
     6 7   🔷 _________
     8     ↙     ↘
     9   ___      ___
    10    ↓        ↓
    11   ___    📦 ___
    1213      📦 _______
    1415        ⭕ ___
    

    🎯 Задания разного уровня

    🟢 Базовый уровень: Составьте блок-схему алгоритма “Робот едет до стены”

    • Команды: move_forward(10), read_distance(), stop()
    • Условие: если расстояние < 20 см, то остановиться

    🟡 Средний уровень: Составьте блок-схему алгоритма “Робот собирает 3 предмета”

    • Команды: move_forward(10), grab_object(), count++
    • Условие: собрать ровно 3 предмета, затем остановиться

    🔴 Продвинутый уровень: Составьте блок-схему алгоритма “Робот выходит из лабиринта”

    • Команды: move_forward(10), turn_left(90), turn_right(90), read_distance()
    • Правило: всегда держаться правой стены

    🛠️ Практическая работа в группах

    Создаем алгоритмы для роботов

    🎯 Задание 1: “Робот-уборщик”

    📋 Условие: Робот должен убрать комнату размером 3×3 метра, проезжая по всей площади.

    🤖 Доступные команды:

    • move_forward(distance) - ехать вперед
    • turn_left(90) - поворот налево на 90°
    • turn_right(90) - поворот направо на 90°

    💡 Стратегии движения:

    • “Змейка” - зигзагообразное движение
    • “Спираль” - движение по спирали от края к центру
    • “Полосы” - движение параллельными полосами

    📝 Ваш алгоритм:

    11. ________________________
    22. ________________________
    33. ________________________
    44. ________________________
    55. ________________________
    

    🎯 Задание 2: “Робот-почтальон”

    📋 Условие: Робот должен доставить письма в 4 дома, расположенных по углам квадрата, и вернуться на почту (центр квадрата).

    🏠 Схема района:

    1Дом A ---- 100м ---- Дом B
    2  |                    |
    3100м      ПОЧТА      100м
    4  |         ⭐         |
    5Дом D ---- 100м ---- Дом C
    

    📮 Последовательность доставки: A → B → C → D → Почта

    💻 Начало алгоритма:

    11. move_forward(50)     // к дому A
    22. turn_left(90)
    33. move_forward(50)
    44. deliver_letter()     // доставить письмо
    55. ________________________
    66. ________________________
    

    🤔 Подумайте:

    • Как оптимально построить маршрут?
    • Где делать повороты?
    • Как не заблудиться?

    🎯 Задание 3: “Робот-художник”

    📋 Условие: Робот должен нарисовать простую картинку, используя движения как кисть.

    🎨 Варианты рисунков:

    • Домик (квадрат + треугольная крыша)
    • Цветок (кружок + 4 лепестка)
    • Звезда (5 лучей из центра)
    • Спираль (расширяющаяся кривая)

    🖌️ Особенности:

    • Каждое движение оставляет след
    • Чтобы не рисовать, используйте pen_up() и pen_down()
    • Можно менять цвет: set_color("red")

    💻 Пример - рисуем квадрат:

    1pen_down()
    2repeat(4, [
    3  move_forward(100)
    4  turn_left(90)
    5])
    6pen_up()
    

    🏆 Презентация результатов

    📢 Представление работы группы (3 минуты на группу):

    1️⃣ Демонстрация алгоритма (1 мин)

    • Покажите вашу блок-схему
    • Объясните логику решения

    2️⃣ Объяснение решения (1 мин)

    • Почему выбрали именно такой подход?
    • Какие трудности возникли?

    3️⃣ Ответы на вопросы (1 мин)

    • Другие группы задают вопросы
    • Обсуждение альтернативных решений

    🎯 Критерии оценки:

    • ✅ Правильность алгоритма
    • ✅ Оптимальность решения
    • ✅ Качество блок-схемы
    • ✅ Ясность объяснения

    🔍 Анализ решений

    🏅 Лучшие практики:

    • Использование циклов для повторяющихся действий
    • Четкая структура алгоритма
    • Учет особенностей робота-исполнителя
    • Оптимизация по времени выполнения

    ❌ Типичные ошибки:

    • Слишком сложные алгоритмы для простых задач
    • Забытые команды остановки
    • Неучтенные особенности исполнителя
    • Отсутствие проверки условий

    💡 Улучшения:

    • Как можно упростить алгоритм?
    • Где добавить проверки ошибок?
    • Как сделать алгоритм более универсальным?

    🧠 Закрепление и проверка

    Проверяем понимание темы

    ❓ Быстрая проверка знаний

    1. Определения:

    • Что такое алгоритм?
    • Кто такой исполнитель алгоритма?
    • Какие свойства есть у алгоритма?

    2. Свойства алгоритмов: Соотнесите свойство с описанием:

    Свойство Описание
    Понятность A) Алгоритм состоит из отдельных шагов
    Дискретность B) Каждый шаг должен быть ясным
    Детерминированность C) Алгоритм всегда дает результат
    Результативность D) При одних условиях - один результат

    3. Команды робота: Какие из команд может выполнить робот?

    • move_forward(100) ✓/❌
    • think_about_problem() ✓/❌
    • turn_left(90) ✓/❌
    • be_creative() ✓/❌
    • read_distance() ✓/❌

    🧮 Практические задачи

    📝 Задача 1: Исправьте ошибки в алгоритме

    Алгоритм “Робот проезжает треугольник”:

    1❌ Неправильный алгоритм:
    21. move_forward(100)
    32. turn_left(120)  
    43. move_forward(100)
    54. turn_left(120)
    65. move_forward(100)
    

    🤔 Что не так? ________________________

    ✅ Правильный алгоритм:

    11. ________________________
    22. ________________________
    33. ________________________
    44. ________________________
    55. ________________________
    66. ________________________
    

    📝 Задача 2: Оптимизируйте алгоритм

    Алгоритм “Робот едет по кругу 3 раза”:

    1❌ Длинный алгоритм:
    21. move_forward(10); turn_left(10)
    32. move_forward(10); turn_left(10)
    43. move_forward(10); turn_left(10)
    5...
    6108. move_forward(10); turn_left(10)
    

    ✅ Короткий алгоритм с циклами:

    1repeat(__, [
    2  repeat(__, [
    3    move_forward(__)
    4    turn_left(__)
    5  ])
    6])
    

    📝 Задача 3: Создайте блок-схему

    Алгоритм “Робот ищет выход из комнаты”:

    11. Двигаться вперед
    22. Если впереди стена - повернуть направо
    33. Если видит дверь - выйти
    44. Иначе продолжать поиск
    

    📊 Нарисуйте блок-схему в тетради

    🎯 Творческие задания

    🏆 Задание для продвинутых: Придумайте алгоритм для робота-футболиста:

    • Найти мяч
    • Довести до ворот
    • Забить гол

    🎨 Задание для творческих: Создайте алгоритм для робота, который рисует ваш автопортрет (упрощенный).

    🧩 Задание для любознательных: Как изменится алгоритм движения по квадрату, если робот может двигаться только вперед и поворачивать только налево?

    🏠 Домашнее задание

    📋 Обязательные задания

    1. Блок-схема движения по восьмерке Составьте блок-схему алгоритма движения робота по траектории в форме цифры “8”.

    Подсказки:

    • Восьмерка состоит из двух кругов
    • Используйте команды move_forward() и turn_left()
    • Подумайте о симметрии фигуры

    2. Алгоритм из жизни Выберите одну бытовую задачу и составьте для нее подробный алгоритм:

    Варианты задач:

    • 🍞 Приготовление бутерброда
    • 📚 Подготовка к школе утром
    • 🚴 Поездка в магазин на велосипеде
    • 📱 Отправка сообщения другу

    Требования:

    • Минимум 7 шагов
    • Каждый шаг должен быть конкретным
    • Проверьте алгоритм на членах семьи

    🎯 Дополнительные задания (по выбору)

    🤖 Для будущих программистов: Изучите один из языков программирования роботов:

    • Scratch for Robotics
    • LEGO Mindstorms
    • Arduino C++

    Напишите простую программу движения робота по квадрату.

    📊 Для любителей схем: Создайте большую блок-схему алгоритма “Утро школьника”:

    • От пробуждения до выхода из дома
    • Учтите разные варианты (дождь/солнце, будний день/выходной)
    • Используйте все типы блоков

    🎮 Для творческих: Придумайте и опишите своего робота:

    • Как он выглядит?
    • Какие команды умеет выполнять?
    • Какую полезную работу делает?
    • Составьте 3 алгоритма для вашего робота

    🌐 Полезные ресурсы

    💻 Онлайн-симуляторы:

    • Code.org - курсы по основам программирования
    • Blockly Games - игры для изучения алгоритмов
    • Робот Карел - классический учебный исполнитель

    📚 Для чтения:

    • “Алгоритмы для детей” - простые объяснения
    • “Как работают роботы” - популярная наука
    • Комиксы про программирование

    🎥 Видео:

    • “Что такое алгоритм?” - обучающие ролики
    • “Роботы в действии” - примеры из жизни
    • “Создание блок-схем” - практические уроки

    🎉 Подведение итогов урока

    🏆 Наши достижения

    🧠 Что мы узнали:

    • ✅ Понятие алгоритма и его свойства
    • ✅ Роботы как исполнители команд
    • ✅ Система команд робота
    • ✅ Способы записи алгоритмов (блок-схемы)
    • ✅ Принципы составления эффективных алгоритмов

    🛠️ Практические навыки:

    • ✅ Составление пошаговых инструкций
    • ✅ Создание блок-схем алгоритмов
    • ✅ Программирование движений робота
    • ✅ Анализ и оптимизация алгоритмов
    • ✅ Работа в команде над алгоритмическими задачами

    🌟 Главные выводы

    🎯 Ключевые идеи урока:

    “Алгоритм - это точный рецепт действий для достижения цели”

    “Робот не думает сам - он выполняет наши инструкции”

    “Хороший алгоритм должен быть понятным, точным и эффективным”

    🔮 Связь с будущим:

    • Программирование - язык XXI века
    • Роботы станут нашими помощниками
    • Алгоритмическое мышление поможет в любой профессии
    • Умение ставить задачи роботам - важный навык будущего

    📊 Рефлексия

    🎯 Оцените свое понимание темы:

    🟢 Зеленый светофор - Все понятно, могу объяснить другим
    🟡 Желтый светофор - В основном понятно, есть вопросы
    🔴 Красный светофор - Много непонятного, нужна помощь

    💭 Поделитесь мыслями:

    • Что было самым интересным на уроке?
    • Какое задание показалось самым сложным?
    • Где в жизни вы видите применение алгоритмов?
    • О чем хотели бы узнать больше?

    🔮 Следующий урок: “Программирование роботов: от идеи к коду”

    🎯 Готовимся изучать:

    • Языки программирования роботов
    • Среды разработки
    • Отладка программ
    • Сложные алгоритмы управления

    🤖 ДОБРО ПОЖАЛОВАТЬ В МИР АЛГОРИТМИЧЕСКОГО МЫШЛЕНИЯ!
    Теперь вы готовы программировать роботов!