Введение в программирование
Никакой язык программирования не требуется. Сначала вы наглядно освоите мышление программиста и алгоритмы, отдавая команды роботу. Затем выберете подходящее вам направление.
Какая команда нужна, чтобы робот добрался до звезды?
Что такое программа и как она работает
Как компьютер «думает»
Компьютер очень быстрый, но сам не думает. Он лишь точно выполняет заданную вами команду в том порядке, в котором вы её задали. Ничего не добавляет и не убавляет от себя.
Поэтому главная задача программиста — давать машине точные и пошаговые команды. Если сказать «возьми яблоко», она не поймёт. Нужно проговорить каждый шаг: «иди вперёд, иди вперёд, возьми яблоко».
Робот ниже работает точно как компьютер. Его программа (список команд) слева, выполнение — справа. Каждая команда по очереди подсвечивается и выполняется:
Алгоритм = последовательность шагов
Алгоритм — это последовательность точных шагов для выполнения какой-либо задачи. Вы пользуетесь им каждый день: заварить чай — тоже алгоритм. Важен порядок шагов. Если порядок нарушен, нарушается и результат.
Ваша первая программа
Теперь ваша очередь. Доведите робота до яблока. Нажимая команды ниже, составьте программу, затем нажмите кнопку Запустить. Робот выполнит вашу программу сверху вниз, в точности.
Совет: следите, в какую сторону смотрит робот. Чтобы изменить направление, используйте команды «повернуть».
Тест модуля
Чтобы открыть следующий модуль, ответьте верно минимум на 3 из 4 вопросов.
Алгоритм и блок-схема
Разбиение задачи на шаги
Секрет решения любой большой задачи — разбить её на маленькие, точные шаги. И вывод робота из лабиринта, и создание сайта сначала разбиваются на этапы.
Программисты часто рисуют эти шаги в виде блок-схемы: каждое действие — отдельный блок, стрелки показывают порядок, а ромб задаёт условие (да или нет). Блок-схема ниже показывает, как шаги выполняются последовательно:
Составление плана для робота
Теперь лабиринт побольше. Чтобы довести робота до яблока, составьте план заранее: где идти прямо, а где поворачивать? Продумайте каждый поворот заранее — это и есть планирование алгоритма.
Тест модуля
Чтобы открыть следующий модуль, ответьте верно минимум на 3 из 4 вопросов.
Переменные
Хранение значения: коробка
Переменная — это именованная коробка, в которой хранится значение. В неё можно положить число, текст или значение да/нет (логическое), и менять его сколько угодно.
Попробуйте коробку «баллы» ниже. Когда вы нажимаете кнопки, значение внутри меняется, но имя коробки остаётся тем же:
Робот считает яблоки
Теперь робот собирает несколько яблок. Каждый раз, когда он берёт яблоко, переменная яблоки увеличивается на 1, как счётчик. Научите робота собрать все три яблока и следите за счётчиком:
Тест модуля
Чтобы завершить модуль, ответьте верно минимум на 3 из 4 вопросов.
Условия (если...)
Робот принимает решение
До сих пор робот выполнял команды вслепую. Но настоящие программы умеют смотреть и принимать решения: «если что-то произошло, сделай это; иначе сделай другое». Это называется условием.
Повседневный пример — светофор: «если свет красный — стой; если зелёный — иди». Робот тоже «видит», что впереди, и в зависимости от этого выбирает путь. Ниже два случая подсвечиваются по очереди:
Управление с помощью условия
Теперь робот может попасть в две разные ситуации, но заранее не знает, в какую именно. Составьте одну программу так, чтобы она работала в обеих ситуациях. Секрет: используйте условие «если впереди стена, поверни направо».
Переключайте случаи кнопкой «Ситуация A / B» выше. Одна программа (без изменений) должна решать оба.
Тест модуля
Чтобы открыть следующий модуль, ответьте верно минимум на 3 из 4 вопросов.
Повторение (циклы)
Одно действие много раз
Иногда одну команду приходится писать много раз подряд. Цикл (повторение) сокращает это: «повтори 6 раз: вперёд» означает выполнить «вперёд» 6 раз.
Ниже оба варианта дают одинаковый результат, но цикл гораздо короче:
Робот ниже идёт с помощью цикла. Счётчик цикла растёт с каждым повтором (например 1/5, 2/5 ...):
Управление с помощью цикла
Доведите робота до яблока, но путь длинный. Вместо того чтобы писать «вперёд» много раз, используйте цикл: нажмите кнопку «повтори» и подстройте число кнопками − / +.
Тест модуля
Чтобы завершить модуль, ответьте верно минимум на 3 из 4 вопросов.
Функции
Давать командам имя
Иногда группу команд приходится использовать снова и снова. Если собрать их под одним именем, получается функция. Потом вы просто «вызываете» имя, и вся группа выполняется.
Повседневный пример: сказав «завари чай», вы запускаете все шаги сами собой. Ниже функция stupenka() даёт имя действию подъёма на одну «ступеньку»:
Робот ниже поднимается по ступенькам, вызывая stupenka(). При вызове блок функции подсвечивается:
Управление с помощью функции
Роботу нужно подняться по лестнице. Каждая ступенька — одно и то же действие, то есть stupenka(). Вместо того чтобы каждый раз переписывать четыре команды, вызывайте функцию. Нажмите кнопку «stupenka()» несколько раз и заберите яблоко.
Тест модуля
Чтобы завершить модуль, ответьте верно минимум на 3 из 4 вопросов.
Ошибки и отладка
Что такое ошибка и как её найти
Каждый программист допускает ошибки — это нормально. Если программа не работает или даёт неверный результат, значит в ней есть ошибка (по-английски «bug»). Процесс поиска и исправления ошибки называется отладкой (debugging).
Если робот не добрался до яблока или врезался в препятствие, это значит, что в программе есть ошибка. Хороший программист не паникует, а находит ошибку по следующим шагам:
Найдите и исправьте ошибку
В программе ниже есть ошибка: робот врезается в препятствие, не дойдя до яблока. Сначала посмотрите с помощью «Запустить», где он останавливается, при необходимости проверьте кнопкой «Шаг». Ошибка — одно лишнее «вперёд» в первой строке. Нажмите на лишнюю команду, чтобы удалить её, и запустите снова.
Тест модуля
Чтобы завершить модуль, ответьте верно минимум на 3 из 4 вопросов.
Постепенно усложняется
10 лабиринтов, каждый сложнее предыдущего. Решайте каждый уровень и открывайте следующий. Здесь вы используете все команды, которые изучили.
Создайте свой лабиринт
Здесь нет ни оценок, ни ограничений. Сначала в режиме Создать лабиринт нажимайте на клетки, размечая стены, яблоки и место робота. Затем перейдите в режим Программирование и, используя все изученные команды, управляйте роботом и решите поле.
За полное прохождение курса
Введите своё имя, посмотрите персональный сертификат о прохождении курса «Введение в программирование», включая испытание из 10 уровней, и скачайте его как изображение.