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

История
- Scratch язык программирования и социальная платформа, спроектированная командой MIT Media Lab по принципам конструкционизма.
- https://scratch.mit.edu/users/patarakin/ - Joined 19 years, 1 month ago, Russia
| Description | Inventor | |
|---|---|---|
| 20 things to do | The concept of "Twenty Things to Do with a Computer," Пейперт и Соломон в 1971 году: Создать робота черепаху, Запрограммировать черепаху нарисовать человека, Изучить биологию робота-черепахи, Сделать экранную черепаху, Играть в Spacewar, Изучить с черепахой дифференциальную геометрию, Рисовать спирали, Нарисовать сердце (и научиться искать ошибки), Выращивать цветы, Сделать фильм, Сделать музыкальную шкатулку и программировать мелодию, Экспериментировать с музыкальными эффектами, Компьютеризировать конструктор и построить башню блоков, Сделать грандиозное световое шоу, Писать стихи, Попробовать программированное обучение, Изучать физики на кончиках пальцев, Объяснить себя при помощи программы, Играть в куклы, Запустить рекурсию и придумать ещё 20 способов | Papert Solomon |
| Children Learning to Code | В книге собраны различные международные практики обучения детей программированию. Различные обучающие среды, образовательные стандарты. Особое внимание уделено развитию среды Scratch в России - одним из побочных результатов книги стал рост числа участников сообщества Scratch в России. Проект был поддержан Всемирным Банком и МГПУ. ; На русском языке
| Patarakin Parandekar |
| Scratch | Среда программирования, которая позволяет детям создавать собственные анимированные и интерактивные истории, игры и другие произведения. Этими произведениями можно обмениваться внутри международной среды, которая постепенно формируется в сети Интернет. Scratch — это учебный блочный язык программирования, позволяющий ученикам создавать игры, цифровые истории. Среда разработки дает возможность детям редактировать аудиофайлы и монтировать небольшие, но полноценные видеоролики. В новые версии языка создатели обещают добавить функционал для создания собственных мобильных приложений. | Resnick |
| Thinking Like a Tree | Thinking Like a Tree (and Other Forms of Ecological Thinking ) Мы можем сказать, что дерево следует стратегии TREE - T- test - пробуй, R - randomly - случайно, E-evaluate - оценивай (определяй, какие из корней нашли лучшую почву), E-elect - выбирай (направление, куда будем двигаться). Конечно, шагающее дерево в действительности не выбирает и не принимает решение, куда двигаться. Но, этот способ размышления о дереве, следующем определенной стратегии поведения, может оказаться полезным. | Resnick |
- Версионность кода — аналог Git: ремикс сохраняет связь с оригиналом
- Ремикс — явный механизм заимствования и развития чужих идей, встроенный в платформу
- Студии (Studios) — пространства совместной работы, куда можно собирать проекты и участников
- Комментарии и обратная связь — встроенная социальная коммуникация внутри платформы
- Действия пользователя в Scratch оставляет цифровой след — машиночитаемую запись о том, кто, что и когда сделал.
- Scratch Wiki — сравниваем командные паттерны в вики-сообществах на пяти языках (английском, японском, немецком, французском и русском). Общий объект здесь — статья вики. Командность проявляется в том, сколько авторов редактируют одну статью, в какой последовательности, с какой интенсивностью.
- Scratch Studios — анализируем командную деятельность внутри тематических студий. Студия — это пространство, куда скретчеры собирают проекты по общей теме.
| Механизм Scratch | Аналог в командной теории | Что измеряем |
|---|---|---|
| Remix (ремикс проекта) | Стигмергический след: «я видел твой проект и отреагировал» | Глубина remix-дерева; взаимные ремиксы |
| Студия | Граничный объект: общее пространство для команды | Плотность связей автор–проект; доля командных проектов |
| Комментарии к проекту | Явная коммуникация (в отличие от стигмергии) | Соотношение явной и стигмергической координации |
Wiki Scratch
Scratch Wiki — это пользовательская MediaWiki, которую создают и развивают сами скретчеры. Она существует на нескольких языках, и это делает её уникальной площадкой для сравнительного исследования командности.
- https://en.scratch-wiki.info/wiki/
- https://de.scratch-wiki.info/wiki/
- https://fr.scratch-wiki.info/wiki
- 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
Обсуждение данных
Мы собрали данные о вкладе участников по пяти языковым версиям вики:
| Язык | Участников | Страниц | Связей автор–страница | Командных страниц (≥ 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()
Сравнение командности
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 вообще начинают координировать свои действия? потому что есть общий социальный объект— проект, студия, страница вики — который видят все участники и который реагирует на действия каждого.
Это явление описывается двумя теоретическими понятиями:
- Граничный объект (Star & Griesemer, 1989) — объект, достаточно пластичный, чтобы приспосабливаться к нуждам разных участников, и достаточно устойчивый, чтобы сохранять общее значение. В нашем случае это Scratch-проект или страница вики: каждый видит её по-своему, но все видят одно и то же.
- Стигмергия (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
