Цифровые следы командности: сравнительный анализ Scratch-вики и студий

Материал из Поле цифровой дидактики


Понятия

 Description
Командная наукаScience of Team Science – наука о командных научных исследованиях. Эта область представляет одно из направлений гуманитарных вычислительных наук, цифровой и сетевой социологии. «Командная наука» исследует поведение людей в современных командах, сложных технологических средах, которые во многом определяют то, как протекает совместная работа и совместное обучение.
КомандностьКомандность (teamwork, teamness) — компетенция, которая декларируется обязательной в образовательных стандартах всех уровней, устойчиво входит в топ-3 требований работодателей. Командная работа входит в тройку компетенций, наиболее востребованных работодателями — наряду с решением проблем и письменной коммуникацией. Навыки командности не автоматизируются ИИ, а усиливаются им. При этом командность остаётся практически неизмеренной в реальных учебных процессах.
МутуализмМутуали́зм — широко распространённая форма взаимополезного сожительства, когда присутствие партнёра становится обязательным условием существования каждого из них. Преимущества, которые получает организм, вступающий в мутуалистические отношения, могут быть различны. Часто по крайней мере один из партнёров использует другого в качестве поставщика пищи, тогда как второй получает защиту от врагов или благоприятные для роста и размножения условия. В других случаях вид, выигрывающий в пище, освобождает партнёра от паразитов, опыляет растения или распространяет семена. Каждый из участников мутуалистической пары действует эгоистично, и выгодные отношения возникают лишь потому, что получаемая польза перевешивает затраты, требуемые на поддержание взаимоотношений.
Сообщество практикиМножество субъектов, объединенных общими интересами, объектами и общей продуктивной деятельностью. Теория «сообщества практики» или «сообщество обмена знаниями» впервые использовали Дж. Лав и Э. Венгер для того, чтобы обозначить группу людей, вовлеченных в совместную деятельность. В дальнейшем концепция сообщества обмена знаниями получила развитие в работах Венгера и активно использовалась для анализа отношений, которые складываются внутри организаций и сетей самого разного типа 120px-Science-community.gif
СтигмергияСтигмергия (от др.-греч. στίγμα — знак, метка, и ἔργον — действие, работа) — механизм спонтанного непрямого взаимодействия между индивидами, заключающийся в оставлении индивидами в окружающей среде меток, стимулирующих дальнейшую активность других индивидов. Стигмергия является одной из форм самоорганизации, создающая сложные, казалось бы, интеллектуальные структуры, но без какого-либо планирования, контроля, или даже прямой связи между индивидами. Как таковая, она поддерживает эффективное сотрудничество между чрезвычайно простыми индивидами, у которых нет памяти, интеллекта или даже осведомленности друг о друге. Предположительно, стигмергия является децентрализованным сетевым свойством коллективного взаимодействия термитов.

История

Scratch язык программирования и социальная платформа, спроектированная командой MIT Media Lab по принципам конструкционизма.
https://scratch.mit.edu/users/patarakin/ - Joined 19 years, 1 month ago, Russia
 DescriptionInventor
