| Этап
|
Что делает студент
|
Задача
|
| Use
|
запускает готовый артефакт как пользователь
|
наблюдение
|
| Understand
|
читает исходный код / wiki-текст, понимает структуру
|
анализ
|
| Remix
|
модифицирует артефакт под свою задачу / данные
|
творчество
|
| Document
|
описывает, что именно он изменил и зачем
|
рефлексия
|
| Demonstrate
|
создаёт страницу-демо с примерами использования
|
публикация
|
NetLogo
| Страница
|
Модель
|
Тип remix
|
| NetLogo_widgets
|
интерфейсные элементы
|
добавить процедуры, связанные с кнопками и слайдерами
|
| Netlogo_patches
|
работа с клетками
|
добавить команды для покраски / измерения патчей
|
| Черепашки NetLogo
|
работа с агентами
|
добавить создания и видоизменения агентов
|
| NetLogo links
|
работа с агентами
|
добавить создания и видоизменения агентов
|
| Ants
|
муравьи и феромоны
|
добавить сценарии исследования поведения колонии
|
- Структура remix-страницы NetLogo
| Раздел
|
Содержание
|
| Введение
|
краткое описание, чей это remix и зачем
|
| Встроенная модель
|
та же модель, что на исходной странице (через <netlogo model=> )
|
| Команды для Command Center
|
короткие фрагменты кода, которые читатель вводит в командную строку
|
| Процедуры для вкладки Code
|
более длинные фрагменты — процедуры, добавляемые в модель
|
| Вопросы для исследования
|
3–5 вопросов, на которые можно ответить с помощью этих команд
|
| Наблюдения
|
что студент заметил, запустив свои команды
|
- Примеры кода NetLogo для remix-страниц
ask patches [ set pcolor red ]
ask turtles [ fd 1 ]
ask turtles [ set color blue ]
show count turtles
ask patches with [pxcor > 0] [ set pcolor yellow ]
Такие команды читатель копирует прямо в Command Center запущенной модели (одной строкой) и сразу видит результат. Ключевое слово ask — основа обращения к агентам в NetLogo: оно адресует команды либо всем агентам, либо подмножеству. Точно так же как и ask в SMW.
to scatter-ants [n]
create-turtles n [
setxy random-xcor random-ycor
set color red
set shape "bug"
]
end
- Требования к remix-странице NetLogo
| Требование
|
Минимум
|
| Встроенная исходная модель
|
обязательна
|
| Команды для Command Center
|
не менее 3
|
| Процедуры для вкладки Code
|
не менее 2
|
| Вопросы для исследования
|
не менее 3
|
| Наблюдения / выводы
|
не менее 1 абзаца
|
Lua
| Модуль Lua
|
Что делает
|
Уровень
|
Module:Card
|
инфокарточка из именованных аргументов
|
вводный
|
| Модуль:SimpleGenerator
|
генерирует короткий псевдослучайный текст из двух заранее заданных предложений.
|
вводный
|
| Module:Aggregator
|
анализ wiki-страницы: слова, ссылки, заголовки
|
базовый
|
| Модуль:Statistics
|
используется для простых статистических расчётов по числовым данным, переданным в виде строки со значениями через запятую.
|
продвинутый
|
| Модуль:ScratchWikis
|
загружает данные из внешнего CSV‑файла и строит по ним либо сортируемую таблицу, либо граф связей на языке GraphViz.
|
продвинутый
|
- Требования к remix Lua
| Обязательное требование
|
Минимум
|
Личный remix-модуль Module:Name/Student
|
1
|
| Новые функции или режимы по сравнению с исходным
|
2
|
Страница документации /doc
|
1
|
| Страница-демо с примерами вызова
|
1
|
| Работоспособность на digida.mgpu.ru
|
обязательна
|
Пример remix-идеи для Lua
Исходный Module:Aggregator считает слова в wiki-тексте страницы. Remix Module:Aggregator/Ivanov добавляет два режима — templates (подсчёт шаблонов) и categories (подсчёт категорий):
local function countTemplates(text)
local n = 0
for _ in mw.ustring.gmatch(text, "{{[^}]+}}") do
n = n + 1
end
return n
end
- Сравнение направлений NetLogo <-> Lua ===
| Параметр
|
Lua + Scribunto
|
NetLogo
|
| Что ремиксит студент
|
код модуля
|
текст wiki-страницы вокруг модели
|
| Где живёт результат
|
Module:Name/Student
|
Page/Student
|
| Язык кода
|
Lua
|
NetLogo
|
| Что добавляется
|
новые функции / режимы
|
новые команды / процедуры
|
| Как читатель взаимодействует
|
вызывает модуль через #invoke
|
копирует команды в Command Center
|
| Минимальный remix
|
2 новые функции
|
3 команды + 2 процедуры
|
| Тип мышления
|
абстракция, функции
|
поведение, агенты
|