Пять лабораторий, по четыре задания. В каждом опыте: прогноз → исполнение → сохранение → объяснение. Полные формулировки совпадают с интерфейсом. Для печати используйте функцию печати браузера.
01 / Рука уходит. Запись остаётся.
Нарисовать → увидеть программу → наблюдать исполнение → изменить и предсказать.
1.1 · Нарисовать и записать
На поле 20×20 нарисуйте знак. Нажмите «Получить программу жестов»: запись сохраняет каждый ваш переворот. Запустите её с белого поля. Для быстрого повторения используйте «До следующего FLIP» или быстрый темп; нужный участок пройдите по шагам. Сохраните рисунок и программу.
Вопрос: Почему повторный запуск должен начинаться с тех же исходных фишек?
Сдать: Нарисованный знак воспроизведён программой; сохранён рецепт и объяснены начальные условия.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
1.2 · Буква A: короткая программа
Теперь поле всего 5×7. Справа от пустых фишек всё время виден образец A. Программа уже подготовлена: прочитайте её, предскажите действие выбранной строки и запустите. RIGHT 4 означает четыре обычных движения. Наблюдайте связь строки, прочитанного бита, правила и головки. Сохраните остановку и продолжите из файла.
Вопрос: Какая строка программы управляет головкой? Почему строк редактора меньше, чем машинных действий?
Сдать: Получена A из 35 фишек; найдена связь исходной строки с командой; остановка восстановлена.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
1.3 · Изменить и предсказать
В заготовке A пропущена одна фишка перекладины. Сначала предскажите, где будет разрыв. Исполните программу, найдите нужную строку и исправьте её. Можно вставлять команды кнопками и задавать число повторов. Сохраните исходный и исправленный варианты.
Вопрос: Какое конкретное изменение записи исправило рисунок?
Сдать: Разрыв найден и исправлен; сохранены две версии и сравнение с прогнозом.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
1.4 · Свой знак без рисования
Поле остаётся 5×7; мышь фишки не меняет. Выберите образец H, A или стрелку и допишите короткую программу. Первый штрих H уже начат. Используйте повтор движений и большой редактор. Сохраните рецепт, откройте его и повторите свой результат.
Вопрос: Чем сохранённая программа отличается от готового изображения?
Сдать: Нужный знак построен только командами, перенесён файлом и повторён.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
02 / Behind the screen / за экраном
16 бит выбирают запись таблицы. Запись хранит рисунок, из которого собирается программа рисования.
2.1 · Написать кодами
Введите ABBA или свою строку из 3–8 знаков. «Подготовить строку» создаёт программу записи UTF-16 на пустую ленту. Выполните её. Затем запустите программу рисунка выбранного глифа.
Вопрос: Где находятся 16 бит кода, а где 128 фишек рисунка?
Сдать: Есть выполненная программа записи строки и отдельное исполнение глифа.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
2.2 · Изменить код
После исполнения строки нажмите «Показать DATA без перезаписи»: полученные коды станут начальной лентой. В её редакторе измените один бит кода A и примените ленту. Сопоставьте полученный код с экраном. Попробуйте 😀: это две кодовые единицы и один знак.
Вопрос: Почему 16 бит не означают, что любой знак Unicode занимает ровно 16 бит?
Сдать: Записаны коды до/после; объяснена суррогатная пара.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
2.3 · Своя буква
Выберите A в редакторе таблицы. Нарисуйте собственный вариант 8×16. Сохраните рисунок в таблицу. Покажите ту же строку: все A изменят начертание, их код останется прежним.
Вопрос: Что изменилось: сообщение, таблица или оба объекта?
Сдать: Изменён глиф, сохранён исходный код и экспортирована таблица.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
2.4 · Перенести алфавит
Создайте ещё два начертания; при желании используйте U+E000. Сохраните проект и таблицу. Откройте их в другом окне и повторно исполните строку и глиф.
Вопрос: Какие файлы нужны получателю, чтобы увидеть ваши буквы?
Сдать: Переносимый проект с текстом, таблицей и выполненными программами.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
03 / Символ становится условием
Одна и та же операция читает бит до действия. Два адреса превращают прочитанное в выбор.
3.1 · Ноль или один
Загрузите заготовку: FLIP выбирает HALT при прежнем 0 и LEFT при прежней 1. Выполните прибавление единицы к 0111 по шагам. Повторите для 0100.
Вопрос: Где хранится перенос, если в языке нет команды ADD?
Сдать: Получены 1000 и 0101; объяснён выбор адреса по прежнему биту.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
3.2 · Разделить знаки
Введите A3+= и подготовьте распознаватель. Выполните его. Четыре флага для каждого знака означают: буква, цифра, операция, завершение.
Вопрос: Что программа делает с ? и чем = отличается от конца самой программы?
Сдать: Правильные флаги для A, 3, +, = и неизвестного знака.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
3.3 · Внешность и назначение
Измените рисунок + в сохранённой таблице глифов. Запустите прежний распознаватель снова. Найдите блок, в котором проверяется код операции.
Вопрос: Почему изменение внешности знака не меняет результат распознавания?
Сдать: Два начертания, одинаковый код и одинаковый флаг операции.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
3.4 · Специальный знак
Испытайте Ж7-= и a?+=. Поставьте остановку в блоке распознавания, сохраните и восстановите её. Опишите, как четыре флага можно использовать в следующем алгоритме.
Вопрос: Какие классы распознаёт именно наша программа, а не весь Unicode?
Сдать: Два протокола; указаны ограничения латиницей, русскими буквами, цифрами 0–9, +, -, =.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
04 / Калькулятор, который не умеет складывать
В машине нет сложения. Перенос и заём выполняет программа из переворотов, движений и переходов.
4.1 · Перенос
Загрузите короткую заготовку 0111 → 1000. Пройдите все шаги. Попробуйте 1111: на конечной учебной ленте перенос упрётся в левую границу.
Вопрос: Чем ограничение нашей памяти отличается от логики алгоритма?
Сдать: Трасса 0111 → 1000 и объяснение переполнения.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
4.2 · Сложение двух чисел
Введите 3+2=, подготовьте калькулятор и выполните его. Изучите регистры A и B и карту программы. Повторите 9+9=.
Вопрос: Почему код символа 3 равен 51, а число три равно 3?
Сдать: Результаты 5 и 18; объяснено извлечение числа из кода.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
4.3 · Заём и знак
Выполните 8-3=, 3-8=, 0-0=. Остановитесь перед формированием кодов результата, сохраните и продолжите из файла.
Вопрос: Где хранится знак отрицательного результата?
Сдать: Результаты 5, -5 и 0, проверенная остановка.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
4.4 · Проверить границы
Испытайте 2*3=, A+1=, 9-0=. Измените одну инструкцию в копии программы и покажите, какой тест обнаружит ошибку.
Вопрос: Почему знак ?? является результатом алгоритма проверки, а не вычислением выражения браузером?
Сдать: Таблица тестов, испорченная и исправленная версии программы.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
05 / Рисунок начинает жить
Готовая программа читает восемь соседей каждой клетки. Поле 20×20 замыкается в тор.
5.1 · Неподвижность и ритм
Загрузите блок, затем мигалку. Шагайте поколениями. Сохраните оба опыта. Перенесите мигалку через край поля: противоположная сторона является соседней.
Вопрос: Чем первое повторение отличается от исчезновения?
Сдать: Блок: период 1; мигалка: период 2; проверен переход через край.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
5.2 · Долгая жизнь
Начните с не более 8 живых клеток. Ищите конфигурацию с большим переходным участком до первого повтора. Для каждого кандидата наблюдайте не менее 100 поколений или до повтора. Сохраняйте лучшие рецепты.
Вопрос: Означает ли отсутствие повтора за 100 поколений, что его не будет никогда?
Сдать: Не менее трёх кандидатов; начальная численность, горизонт наблюдения и обнаруженный период либо «не найден».
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
5.3 · Одна фишка меняет будущее
Сохраните исходный опыт. Измените ровно одну фишку и сохраните второй. Сравните численность и время до повтора.
Вопрос: Какие начальные условия вы удержали неизменными?
Сдать: Два рецепта, отличающиеся одним битом; сравнение истории.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________
5.4 · Внутри поколения
Выберите клетку. Нажмите «К решению клетки», рассмотрите подсветку восьми соседей и счёт в состоянии программы. Выполните решение. Остановитесь посередине поколения, сохраните и восстановите.
Вопрос: Почему нельзя сразу менять текущий слой A, пока ещё не проверены остальные клетки?
Сдать: Объяснение рождения/сохранения/гибели; совпадающий результат после восстановления.
Скачать заготовку JSON · Открыть лабораторию
Файл опыта: __________ Прогноз: __________ Наблюдение и вывод: __________