1. Работа с аналоговым физическим роботом принципиально отличается от работы с дискретным (работющим по клеточкам) нарисованным роботом. Главным стоппером тут оказалась математика: умение удержать в голове длинные цепочки преобразований величин типа число оборотов--диаметр колеса--пройденное расстояние--время--скорость. До программирования (алгоритмики) дело не доходило, основное время занятий уходило на а) моделирование (понимание физики того, что нужно сделать, т.е. перевода ситуации в математическую задачу) и б) решение поставленной математической задачи (определение того, что на что в каком порядке делить и умножать, как это записать).
2. Встал вопрос: продолжать ли далее в том же духе "сверхкомплексного образования" на примере программирования робота или же вернуться к последовательному тренингу отдельных "ступенек" этой "сверхкомплексности"? Решили вернуться -- и даже не в моделирование (т.е. постановка задачи: выделение объектов из окружающего мира и их связей), а в работу с готовыми задачами, т.е. курс математики. Критерий останова: пока решение задач не будет на уровне автоматизма.
3. Моя жена (вспоминая свой опыт занятия 2-3 мест на московских олимпиадах по математике) сформулировала что-то подобное древним дискуссиям о разнице между "программой" и "продуктом". Суть тех дискуссий сводилась к тому, что свежезаработавшую программу довести до уровня отчуждаемого продукта можно минимум за вдвое большее время, чем потребовалось на разработку программы. То же самое, говорит жена, с освоением школьной программы: "пройти программу 5-го класса" означает, что дитятко понимает все тамошние концепции, и его пыхтение над задачами для пятого класса в среднем успешно. Но это некачественное образование. Качественное -- это когда решение задач происходит на уровне автоматизма. Это требует вдвое больше времени, чем "разобраться" или "пройти". По этим критериям дитятко у меня сейчас "прошел" в математике где-то пятый класс (может решать тамошние задачи, размышляя про них некоторое время), но вот "автоматизм" у него где-то на уровне середины третьего класса, то на решение любой задачки для середины третьего класса он тратит ноль времени, и решает такую задачку в уме.
4. Для уверенного программирования физического робота нужно знание математики примерно на уровне 5-7 класса. Конструирование (физического робота) и моделирование (целевые навыки курса робототехники, ибо алгоритмика уже более-менее освоена на примере Ершола, и целью является только перенос знания в контекст другого синтаксиса) станут при этом занимать 100% времени образования, а не только часть урока -- за счёт того, что математическая часть будет сведена по времени к нулю, перейдёт в автоматизм.
5. Текущими темпами мы вернемся к программированию робота где-то летом. А пока дитятко решает все подряд без пропусков задачки из учебника Гейдмана сотоварищи, а также примеры на многозначные числа из избранных тренажёров. Этим занимается жена. А я по освободившимся субботам начал ездить в Долгопрудный читать лекции по системной инженерии.
6. Я понимаю, что сторонников "обучения на проектах" есть огромное количество, и у них есть контр-аргументы и контр-примеры. Но и у меня есть аргументы и примеры. Так что я пока с роботом подожду, а потом робототехнику я буду использовать именно как обучение моделированию (отражению реальности в формальных системах, "наука") и конструированию (создание системы с какой-то целевой функцией). Это сложно, это потребует много времени, и на освоение математики в этот момент времени будет безумно жаль. Ибо математику освоить можно по-другому, быстрее и надёжнее.
7.