Обсуждение:Программирование (syllabus) 2026: различия между версиями

Материал из Поле цифровой дидактики
Полностью удалено содержимое страницы
Метка: очистка
 
Строка 1: Строка 1:
{| class="wikitable"
! Модуль !! Тематика !! Ключевые артефакты
|-
| 1. Введение в [[MediaWiki]] и [[Semantic MediaWiki]] || Структура вики, свойства и запросы ask, концепция активных эссе || Страницы курса, семантические свойства, простые ask-запросы
|-
| 2. Основы [[Lua]] и [[Scribunto]] || Синтаксис Lua, модули, вызов <nowiki>{{#invoke:}}</nowiki>|| 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
|}


=== Схема  ===
{| class="wikitable"
! Этап
! Что делает студент
! Когнитивная задача
|-
| Use
| запускает готовый артефакт как пользователь
| наблюдение
|-
| Understand
| читает исходный код / wiki-текст, понимает структуру
| анализ
|-
| Remix
| модифицирует артефакт под свою задачу / данные
| творчество
|-
| Document
| описывает, что именно он изменил и зачем
| рефлексия
|-
| Demonstrate
| создаёт страницу-демо с примерами использования
| публикация
|}
== Базовые ==
=== NetLogo ===
# [[NetLogo]]  — обзорная страница языка агентного моделирования;
# [[Netlogo patches]]  — пассивные агенты-клетки;
#  [[NetLogo widgets]] — кнопки, слайдеры, мониторы;
# [[Ants]] — пример полноценной модели (муравьи и феромоны).
В NetLogo-ветке студент не меняет саму модель, а обогащает вокруг неё текст wiki-страницы: добавляет готовые процедуры и команды, которые читатель может скопировать в Command Center или на вкладку Code работающей модели. То есть remix-страница NetLogo становится не новой моделью, а новым сценарием использования старой модели.
==== Основания  ====
{| class="wikitable"
! Страница
! Модель
! Тип remix
|-
| <[[Netlogo_patches]]
| работа с клетками
| добавить команды для покраски / измерения патчей
|-
| [[NetLogo_widgets]]
| интерфейсные элементы
| добавить процедуры, связанные с кнопками и слайдерами
|-
| [[Ants]]
| муравьи и феромоны
| добавить сценарии исследования поведения колонии
|}
==== Структура remix-страницы NetLogo ====
{| class="wikitable"
! Раздел
! Содержание
|-
| Введение
| краткое описание, чей это remix и зачем
|-
| Встроенная модель
| та же модель, что на исходной странице (через <code>&lt;iframe&gt;</code> или шаблон)
|-
| Команды для Command Center
| короткие фрагменты кода, которые читатель вводит в командную строку
|-
| Процедуры для вкладки Code
| более длинные фрагменты — процедуры, добавляемые в модель
|-
| Вопросы для исследования
| 3–5 вопросов, на которые можно ответить с помощью этих команд
|-
| Наблюдения
| что студент заметил, запустив свои команды
|}
==== Примеры кода NetLogo для remix-страниц ====
<syntaxhighlight lang="Lisp" line>
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 ]
</syntaxhighlight>
Такие команды читатель копирует прямо в Command Center запущенной модели (одной строкой) и сразу видит результат. Ключевое слово '''ask''' — основа обращения к  агентам в [[NetLogo]]: оно адресует команды либо всем агентам, либо подмножеству.  Точно так же как и ask в [[SMW]].
<syntaxhighlight lang="Lisp" line>
to scatter-ants [n]
  create-turtles n [
    setxy random-xcor random-ycor
    set color red
    set shape "bug"
  ]
end
</syntaxhighlight>
==== Требования к remix-странице NetLogo ====
{| class="wikitable"
! Требование
! Минимум
|-
| Встроенная исходная модель
| обязательна
|-
| Команды для Command Center
| не менее 3
|-
| Процедуры для вкладки Code
| не менее 2
|-
| Вопросы для исследования
| не менее 3
|-
| Наблюдения / выводы
| не менее 1 абзаца
|}
=== Lua ===
{| class="wikitable"
! Модуль
! Что делает
! Уровень
|-
| <code>Module:Card</code>
| инфокарточка из именованных аргументов
| вводный
|-
| <code>Module:Table</code>
| wikitable из списка
| вводный
|-
| <code>Module:Aggregator</code>
| анализ wiki-страницы: слова, ссылки, заголовки
| базовый
|-
| <code>Module:DatasetAggregator</code>
| анализ внешнего CSV (через External Data)
| продвинутый
|-
| <code>Module:Badge</code>
| цветные метки статуса
| вводный
|-
| <code>Module:ProgressBar</code>
| HTML-прогрессбар
| средний
|-
| <code>Module:Glossary</code>
| двухколоночный словарь из аргументов
| базовый
|}
=== Требования к [[remix]] Lua ===
{| class="wikitable"
! Обязательное требование
! Минимум
|-
| Личный remix-модуль <code>Module:Name/Student</code>
| 1
|-
| Новые функции или режимы по сравнению с исходным
| 2
|-
| Страница документации <code>/doc</code>
| 1
|-
| Страница-демо с примерами вызова
| 1
|-
| Работоспособность на digida.mgpu.ru
| обязательна
|}
Пример remix-идеи для Lua
Исходный <code>Module:Aggregator</code> считает слова в wiki-тексте страницы. Remix <code>Module:Aggregator/Ivanov</code> добавляет два режима — <code>templates</code> (подсчёт шаблонов) и <code>categories</code> (подсчёт категорий):
<syntaxhighlight lang="lua" line>
local function countTemplates(text)
  local n = 0
  for _ in mw.ustring.gmatch(text, "{{[^}]+}}") do
    n = n + 1
  end
  return n
end
</syntaxhighlight>
=== Сравнение направлений  NetLogo <-> Lua ===
{| class="wikitable"
! Параметр
! Lua + Scribunto
! NetLogo
|-
| Что ремиксит студент
| код модуля
| текст wiki-страницы вокруг модели
|-
| Где живёт результат
| <code>Module:Name/Student</code>
| <code>Page/Student</code>
|-
| Язык кода
| Lua
| NetLogo
|-
| Что добавляется
| новые функции / режимы
| новые команды / процедуры
|-
| Как читатель взаимодействует
| вызывает модуль через <code>#invoke</code>
| копирует команды в Command Center
|-
| Минимальный remix
| 2 новые функции
| 3 команды + 2 процедуры
|-
| Тип мышления
| [[абстракция]], [[функция|функции]]
| поведение, [[агент]]ы
|}

Текущая версия от 11:57, 20 апреля 2026