20 things to doThe concept of "Twenty Things to Do with a Computer," Пейперт и Соломон в 1971 году: Создать робота черепаху, Запрограммировать черепаху нарисовать человека, Изучить биологию робота-черепахи, Сделать экранную черепаху, Играть в Spacewar, Изучить с черепахой дифференциальную геометрию, Рисовать спирали, Нарисовать сердце (и научиться искать ошибки), Выращивать цветы, Сделать фильм, Сделать музыкальную шкатулку и программировать мелодию, Экспериментировать с музыкальными эффектами, Компьютеризировать конструктор и построить башню блоков, Сделать грандиозное световое шоу, Писать стихи, Попробовать программированное обучение, Изучать физики на кончиках пальцев, Объяснить себя при помощи программы, Играть в куклы, Запустить рекурсию и придумать ещё 20 способовPapert
Solomon
Children Learning to CodeВ книге собраны различные международные практики обучения детей программированию. Различные обучающие среды, образовательные стандарты. Особое внимание уделено развитию среды Scratch в России - одним из побочных результатов книги стал рост числа участников сообщества Scratch в России. Проект был поддержан Всемирным Банком и МГПУ. ; На русском языке
Обучение детей программированию: залог развития человеческого капитала в XXI веке. Руководство для российских законодателей и практиков в области образования / – Москва : Алекс (ИП Поликанин А.А.), 2019. – 164 с.
225px-Learning_to_code.jpg
Patarakin
Parandekar
ScratchСреда программирования, которая позволяет детям создавать собственные анимированные и интерактивные истории, игры и другие произведения. Этими произведениями можно обмениваться внутри международной среды, которая постепенно формируется в сети Интернет. Scratch — это учебный блочный язык программирования, позволяющий ученикам создавать игры, цифровые истории. Среда разработки дает возможность детям редактировать аудиофайлы и монтировать небольшие, но полноценные видеоролики. В новые версии языка создатели обещают добавить функционал для создания собственных мобильных приложений.Resnick
Thinking Like a TreeThinking Like a Tree (and Other Forms of Ecological Thinking ) Мы можем сказать, что дерево следует стратегии TREE - T- test - пробуй, R - randomly - случайно, E-evaluate - оценивай (определяй, какие из корней нашли лучшую почву), E-elect - выбирай (направление, куда будем двигаться). Конечно, шагающее дерево в действительности не выбирает и не принимает решение, куда двигаться. Но, этот способ размышления о дереве, следующем определенной стратегии поведения, может оказаться полезным.Resnick
  • Версионность кода — аналог Git: ремикс сохраняет связь с оригиналом
  • Ремикс — явный механизм заимствования и развития чужих идей, встроенный в платформу
  • Студии (Studios) — пространства совместной работы, куда можно собирать проекты и участников
  • Комментарии и обратная связь — встроенная социальная коммуникация внутри платформы
Действия пользователя в Scratch оставляет цифровой след — машиночитаемую запись о том, кто, что и когда сделал.
  1. Scratch Wiki — сравниваем командные паттерны в вики-сообществах на пяти языках (английском, японском, немецком, французском и русском). Общий объект здесь — статья вики. Командность проявляется в том, сколько авторов редактируют одну статью, в какой последовательности, с какой интенсивностью.
  2. Scratch Studios — анализируем командную деятельность внутри тематических студий. Студия — это пространство, куда скретчеры собирают проекты по общей теме.
Scratch как исследовательский инструмент
Механизм Scratch Аналог в командной теории Что измеряем
Remix (ремикс проекта) Стигмергический след: «я видел твой проект и отреагировал» Глубина remix-дерева; взаимные ремиксы
Студия Граничный объект: общее пространство для команды Плотность связей автор–проект; доля командных проектов
Комментарии к проекту Явная коммуникация (в отличие от стигмергии) Соотношение явной и стигмергической координации

Wiki Scratch

Scratch Wiki — это пользовательская MediaWiki, которую создают и развивают сами скретчеры. Она существует на нескольких языках, и это делает её уникальной площадкой для сравнительного исследования командности.

  1. https://en.scratch-wiki.info/wiki/
  2. https://de.scratch-wiki.info/wiki/
  3. https://fr.scratch-wiki.info/wiki
  4. https://ru.scratch-wiki.info/wiki/

Извлечение данных из Scratch вики

 Description
Как собрать данные Scratch Wiki при помощи MediaWiki APIЗнания сообщества Scratch хранятся в нескольких вики на разных языках. Мы хотим собрать и сравнить данные о поведении участников
Сравнение Scratch wikisЭто рецепт извлечения данных по MediaWiki API из различных вики площадок, связанных с языком программирования Scratch.

Данные

ScratchWikis2026
Английский язык https://raw.githubusercontent.com/patarakin/stat-data/ab321872b9f652295d7175d4b1263fe6c32a973a/datasets/csv/contrib_en.csv
Японский язык https://raw.githubusercontent.com/patarakin/stat-data/ab321872b9f652295d7175d4b1263fe6c32a973a/datasets/csv/contrib_jp.csv
Немецкий язык https://raw.githubusercontent.com/patarakin/stat-data/ab321872b9f652295d7175d4b1263fe6c32a973a/datasets/csv/contrib_de.csv
Французский язык https://raw.githubusercontent.com/patarakin/stat-data/ab321872b9f652295d7175d4b1263fe6c32a973a/datasets/csv/contrib_fr.csv
Русский https://raw.githubusercontent.com/patarakin/stat-data/ab321872b9f652295d7175d4b1263fe6c32a973a/datasets/csv/contrib_ru.csv



