Skip to content
8. Интеграция и пробный тур

8. Интеграция и пробный тур

Занятия 10–12. Слепые задачи, пробный тур, пост-разбор

Занятие 10. Слепые задачи: метод разбора за 10 минут

Цель занятия: обучающиеся раскладывают незнакомую мини-задачу на «ввод → обработка → вывод», находят её компетенцию и таблицу баллов и оценивают риски попытки.

Разминка: кумулятивный квиз (10 мин, занятия 2–9)

  1. Медиана показаний {14, 15, 14, 90, 15} — чему равна и почему 90 не мешает?
  2. Порог отражения при W=78, B=12?
  3. Стрелка на 135°, шкала из 8 секторов — цифра?
  4. (A + B/4)·A при A=4, B=2?
  5. −6 // 4 и int(−6/4)?
  6. Таблица (B И A) ИЛИ НЕ A: строка, где результат 0?
  7. Что делает Задание 4 при n=0?
  8. Три события, оплачиваемые по 5 баллов независимо от вычислений?

Разбор (worked example): протокол разбора незнакомой задачи

На турнире вы получите условие впервые. Метод — таблица разбора, заполняется до открытия среды программирования:

ВопросОтвет по условию
Ввод: чем и что вводится?датчик/карточки/энкодер/кнопки/ГСЧ; диапазон; кто командует
Обработка: формула/свойство/логика?выписать со скобками; отметить / vs //; особый случай (ноль?)
Вывод: канал и формат?экран/консоль/цвет/звук/стрелка; 0/1 или ДА/НЕТ; сколько секунд держать
Протокол: перезапуск? попытки? порядок событий?из условия и общих правил (2 попытки, лучшая в зачёт)
Таблица баллов: где «дешёвые» баллы?выводы введённых значений — забрать даже при сомнении в формуле
Рискикалибровка, дребезг, ноль, единицы измерения, формат

Меню задач (регламент разрешает одну программу с запуском по кнопке): держите заготовку — левая кнопка листает номер задачи на экране, правая запускает выбранную. Это экономит минуты на перезаливке между сдачами.

from hub import button, light_matrix
import runloop

async def wait_press(b):
    while not button.pressed(b):
        await runloop.sleep_ms(10)
    while button.pressed(b):
        await runloop.sleep_ms(10)

async def zadacha_1(): ...   # сюда встают решения дня
async def zadacha_2(): ...
async def zadacha_3(): ...
ZADACHI = [zadacha_1, zadacha_2, zadacha_3]

async def main():
    i = 0
    while True:
        await light_matrix.write(str(i + 1))
        if button.pressed(button.LEFT):
            await wait_press(button.LEFT)
            i = (i + 1) % len(ZADACHI)
        if button.pressed(button.RIGHT):
            await wait_press(button.RIGHT)
            await ZADACHI[i]()
        await runloop.sleep_ms(50)
runloop.run(main())

Практика: три слепые задачи

Наставник выдаёт условия, собранные из компетенций (не совпадающие с Заданиями 1–4 дословно), например: «объект в одной из 4 зон → номер зоны звуком: N коротких сигналов»; «ввести A кнопками (счёт нажатий), B — карточками; вывести ДА, если A·B делится на 3»; «ГСЧ 1–20; чётное — стрелка на “+”, нечётное — на “−”; вывести A % 4 на экран». Для каждой — таблица разбора за 10 минут (проверяется до кода), затем одна задача по выбору доводится до сдачи на время (30 минут).

Мини-проверка выхода

Три таблицы разбора без пропущенных строк; одна задача сдана партнёру-судье в лимит.


Занятие 11. Пробный тур

Цель занятия: обучающиеся сдают 4 мини-задачи по протоколу турнира. Итоговое оценивание модуля.

Регламент тура (условия, приближенные к реальным)

Выдача заданий

Утро тура: пакет из 4 мини-задач выдаётся всем одновременно. Состав собирается наставником из компетенций 1–6 заново (Задания 1–4 Приложения 1 можно использовать как одну-две задачи из четырёх, остальные — новые). Поля, стенка, призма, карточки — по Приложениям 1–2.

Подготовка

Ограниченное время на разбор, программирование и калибровку на рабочем месте (рекомендация: 2–2,5 часа, уточняется по положению конкретного турнира). Наставник не консультирует — только отвечает на вопросы о процедуре, как судья.

Сдача

Каждая мини-задача сдаётся отдельно, в любом порядке, 2 попытки, в зачёт лучшая. Судья ведёт протокол по таблицам баллов регламента; события фиксируются в порядке условия.

Фиксация

По каждой попытке — строка протокола: задача, попытка, событие → получено/потеряно баллов, причина потери (калибровка / протокол / формула / формат / конструкция).

Оценка модуля: баллы регламента + тренировочная рубрика сдачи (см. главную страницу). 12+ из 16 по рубрике и ≥70% суммы баллов тура — готовность подтверждена; иначе занятие 12 фокусируется на западающих задачах.

Чек-лист дня турнира (собрать с вечера)

  • Устройство в сборе + запасные крепления датчиков и детали для шкалы/стрелки (компетенция 7: могут попросить дверь, шлагбаум, крышку — берите балки, оси, картон, скотч, ножницы);
  • Ноутбук заряжен, среда открывается офлайн, кабель + запасной;
  • Хаб заряжен на 100%, зарядка с собой;
  • Шаблоны в среде: median_sm, refl_median, wait_press, encoder_digit, show5, меню задач;
  • Свои поля и игровые элементы для тренировки в зоне ожидания;
  • Ритуалы на месте: калибровка отражения; совмещение нулевой метки мотора и шкалы; проверка -1 датчика расстояния;
  • Правило попыток: первая попытка — только после полного прогона у себя на столе; «дешёвые» баллы (вывод введённых значений) забираем даже при сомнении в формуле.

Занятие 12. Пост-разбор и доводка

Цель занятия: обучающиеся находят причину каждой потери баллов на туре и чинят решение.

Разминка-вспоминание (5 мин)

Три вопроса наставника строятся из реальных потерь тура (например: «команда X потеряла 10 баллов на втором сравнении Задания 1 — назовите две возможные причины»).

Основная активность: таблица «ошибка → причина → исправление»

Каждая команда по своему протоколу тура: (1) выписывает каждую потерянную строку баллов; (2) классифицирует причину — калибровка / протокол сдачи / формула-типы / формат вывода / конструкция / стресс-тайминг; (3) чинит код или процедуру; (4) пересдаёт слабую задачу наставнику-судье. Групповой итог — топ-3 причины потерь группы → они уходят в раздел «Данные и итерация» модуля.

Рефлексия (завершение по Такману)

Каждый участник письменно: что на туре сработало из тренировочных ритуалов; что буду делать иначе в первый час реального турнира; какая компетенция всё ещё «жёлтая». Наставник переводит «жёлтые» компетенции в план самоподготовки до даты турнира: по одной мини-задаче в неделю из соответствующего раздела модуля.

Типичные потери пробных туров (проверяйте свои в первую очередь): пропущенная калибровка отражения на месте; сравнение мм с см; ноль, ушедший в ветку «чётное»; вывод короче 5 секунд; перезапуск там, где он запрещён; сбитая нулевая метка шкалы после переноски устройства.

Уровни сложности