🤖 Алгоритмы. Роботы как исполнители
Программируем логику мышления роботов
🧠 Алгоритмы • 🤖 Исполнители • 📊 Блок-схемы
5 класс • Технология • 45 минут
👨🏫 Учитель: Ахметов Рустам
🏫 Школа: ГБОУ № 1362
📅 Дата: 2025-06-11
🎯 Цель: Научиться мыслить как программист роботов!
🎯 План урока
🧠 Наша миссия:
- 🔍 Раскрыть тайну алгоритмов - что это и зачем нужно?
- 🤖 Понять роботов - как они “думают” и выполняют команды?
- 📊 Освоить блок-схемы - язык программистов
- 🛠️ Создать алгоритмы - для управления роботами
- 🎮 Применить знания - решить практические задачи
🎯 К концу урока вы сможете:
- 📝 Объяснить, что такое алгоритм
- 🤖 Понимать, как роботы выполняют команды
- 📊 Составлять блок-схемы алгоритмов
- 🎮 Программировать простые действия робота
🔍 Загадка робота
Может ли робот думать самостоятельно?
🎬 Посмотрим видео: Роботы выполняют сложные задачи
❓ Проблемные вопросы:
- Как робот “знает”, что ему делать?
- Может ли робот принимать решения?
- Кто управляет роботом?
- Что происходит “внутри” робота?
🧠 Мозговой штурм:
Запишите ваши идеи о том, как работает “мозг” робота:
-
🎭 Эксперимент “Человек-робот”
🎮 Правила игры:
- Один ученик = “программист”
- Другой ученик = “робот”
- Робот выполняет только точные команды
📋 Задача: Робот должен взять книгу со стола учителя
💻 Команды программиста:
- “Встань”
- “Иди вперед”
- “Остановись”
- “Поверни направо”
- “Возьми предмет”
🎯 Что мы увидим:
- Робот выполняет только те команды, которые получил
- Команды должны быть точными и понятными
- Последовательность команд важна!
📝 Выводы из эксперимента:
✅ Что получилось:
🧠 Главное открытие:
Роботы НЕ думают сами - они выполняют заранее написанные инструкции!
📚 Что такое алгоритм?
Основы алгоритмического мышления
🎯 Определение алгоритма
📖 Алгоритм - это точная пошаговая инструкция для решения задачи или достижения цели.
🎭 Простыми словами: Алгоритм - это рецепт действий, написанный так, чтобы любой исполнитель (человек или робот) мог точно его выполнить.
🌍 Примеры алгоритмов в жизни:
- 🍞 Рецепт приготовления бутерброда
- 🎵 Инструкция по настройке радио
- 🚗 Правила дорожного движения
- 📱 Руководство по использованию телефона
⚙️ Свойства хорошего алгоритма
1️⃣ Понятность
- Каждая команда должна быть ясной и недвусмысленной
- Исполнитель должен понимать, что именно делать
2️⃣ Пошаговость (дискретность)
- Алгоритм состоит из отдельных шагов
- Каждый шаг выполняется полностью, затем переходим к следующему
3️⃣ Определенность (детерминированность)
- При одинаковых условиях алгоритм всегда дает одинаковый результат
- Нет случайности в выполнении
4️⃣ Результативность
- Алгоритм всегда приводит к результату
- Процесс выполнения конечен
5️⃣ Массовость
- Алгоритм решает не одну конкретную задачу, а класс задач
🧮 Алгоритмы в математике
📐 Алгоритм нахождения площади прямоугольника:
- Измерить длину прямоугольника (a)
- Измерить ширину прямоугольника (b)
- Умножить длину на ширину: S = a × b
- Записать ответ
🔢 Алгоритм нахождения НОД (наибольший общий делитель):
- Взять два числа a и b
- Если a = b, то НОД = a, конец
- Если a > b, то заменить a на (a - b)
- Если b > a, то заменить b на (b - a)
- Вернуться к шагу 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)
10 ↓
11 📦 turn_left(90)
12 ↓
13 📦 i = i + 1
14 ↓
15 ↑ (возврат к условию)
🔍 Читаем блок-схему:
- Начинаем с i = 1
- Проверяем: i ≤ 4?
- Если ДА: едем вперед, поворачиваем, увеличиваем i
- Если НЕТ: заканчиваем
- Возвращаемся к проверке условия
🛠️ Практическое задание
📝 Составьте блок-схему для алгоритма “Поиск предмета”
Условие: Робот должен найти красный предмет, двигаясь по прямой
💻 Алгоритм в виде команд:
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 ___ 📦 ___
12 ↓
13 📦 _______
14 ↓
15 ⭕ ___
🎯 Задания разного уровня
🟢 Базовый уровень:
Составьте блок-схему алгоритма “Робот едет до стены”
- Команды: 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 века
- Роботы станут нашими помощниками
- Алгоритмическое мышление поможет в любой профессии
- Умение ставить задачи роботам - важный навык будущего
📊 Рефлексия
🎯 Оцените свое понимание темы:
🟢 Зеленый светофор - Все понятно, могу объяснить другим
🟡 Желтый светофор - В основном понятно, есть вопросы
🔴 Красный светофор - Много непонятного, нужна помощь
💭 Поделитесь мыслями:
- Что было самым интересным на уроке?
- Какое задание показалось самым сложным?
- Где в жизни вы видите применение алгоритмов?
- О чем хотели бы узнать больше?
🔮 Следующий урок: “Программирование роботов: от идеи к коду”
🎯 Готовимся изучать:
- Языки программирования роботов
- Среды разработки
- Отладка программ
- Сложные алгоритмы управления
🤖 ДОБРО ПОЖАЛОВАТЬ В МИР АЛГОРИТМИЧЕСКОГО МЫШЛЕНИЯ!
Теперь вы готовы программировать роботов!