Обсуждение данных

Мы собрали данные о вкладе участников по пяти языковым версиям вики:

Сравнение языковых версий Scratch Wiki (данные на 5 апреля 2026 года)
Язык Участников Страниц Связей автор–страница Командных страниц (≥ 2 авторов) Доля командных страниц Доля топ-5 авторов
🇬🇧 Английская 138 115 962 115 (100%) 100% 37.7%
🇯🇵 Японская 99 89 796 89 (100%) 100% 41.0%
🇫🇷 Французская 37 134 319 24 18% 51.7%
🇩🇪 Немецкая 42 111 273 21 19% 44.0%
🇷🇺 Русская 50 115 221 15 13% 43.4%

Анализ данных через R

Загрузка и первичный анализ

# Загрузка данных о Scratch Wiki
en_data <- read.csv("https://raw.githubusercontent.com/patarakin/stat-data/ab321872b9f652295d7175d4b1263fe6c32a973a/datasets/csv/contrib_en.csv")
ru_data <- read.csv("https://raw.githubusercontent.com/patarakin/stat-data/ab321872b9f652295d7175d4b1263fe6c32a973a/datasets/csv/contrib_ru.csv")
de_data <- read.csv("https://raw.githubusercontent.com/patarakin/stat-data/ab321872b9f652295d7175d4b1263fe6c32a973a/datasets/csv/contrib_de.csv")
fr_data <- read.csv("https://raw.githubusercontent.com/patarakin/stat-data/ab321872b9f652295d7175d4b1263fe6c32a973a/datasets/csv/contrib_fr.csv")
ja_data <- read.csv("https://raw.githubusercontent.com/patarakin/stat-data/ab321872b9f652295d7175d4b1263fe6c32a973a/datasets/csv/contrib_jp.csv")

# Структура данных
str(en_data)
head(en_data, 10)

# Статистика по каждой вики
cat("Английская вики:", nrow(en_data), "записей\n")
cat("Русская вики:", nrow(ru_data), "записей\n")
cat("Немецкая вики:", nrow(de_data), "записей\n")
cat("Французская вики:", nrow(fr_data), "записей\n")
cat("Японская вики:", nrow(ja_data), "записей\n")

Визуализация распределения авторов

library(ggplot2)
library(dplyr)

# Подсчёт авторов по вики
wiki_stats <- data.frame(
  Language = c("EN", "RU", "DE", "FR", "JP"),
  Authors = c(138, 50, 42, 37, 99),
  Collaborations = c(962, 221, 273, 319, 796),
  TeamPages = c(100, 13, 19, 18, 100)
)

# Гистограмма активности
ggplot(wiki_stats, aes(x = Language, y = Authors, fill = Language)) +
  geom_bar(stat = "identity") +
  labs(title = "Количество авторов в разных языковых версиях Scratch Wiki",
       x = "Языковая версия", y = "Количество авторов") +
  theme_minimal()

Файл:Scratch wiki authors.png

Сравнение командности

ggplot(wiki_stats, aes(x = Language, y = TeamPages, fill = Language)) +
  geom_bar(stat = "identity") +
  labs(title = "Доля командных страниц в Scratch Wiki",
       x = "Языковая версия", y = "Командные страницы (%)") +
  theme_minimal() +
  geom_text(aes(label = TeamPages), vjust = -0.5)

Файл:Scratch wiki team pages.png

Распределение цитируемости (аналог для правок)

# Анализ распределения правок по страницам
edit_counts <- en_data$edits

ggplot(data.frame(edits = edit_counts), aes(x = edits)) +
  geom_histogram(binwidth = 5, fill = "steelblue", color = "black") +
  labs(title = "Распределение правок по страницам (английская вики)",
       x = "Количество правок", y = "Частота") +
  theme_minimal()

Файл:Scratch wiki edits distribution.png

Метрика командности

[math]\displaystyle{ K = \frac{N_{collaborations}}{N_{authors} \times N_{pages}} }[/math]

где:

  • [math]\displaystyle{ N_{collaborations} }[/math] — число совместных правок
  • [math]\displaystyle{ N_{authors} }[/math] — число уникальных авторов
  • [math]\displaystyle{ N_{pages} }[/math] — число страниц
