{
  "format": "rubrick-lesson",
  "formatVersion": 1,
  "exportedAt": "2026-11-06T20:21:16.191Z",
  "source": {
    "lessonId": "00000000-0000-4000-8001-556c17a1e3e6",
    "courseId": "00000000-0000-4000-8000-1193e3f22a29",
    "courseTitle": "Первые шаги",
    "ordering": 4,
    "updatedAt": "2026-09-27T10:47:11.667886+00:00"
  },
  "lessonTask": null,
  "lessonTaskSchemaVersion": null,
  "lesson": {
    "schemaVersion": 3,
    "id": "first-steps-04-square",
    "courseId": "first-steps",
    "order": 4,
    "title": "Квадрат",
    "summary": "Повторение: робот объезжает квадрат и возвращается на старт",
    "duration": 30,
    "mode": "blocks",
    "attachments": [],
    "sections": [
      {
        "kind": "intro",
        "body": "Повторение: робот объезжает квадрат и возвращается на старт\n\n### Чему научишься\n- Собрать программу с повторением\n- Увидеть, как накапливается ошибка\n- Добиться, чтобы робот вернулся близко к старту\n\n### Новое\n- Повторение вместо копирования одинаковых блоков\n- Одна и та же пара «проехать — повернуть», выполненная четыре раза, даёт квадрат\n- Маленькая ошибка угла накапливается за четыре повторения",
        "attachments": [],
        "steps": []
      },
      {
        "kind": "task",
        "body": "Проведи робота по квадрату со стороной 30 см так, чтобы он вернулся туда, откуда начал. Отметь старт мелом или бумажкой и проверь.\n\n### Результат\n- В программе есть повторение, а не четыре копии одних и тех же блоков\n- Робот прошёл замкнутый путь и вернулся близко к старту",
        "attachments": [],
        "steps": [
          {
            "id": "s1",
            "title": "Одна сторона",
            "body": "Сделай «проехать 30 см» и «повернуть налево 90°» — это одна сторона квадрата.",
            "attachments": []
          },
          {
            "id": "s2",
            "title": "Повтори четыре раза",
            "body": "Из категории «Управление» возьми блок повторения и положи внутрь эту пару команд.",
            "attachments": []
          },
          {
            "id": "s3",
            "title": "Отметь старт",
            "body": "Положи бумажку под робота перед запуском.",
            "attachments": []
          },
          {
            "id": "s4",
            "title": "Проверь возврат",
            "body": "Запусти и посмотри, насколько робот промахнулся мимо метки.",
            "attachments": []
          }
        ],
        "hints": [
          "Робот не возвращается на старт? Ошибка не в последнем повороте — она набиралась во всех четырёх. Уточни угол и проедь снова."
        ]
      },
      {
        "kind": "assembly",
        "body": "### Понадобится\n- Ноутбук с приложением ученика\n- Виртуальный или настоящий робот\n- Свободное место на полу примерно метр на метр\n\nТа же платформа. Освободи на полу квадрат примерно метр на метр.",
        "attachments": [],
        "steps": []
      },
      {
        "kind": "connection",
        "body": "",
        "attachments": [],
        "steps": []
      },
      {
        "kind": "example",
        "body": "### Что должно получиться\n- На карте движения видно, замкнулся ли квадрат",
        "attachments": [],
        "steps": [],
        "program": {
          "mode": "blocks",
          "python": "# Левое колесо — разъём D (1), правое — C (2).\nrobot.configure_drive(wheel_diameter_mm=43.2, track_width_mm=120, left_motor=1, right_motor=2)\n\nfor сторона in range(4):\n    robot.forward_cm(30)\n    robot.turn_left(90)\n\nrobot.stop()\n"
        }
      },
      {
        "kind": "next",
        "body": "",
        "attachments": [],
        "steps": []
      }
    ],
    "category": "Движение",
    "colour": "#FFF200"
  }
}