Программирование (syllabus) 2026

Материал из Поле цифровой дидактики
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)



Планируемые результаты обучения (Знать, Уметь, Владеть) Цель освоения дисциплины — формирование у студентов понимания общих принципов программирования в контексте цифровой дидактики на базе Semantic MediaWiki digida.mgpu.ru, с акцентом на создание активных эссе через комбинацию языков ask, Scratch, NetLogo, Lua и R.
Результаты обучения
  • Обучающийся понимает и умеет использовать базовые конструкции программирования в указанных языках и инструментах для обогащения вики-страниц динамическим контентом.
Знать
  • Основные типы данных (строки, массивы/списки, агенты/патчи) и их особенности в #ask, Scratch, NetLogo, Lua, R.
  • Основы визуального, процедурного и скриптового программирования в образовательных средах digida.mgpu.ru.
  • Особенности реализации программ в различных инструментах SMW (SyntaxHighlight для Lua, EmbedScratch для Scratch, NetLogo Web, #ask для семантических запросов).
Уметь
  • Выбирать подходящий инструмент программирования (ask для фильтрации данных, NetLogo для моделирования, Lua для модулей) в зависимости от задачи активного эссе.
  • Выполнять стандартные операции (ветвление, циклы, обработка строк и массивов) в каждом из языков.
  • Структурировать программы: создавать функции в NetLogo/Scratch, скрипты Lua для Scribunto, запросы #ask с форматтерами; работать с данными через R и MediaWiki API.
  • Находить ошибки, улучшать код, документировать программы в формате вики-страниц с SyntaxHighlight.
Владеть
  • Навыками совмещения нескольких языков (Lua-модуль с #ask, NetLogo-модель со Scratch, R-визуализациями) для создания интерактивных образовательных объектов.
  • Навыками совместной деятельности в Semantic MediaWiki: редактирование активных эссе, использование свойств страниц и запросов для коллективных проектов.
Содержание разделов курса
  1. Введение в программирование в цифровой дидактике (контекст digida.mgpu.ru и Semantic MediaWiki)
    • Результаты обучения и ключевые понятия (базовые конструкции, типы данных)
    • Обзор ресурсов (руководства SMW, NetLogo models, ScratchWiki, R для API)
    • Обзор инструментов (ask, SyntaxHighlight, EmbedScratch, NetLogo Web)
    • Обзор языков (ask, Scratch, NetLogo, Lua/Scribunto, R)
  2. Оператор ветвления в разных языках (Scratch if, NetLogo ifelse, Lua if, #ask фильтры)
  3. Циклические конструкции (NetLogo forever, Scratch forever, Lua for/while, R apply)
  4. Строковый тип данных (Lua string, R character, #ask текст, Scratch join)
  5. Массивы и списки (NetLogo lists/agentsets, Scratch lists, R vectors, #ask results)
  6. Lua-модули Scribunto для динамических страниц (примеры с #ask)
  7. R для анализа данных SMW (MediaWiki API, визуализация ggplot2)
  8. Мини-проекты и активные эссе (комбинация языков, peer-review)
  9. Итоговый проект и проверка результатов обучения
Видео запись
Среды и средства, которые поддерживают учебный курс Scratch, NetLogo, Lua, R, Активное эссе
Книги, на которых основывается учебный курс 20 things to do, Agent-Based and Individual-Based Modeling: A Practical Introduction, Mindstorms, Thinking Like a Tree

Описание курса

Курс "Программирование" начинается с введения в контекст цифровой дидактики: зачем программирование на digida.mgpu.ru, обзор инструментов (#ask, Scratch, NetLogo, Lua/Scribunto, R via API) и результатов обучения (понимание базовых конструкций в разных языках, создание активных эссе). Далее следует модуль ключевых понятий: типы данных (строки, массивы/списки, агенты/патчи), конструкции (ветвление, циклы) и ресурсы (руководства по SMW, NetLogo models, ScratchWiki, R for MediaWiki).

Основной поток разбит на четыре блока по базовым конструкциям
  1. демонстрация ветвления/циклов/строк/массивов в Scratch (визуальные блоки), NetLogo (агентные циклы), Lua (скрипты), ask (запросы как циклы), R (векторизация);
  2. задания на переписывание одной идеи разными способами; ресурсы вроде SyntaxHighlight примеров и PlantUML-диаграмм алгоритмов.

Параллельно вводятся Lua-модули для динамики страниц и R для анализа данных из SMW (MediaWiki API, визуализации ggplot2).

Каждый блок заканчивается мини-проектом: активное эссе с встраиванием кода (EmbedScratch + NetLogo ask таблица).

Финал — обобщение: создание комплексного эссе, проверка результатов обучения через самооценку и peer-review в SMW; если цели достигнуты, студенты владеют навыками многозначного программирования для образовательных объектов.

Последовательность курса

  1. Введение в программирование в цифровой дидактике (контекст digida.mgpu.ru и Semantic MediaWiki)
    • Результаты обучения и ключевые понятия (базовые конструкции, типы данных)
    • Обзор ресурсов (руководства SMW, NetLogo models, Scratch, R для API)
    • Обзор инструментов (аsk, SyntaxHighlight, EmbedScratch, NetLogo Web)
    • Обзор языков (ask, Scratch, NetLogo, Lua/Scribunto, R)
  2. Оператор ветвления в разных языках (Scratch if, NetLogo ifelse, Lua if, ask фильтры)
  3. Циклические конструкции (NetLogo forever, Scratch forever, Lua for/while, R apply)
  4. Строковый тип данных (Lua string, R character, #ask текст, Scratch join)
  5. Массивы и списки (NetLogo lists/agentsets, Scratch lists, R vectors, #ask results)
  6. Lua-модули Scribunto для динамических страниц (примеры с #ask)
  7. R для анализа данных SMW (MediaWiki API, визуализация ggplot2)
  8. Мини-проекты и активные эссе (комбинация языков, peer-review)
  9. Итоговый проект и проверка результатов обучения


Lua

Критерии оценки по дисциплине

Оценивание по курсу программирование (syllabus) 2026

Этап Что делает студент Задача
Use запускает готовый артефакт как пользователь наблюдение
Understand читает исходный код / wiki-текст, понимает структуру анализ
Remix модифицирует артефакт под свою задачу / данные творчество
Document описывает, что именно он изменил и зачем рефлексия
Demonstrate создаёт страницу-демо с примерами использования публикация
Страница Модель Тип 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 процедуры
Тип мышления абстракция, функции поведение, агенты

Общие правила оценивания активного эссе

Общие критерии оценивания активного эссе

Активное эссе — это интерактивная вики-страница, создаваемая студентом на поле цифровой дидактики с использованием возможностей семантической вики-среды. В отличие от традиционного эссе, активное эссе является «живым» документом, содержащим не только текст, но и программный код, интерактивные модели, структурированные данные, диаграммы и визуализации.

Оценочное средство 1: Активное эссе (страница SMW)

Критерий Показатели Баллы Макс.
А. Содержательные критерии
1 Содержание и соответствие теме дисциплины Эссе раскрывает заявленную тему, содержит анализ ключевых понятий дисциплины, демонстрирует понимание теоретических основ. Текст логически структурирован: введение, основная часть, выводы. Использована профессиональная терминология. Имеются ссылки на источники. 0–5 5
2 Собственная позиция и аргументация Автор формулирует собственную точку зрения, приводит аргументы и примеры из практики, сравнивает различные подходы, делает обоснованные выводы. 0–3 3
3 Научная корректность Использованы корректные определения и терминология, ссылки на научные источники, отсутствуют фактические ошибки. 0–2 2
Б. Критерии использования возможностей цифровой среды
4 Использование структурных диаграмм

Построение диаграмм (блок-схемы, UML, графы, диаграммы последовательностей и т.д.) средствами PlantUML, Mermaid или Graphviz

Диаграммы помогают визуализировать абстрактные концепции: архитектуру систем, алгоритмы, потоки данных, связи между понятиями. Оценивается: корректность нотации, информативность диаграммы, обоснованность выбора типа диаграммы для конкретной задачи. 0–3 3
5 Использование семантических возможностей среды

Семантические запросы ({{#ask:}}), конструирование вопросов к данным, включение форм, географических карт, лент времени

Семантические запросы позволяют строить динамические таблицы, выборки и каталоги на основе структурированных свойств страниц. Формы обеспечивают стандартизированный ввод данных. Карты и ленты времени визуализируют пространственные и временны́е отношения. Оценивается: корректность запросов, осмысленность выборки, информативность визуализации. 0–3 3
6 Включение математических или химических формул

Использование тегов <math></math> или <chem></chem>

Формулы обеспечивают точную и читаемую запись математических моделей, уравнений и химических реакций. Включение формул демонстрирует владение формальным языком дисциплины и связывает теоретические основы с практикой. Оценивается: корректность записи, осмысленность использования, связь с текстом. 0–2 2
7 Включение программного кода

Использование тегов <syntaxhighlight lang="..." line>

Программный код в эссе демонстрирует практические навыки: способность автоматизировать обработку данных, реализовать алгоритмы, воспроизвести результаты анализа. Подсветка синтаксиса и нумерация строк повышают читаемость. Оценивается: работоспособность кода, наличие комментариев, связь с темой, оригинальность решения. 0–3 3
8 Включение интерактивных приложений

Встраивание проектов Snap!, Scratch или иных визуальных программных сред

Интерактивные приложения позволяют читателю эссе непосредственно взаимодействовать с программными моделями: запускать симуляции, менять параметры, наблюдать результаты. Это превращает эссе из статического текста в интерактивную учебную среду. Оценивается: работоспособность приложения, связь с темой, уровень интерактивности. 0–3 3
9 Работа с внешними данными

Подключение внешних источников данных, их фильтрация и представление в виде таблиц (расширение External Data)

Подключение внешних данных позволяет работать с реальными, актуальными наборами данных (открытые данные, API, базы данных), а не с искусственными примерами. Фильтрация и представление в таблицах демонстрируют навыки работы с данными. Оценивается: релевантность источника, корректность фильтрации, информативность представления. 0–3 3
10 Включение многоагентных моделей NetLogo

Встраивание моделей NetLogo для демонстрации агентных симуляций

Многоагентные модели позволяют исследовать сложные системы: показать, как простые правила поведения агентов порождают макроуровневые паттерны. Встраивание модели в эссе даёт читателю возможность запустить симуляцию, изменить параметры и самостоятельно исследовать результаты. Оценивается: соответствие модели теме, корректность настройки параметров, наличие пояснений. 0–3 3
Итого максимум 30

Шкала перевода баллов:

Баллы Оценка
25–30 Отлично (A)
19–24 Хорошо (B)
13–18 Удовлетворительно (C)
0–12 Неудовлетворительно (F)

Оценочное средство 2: История вклада участника

Критерий Показатели Баллы Макс.
1 Равномерность вклада по времени Работа над эссе велась регулярно на протяжении всего периода обучения, а не концентрировалась в последний момент. История правок показывает итеративное развитие текста: от замысла к черновику, от черновика к финальной версии. Отсутствуют признаки массового копирования (крупные единовременные вставки неоригинального текста). 0–3 3
2 Качество итерационного развития Каждая правка содержит содержательные изменения (дополнение аргументации, улучшение кода, добавление визуализаций), а не формальные косметические правки. Прослеживается логика развития работы. 0–2 2
3 Участие в обсуждении Участник вносил вклад в обсуждение на страницах обсуждения эссе однокурсников: задавал вопросы, предлагал улучшения, давал конструктивную обратную связь. 0–2 2
Итого максимум 7

Оценочное средство 3: Зачёт (демонстрация активного эссе)

Критерий Показатели Баллы Макс.
1 Знание программного материала Знание программного материала и структуры дисциплины, умение показать свои знания при демонстрации активного эссе. Свободная ориентация в содержании эссе, способность ответить на вопросы по материалу. 0–2 2
2 Владение методологией дисциплины в цифровой среде Демонстрация уверенного владения инструментами цифровой среды, использованными в эссе: объяснение выбора конкретных средств (диаграммы, код, модели, запросы), умение модифицировать элементы эссе в реальном времени. 0–2 2
3 Презентация и ответы на вопросы Логичность изложения, ясность речи, способность аргументировать свои решения, готовность к дискуссии. 0–1 1
Итого максимум 5

Зачёт выставляется при суммарном балле не менее 3 из 5.

Итоговая оценка по дисциплине

Компонент Максимум Вес
Активное эссе 30 60%
История вклада 7 20%
Зачёт 5 20%
Итого 42 100%