# Расчёт метрики командности
wiki_stats <- wiki_stats %>%
  mutate(
    Teamness = Collaborations / (Authors * 115),  # 115 - среднее число страниц
    Teamness_rounded = round(Teamness, 3)
  )

print(wiki_stats[, c("Language", "Teamness_rounded")])

ggplot(wiki_stats, aes(x = Language, y = Teamness, fill = Language)) +
  geom_bar(stat = "identity") +
  labs(title = "Индекс командности языковых версий Scratch Wiki",
       x = "Языковая версия", y = "Индекс командности") +
  theme_minimal() +
  geom_text(aes(label = Teamness_rounded), vjust = -0.5)

Файл:Scratch wiki teamness.png

Сетевой анализ соавторства в Scratch Wiki

library(igraph)

# Создаём граф для английской вики (на основе данных)
nodes <- data.frame(
  name = c("ScratchMaster", "CodeWizard", "GameDeveloper", "AnimationPro", "SoundDesigner", "BugHunter"),
  activity = c(25, 18, 15, 12, 10, 8)
)

edges <- data.frame(
  from = c("ScratchMaster", "ScratchMaster", "CodeWizard", "GameDeveloper", "ScratchMaster", "CodeWizard"),
  to = c("CodeWizard", "GameDeveloper", "AnimationPro", "SoundDesigner", "BugHunter", "GameDeveloper"),
  weight = c(8, 6, 5, 4, 3, 3)
)

g <- graph_from_data_frame(edges, vertices = nodes, directed = FALSE)

# Визуализация
plot(g,
     vertex.size = nodes$activity,
     vertex.color = "lightblue",
     vertex.label.cex = 0.8,
     edge.width = E(g)$weight,
     edge.label = E(g)$weight,
     edge.label.cex = 0.7,
     main = "Граф сотрудничества в английской Scratch Wiki",
     layout = layout_with_fr(g))

Файл:Scratch wiki collaboration graph.png

Сетевой анализ близости языковых версий

# Построение графа близости языковых версий по командности
nodes_lang <- data.frame(
  name = c("EN", "JP", "DE", "FR", "RU"),
  team_pages = c(100, 100, 19, 18, 13)
)

# Связи строим по разнице в командности (чем ближе - тем сильнее связь)
edges_lang <- data.frame(
  from = c("EN", "EN", "JP", "JP", "DE", "FR"),
  to = c("JP", "DE", "DE", "FR", "FR", "RU"),
  weight = c(
    abs(100 - 100),
    abs(100 - 19),
    abs(100 - 19),
    abs(100 - 18),
    abs(19 - 18),
    abs(18 - 13)
  )
)

# Превращаем в силу связи (обратно пропорционально)
edges_lang$weight <- 1 / (edges_lang$weight + 1)

g_lang <- graph_from_data_frame(edges_lang, vertices = nodes_lang, directed = FALSE)

plot(g_lang,
     vertex.size = nodes_lang$team_pages / 2,
     vertex.color = c("lightgreen", "lightgreen", "lightyellow", "lightyellow", "lightsalmon"),
     edge.width = E(g_lang)$weight * 10,
     edge.label = round(E(g_lang)$weight, 2),
     edge.label.cex = 0.8,
     main = "Сеть близости языковых версий (по командности)",
     layout = layout_with_fr(g_lang))

Файл:Scratch wiki languages network.png

Pipeline анализа данных Scratch

Социосемантическая модель Scratch сообщества

Модели координации в Scratch Wiki

Агентная модель командной работы

Ошибка: не указано имя модели

Анализ активности участников страницы

Статистика правок страницы

# Анализ активности участников страницы
library(httr)
library(jsonlite)

url <- "https://digida.mgpu.ru/api.php"

response <- GET(url, query = list(
  action = "query",
  prop = "revisions",
  titles = "Scratch_исследование_командности",
  rvprop = "user|timestamp",
  rvlimit = 100,
  format = "json"
))

data <- content(response, as = "text", encoding = "UTF-8")
json_data <- fromJSON(data, flatten = TRUE)

pages <- json_data$query$pages
page <- pages[[1]]
revisions <- page$revisions
users <- revisions$user

# Статистика
total_edits <- length(users)
unique_authors <- length(unique(users))
teamness <- unique_authors / total_edits

