| Модуль |
Тематика |
Ключевые артефакты
|
| 1. Введение в MediaWiki и Semantic MediaWiki |
Структура вики, свойства и запросы ask, концепция активных эссе |
Страницы курса, семантические свойства, простые ask-запросы
|
| 2. Основы Lua и Scribunto |
Синтаксис Lua, модули, вызов {{#invoke:}} |
Module:Hello, простые функции, параметры шаблонов
|
| 3. Обработка семантических данных в Lua |
Получение и обработка результатов ask, генерация таблиц |
Модуль, генерирующий динамическое содержание по свойствам SMW
|
| 4. Scratch и визуальное программирование |
Связь блок-схем с кодомLua, переход от блоков к тексту |
Задания по переписыванию Scratch-программ на Lua
|
| 5. NetLogo и агентные модели |
Основы NetLogo, turtles/patches, модели экосистем и IoT |
Простая модель в NetLogo, описание в вики
|
| 6. Lua + NetLogo |
Экспорт/импорт параметров моделей через вики, сценарии активных эссе |
Страница с параметризацией модели, запуск и анализ результатов
|
| 7. Lua и IoT |
NodeMCU/ESP8266, базовые сценарии умного класса, связь с вики |
Мини-проект: датчик температуры и страница с данными
|
| 8. Итоговый проект активного эссе |
Комплексный проект по предметной области студента |
Активное эссе с ask, Lua-модулями, ссылками на модели NetLogo и/или IoT
|
Схема
| Этап
|
Что делает студент
|
Когнитивная задача
|
| Use
|
запускает готовый артефакт как пользователь
|
наблюдение
|
| Understand
|
читает исходный код / wiki-текст, понимает структуру
|
анализ
|
| Remix
|
модифицирует артефакт под свою задачу / данные
|
творчество
|
| Document
|
описывает, что именно он изменил и зачем
|
рефлексия
|
| Demonstrate
|
создаёт страницу-демо с примерами использования
|
публикация
|
Базовые
NetLogo
- NetLogo — обзорная страница языка агентного моделирования;
- Netlogo patches — пассивные агенты-клетки;
- NetLogo widgets — кнопки, слайдеры, мониторы;
- Ants — пример полноценной модели (муравьи и феромоны).
В NetLogo-ветке студент не меняет саму модель, а обогащает вокруг неё текст wiki-страницы: добавляет готовые процедуры и команды, которые читатель может скопировать в Command Center или на вкладку Code работающей модели. То есть remix-страница NetLogo становится не новой моделью, а новым сценарием использования старой модели.
Основания
| Страница
|
Модель
|
Тип remix
|
| <Netlogo_patches
|
работа с клетками
|
добавить команды для покраски / измерения патчей
|
| NetLogo_widgets
|
интерфейсные элементы
|
добавить процедуры, связанные с кнопками и слайдерами
|
| Ants
|
муравьи и феромоны
|
добавить сценарии исследования поведения колонии
|
Структура remix-страницы NetLogo
| Раздел
|
Содержание
|
| Введение
|
краткое описание, чей это remix и зачем
|
| Встроенная модель
|
та же модель, что на исходной странице (через <iframe> или шаблон)
|
| Команды для 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
| Модуль
|
Что делает
|
Уровень
|
Module:Card
|
инфокарточка из именованных аргументов
|
вводный
|
Module:Table
|
wikitable из списка
|
вводный
|
Module:Aggregator
|
анализ wiki-страницы: слова, ссылки, заголовки
|
базовый
|
Module:DatasetAggregator
|
анализ внешнего CSV (через External Data)
|
продвинутый
|
Module:Badge
|
цветные метки статуса
|
вводный
|
Module:ProgressBar
|
HTML-прогрессбар
|
средний
|
Module:Glossary
|
двухколоночный словарь из аргументов
|
базовый
|
| Обязательное требование
|
Минимум
|
Личный 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 процедуры
|
| Тип мышления
|
абстракция, функции
|
поведение, агенты
|