cat("Всего правок:", total_edits, "\n")
cat("Уникальных авторов:", unique_authors, "\n")
cat("Метрика командности (T = N_authors/N_edits):", round(teamness, 3), "\n")

# Таблица активности
user_table <- table(users)
user_df <- data.frame(
  Участник = names(user_table),
  Правки = as.numeric(user_table)
)
user_df <- user_df[order(-user_df$Правки),]
print(user_df)

Граф совместного редактирования страницы

Студии Scratch

Если вики — это относительно структурированная среда, то Scratch Studios — более свободная форма командности. Студии бывают очень разными:

  • Квест-студии (пример) — студии, организованные как квест или задание. Участники получают задачу, создают проекты-ответы и добавляют их в студию. Это форма, которую мы используем в образовательной практике.
  • Collab Challenge (пример) — студии коллаборативного творчества, где участники явно приглашаются к совместному созданию.

Извлечение данных из Scratch студий

 Description
Как изучить студию с помощью Scratch APIМы хотим изучить деятельность участников, которые разместили свои проекты внутри конкретной студии Scratch. В этом рецепте мы изучаем как авторы размещают свои проекты в данной студии (по ее номеру) и в других студиях. При этом исходно мы не использовали данные о комментариях к студии и проектам.
Как оценить командность в студиях ScratchМы хотим сравнить командность действий в студиях Scratch. Рецепт сделан на примере 5 студий, но может быть расширен и можно провести большое исследование для множества студий

Анализ студии через R

# Демо-анализ студии
studio_data <- data.frame(
  Участник = c("AlexPro", "ScratchDev", "CodeNinja", "GameMaster", "ArtAnimator"),
  Проектов = c(5, 4, 3, 3, 2),
  Роль = c("Лидер", "Активный", "Активный", "Участник", "Участник")
)

ggplot(studio_data, aes(x = reorder(Участник, -Проектов), y = Проектов, fill = Роль)) +
  geom_bar(stat = "identity") +
  labs(title = "Активность участников Scratch студии",
       x = "Участник", y = "Количество проектов") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Файл:Scratch studio activity.png

Сравнение командности студий

Сравнение с исследованием коллеги (Lens)

Сравнение подходов к анализу командности
Аспект Исследование Lens (психология) Исследование Scratch (наше)
Данные Публикации в Lens Правки в Scratch Wiki
Социальный уровень Организации (МГУ, МГПУ, РАН) Сообщества (EN, RU, DE, FR, JP)
Семантический уровень Тип публикации, Open Access Тип страницы, язык вики
Механизм связи Цитирование Совместное редактирование
Метрика C = цитируемость K = соавторство (Teamness)
Визуализация Boxplot, гистограммы, графы Графы, UML диаграммы, барплоты
Инструменты R + ggplot2 + igraph R + ggplot2 + igraph + NetLogo

Как это устроено

Почему подростки в Scratch вообще начинают координировать свои действия? потому что есть общий социальный объект— проект, студия, страница вики — который видят все участники и который реагирует на действия каждого.

Это явление описывается двумя теоретическими понятиями:

  1. Граничный объект (Star & Griesemer, 1989) — объект, достаточно пластичный, чтобы приспосабливаться к нуждам разных участников, и достаточно устойчивый, чтобы сохранять общее значение. В нашем случае это Scratch-проект или страница вики: каждый видит её по-своему, но все видят одно и то же.
  2. Стигмергия (Sims, 2023) — механизм, при котором координация осуществляется через изменение среды, а не через прямую коммуникацию. Так координируются муравьи, оставляя следы. Так же работают цифровые среды: я вижу, что кто-то изменил страницу, и это меняет моё следующее действие. Этот принцип работает одинаково в команде из пяти человек и в сообществе из пяти тысяч.

Заключение

[math]\displaystyle{ \boxed{K_{Scratch} = \frac{\sum_{lang} TeamPages_{lang}}{\sum_{lang} Pages_{lang}} = \frac{100+100+18+19+13}{115+89+134+111+115} = \frac{250}{564} \approx 44.3\%} }[/math]

    • Интерпретация:** В среднем 44% страниц Scratch Wiki созданы в команде из 2+ человек, что подтверждает наличие устойчивой стигмергической координации в сообществе.

Итоговые выводы


2009