Объединение языков многоагентного моделирования в учебном процессе на базе MediaWiki (Robbo-2023)

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


Описание события Как в регионе или муниципалитете повысить число юных программистов с помощью сообщества Scratch
Тип события
Начало 2023-09-20T13:00:38.000Z
Окончание 2023-09-20T14:15:38.000Z
color blue
Адрес события https://pruffme.com/landing/u324531/Webinar 20 09 2023
Видео запись события
Среды и средства, на которые повлияло событие
Формируемые в рамках события компетенции
Область знаний
Местоположение
Карта
Идёт загрузка карты…


Объединение языков многоагентного моделирования в учебном процессе на базе MediaWiki

Патаракин Евгений Дмитриевич

Вычислительное мышление и формы его освоения

 DescriptionEnvironment
Вычислительное мышлениеОбъединение способностей человека и возможностей вычислительной техники. Способность усиливать свою деятельность, привлекая к себе на помощь программных агентов. Производные понятия - вычислительная наука, вычислительная история.NetLogo
StarLogo Nova
Scratch
Snap!
Python
R


 DescriptionEnvironment
Children Learning to CodeВ книге собраны различные международные практики обучения детей программированию. Различные обучающие среды, образовательные стандарты. Особое внимание уделено развитию среды Scratch в России - одним из побочных результатов книги стал рост числа участников сообщества Scratch в России. Проект был поддержан Всемирным Банком и МГПУ. ; На русском языке
Обучение детей программированию: залог развития человеческого капитала в XXI веке. Руководство для российских законодателей и практиков в области образования / – Москва : Алекс (ИП Поликанин А.А.), 2019. – 164 с.
Scratch


Лента времени развития языков многоагентного моделирования

(Ancestors
Lisp OR Ancestors:Logo)


Генеалогия многоагентных сред (диаграмма)


Описание Фрагмент генеалогической схемы происхождения агентных языков
Область знаний Информатика
Среды для создания диаграммы: Graphviz


Датасеты, связанные с информатикой

 Description
Collaborative knowledge ACM (dataset)Датасет сформирован на основании запроса к цифровой библиотеке ACM – dl.acm.org. Поисковый запрос выглядит следующим образом:
  • All: “collaborative knowledge” AND Publication Date: (2012 To 2022)
На исходный запрос мы наложили фильтр, ограничивающий формат статей только исследовательскими статьями, поскольку мы хотели получить подробное описание кейсов, в которых описывалась бы практика работы со знаниями в образовании. В ответ на такой запрос было получено 476 записей, которые составили коллекцию в системе Zotero и в формате RIS были загружены в систему VOS viewer для выявления и визуального представления сетевых отношений как между авторами, так и между ключевыми словами публикаций.
Computational thinking (ACM)Датасет записей из библиотеки ACM по запросу Computational Thinking
DetectiveStudio (dataset)Материалы на основе Scratch API
Games (biblio dataset)Для поиска использовали ключевые слова: ("computer games" OR "video games" OR "serious games" OR "simulation games" OR "games-based learning" OR mmog OR mmorpg OR mud OR "online games") AND ("computational thinking")
GoogleSchool 01(dataset)Датасет собран из лог-файла действий учителей внутри школы
Letopisi 2006 (dataset)120px-Hist_2006_associatios.png Лог-файл действий участников проекта Letopisi в 2006 году
Scopus Games (dataset)Датасет по публикациям о компьютерных играх, собранный в Scopus
Студия Collab Challenge (dataset)Это история совместной деятельности внутри Scratch студии Collab Challenge - https://scratch.mit.edu/studios/4789981/ - где в 2018 году собирались проекты на конкурс Collab Challenge. Данный датасет - возможность посмотреть деятельность сквозь призму данных Scratch API - 354 проекта
  • Collab_Challenge2018.png


Возможность встраивать код программ (текст и визуальные блоки)

Из категории - Категория:Scripting Tutorials

when [up arrow v] key pressed
point in direction (0)
move (10) steps
when [down arrow v] key pressed
point in direction (180)
move (10) steps
when [right arrow v] key pressed
point in direction (90)
move (10) steps
when [left arrow v] key pressed
point in direction (-90)
move (10) steps

Now your sprite will turn when it moves.

Возможность обмениваться программами как рецептами (на примере Snap!)

{{#ask: [[Категория:Scripting Tutorials]] [[Environment::Snap!]] || ?Description }}

 Description
HeapКак использовать кучу? - Куча (структура данных)
How to Keep Score in a GameКак хранить результаты (очки) в игре
How to Move Sprites with the Arrow KeysКак управлять спрайтами при помощи клавиш клавиатуры - в блочных языках реализуется через связку нажатия определённой клавиши и поворотом в
How to Move a Sprite in a SpiralКак организовать движение агента по спирали
MovementКак управлять движением агентов на экране
Object AttractionКак имитировать притяжение объектов друг к другу?
PathfindingПоиск пути (англ. Pathfinding) — термин в информатике и искусственном интеллекте, который означает определение компьютерной программой наилучшего, оптимального маршрута между двумя точками.
Using Clones for Particle EffectsКак создать эффект частиц с помощью клонов?
Анализ данныхПосле того, как мы собрали или вырастили данные, наступает этап их анализа. В прикладной науке о данных выделяется определённая последовательность действий, которые совершаются над данными для их лучшего понимания и объяснения.
Изучить информатиков МЭШВ датесете МЭШ есть учителя информатики. Мы хотим узнать информацию о них.
Использовать данные МЭШ для моделирования поведения учителейПри изучении языков высокого уровня хотелось бы опираться на реальные ситуации, которые происходят с учителями. Эти ситуации описываются и моделируются в различных языках. Мы взяли несколько сред многоагентного моделирования, где агенты симулируют поведение учителей, и скрестили эти языки с данными, которые были извлечены из МЭШ.
  • 120px-Netlogo_mes.png
Как включить Snap! проект в состав вики страницыИспользуем заклинание - snap project="Название" user="Имя_Автора" - примеры в тексте статьи
Как заменить символы в строке?Дана строка. Необходимо заменить все символы "а" на "о".
Как использовать Scratch APIКак использовать внешний API в средах визуального программирования
Как использовать визуальные блоки на вики страницахБлагодаря специальному расширению в вики можно использовать текстовые блоки для представления программ на языке Scratch и Snap!
Как обратиться к API из Snap!Невозможно обратиться напрямую к большинству открытых API из Snap! Но, можно организовать такое обращение и обработку данных из JSON формата
Как обратиться к внешним данным из Snap!В Snap! очень просто обратиться к датасету в формате CSV или JSON, если он лежит на машине пользователя. Кроме того мы можем использовать блок (url) - обратиться к датасету и затем превратить его в таблицу в Snap! 120px-ExternalDataSnap.png
Как организовать обмен сообщениями через MQTT4Snap!Возможно обмениваться сообщениями по протоколу MQTT через MQTT серверы -возможность связать Snap! проекты и устроить соревнование между участниками. Один из примером - игра в крестики нолики
Как перевести Scratch в Snap!Для того, чтобы перевести Scratch в Snap! нужно воспользоваться программой https://snapinator.github.io/#
  • Загрузить
Как получить изображение Scratch блоковВ ряде случаев для публикации материалов необходимо получить изображение блоков Scratch в виде графических файлов. Приложение https://scratchblocks.github.io/ позволяет получить блоки в формате png svg
Как получить список случайных значенийВ общем случае создаём исходно пустой список и добавляем в него указанное число чисел, находящихся в указанном интервале. Для Snap!

Список случайных чисел из %сколько от %min до %max

540px-Random_list2.png
Как проверить массив на наличие дублейКак проверить массив на наличие дублей? Здесь приводятся решения на нескольких языках высокого уровня - JavaScript, Python, C++, NetLogo, Snap!
Как работать со списками в Snap!Что можно делать со списками в Snap! - Что для этого есть в этой среде программирования
120px-Snap_list0.png
Как редактировать собственный блок в Snap!Просто щёлкнуть по блоку правой кнопкой мыши и выбрать команду edit и команды откроются в отдельном окне редактора
Как сделать сортировку в массиве?Отсортировать массив в порядке возрастания
Как скопировать данные в буфер обмена в Snap!Мы обработали или вырастили данные в среде Snap! и теперь мы хотим перенести эти данные в среду для анализа и визуализации. Простой и понятный способ - сохранить (экспортировать) значение переменной в csv или json. Но, если не хочется порождать промежуточные файлы то, можно использовать возможности расширения JavaScript
Как собрать данные об отношениях участника в сети ScratchУ нас есть возможность обратиться к Scratch API и запросить информацию о тех, на кого подписался данный участник сообщества. И есть возможность запросить информацию о тех, кто подписался на данного участника
Как управлять поведением агентов на основании их пространственных характеристикРаспространённая в играх и моделях ситуация, когда агента должен совершать действия на основании того где он находится, кто находится с ним рядом и т.п.
Как управлять поведением спрайта в Snap!Как управлять поведением спрайта клавишами
Какие есть функции для списков?В различных языках программирования достаточно часто встречаются задачи обработки списков. В этой статье собраны функции для списков
Обратиться к объектам по их свойствамЛюбая команда к агентам или объектам предполагает, что вы можете к ним обратиться, назвать их свойства и передать им указание что-то сделать. Например, всем страницам SMW из класса Язык программирования и свойством Ages::<10 показаться в формате нумерованного списка. Или всем черепах, с координатами по оси X > 0 и жёлтого цвета приказываю умереть
  • 120px-Netlogoweb_ask.png
Организовать обмен сообщениями между агентамиКак организовать обмен сообщениями между агентами? И в Scratch и в Snap! действует театральная метафора, когда персонажи могут обмениваться сообщениями и реагировать на сообщения. При этом в Scratch сообщения рассылаются всем, а в Snap! есть возможность указать адресата сообщения
  • 120px-Cherry_orchard_lp.png
  • Посчитать и сохранить значениеПосчитать и сохранить значение/ У нас есть множество зверей и все они собираются как-то взаимодействовать с колобком. И нам нужно, чтобы звери набрасывались на колобка не все сразу с криком “Я тебя съем”, а делали это по очереди. Как организовать эту очередь?
    Представить данные датасета в виде графаЕсть датасет и мы хотим превратить его в таблицу и граф, чтобы посмотреть на взаимосвязи узлов.
    Решить задачу коммивояжёраКоммивояжер хочет побывать в каждом из 5 городов так, чтобы при этом проехать минимальное общее расстояние. Одно из возможных решений: нужно перебрать все возможные комбинации порядка объезда городов.
    Сортировка вставкамиСортировка вставками (англ. Insertion sort) — алгоритм сортировки, в котором элементы входной последовательности просматриваются по одному, и каждый новый поступивший элемент размещается в подходящее место среди ранее упорядоченных элементов. Вычислительная сложность 0(n2)
    Треугольник СерпинскогоТреугольник Серпинского — фрактал, один из двумерных аналогов множества Кантора, математическое описание которого опубликовал польский математик Вацлав Серпинский в 1915 году. Как создать треугольник Серпинского в разных средах программирования? 400px-Serpinsky_script_rus.png

    Не только блоки, но и сами проекты

    Scratch project
    • Scratch project
    Snap! project

    • Snap! project


    Slnova project

    NetLogo project

    Возможность встраивать модели, размещенные в сообществах

     Description
    CoMSESCoMSES Net - Сеть для вычислительного моделирования в социальных и экологических науках. Это - открытое сообщество исследователей и преподавателей. Репозиторий - цифровое хранилище, поддерживающее исследования и передовые методы цитирования программного обеспечения, цифрового хранения, воспроизводимости и повторного использования моделей.
    GitHubСоциальная сеть программистов, с возможностью хранить репозиторий проекта и все его изменения. GitHub - контроль доступа, багтрекинг, управлением задачами и вики для каждого проекта. Используется прежде всего для поддержания версий кода
    GlitchСообщество для разработки веб-приложений
    HabrХабр русскоязычный веб-сайт в формате системы тематических коллективных блогов (именуемых хабами) с элементами новостного сайта, созданный для публикации новостей, аналитических статей, мыслей, связанных с информационными технологиями, бизнесом и интернетом.
    Modeling CommonsСообщество, участники которого создают и обмениваются моделями NetLogo.
    RobloxRoblox — игровая онлайн-платформа и система создания игр, позволяющая любому пользователю создавать свои собственные и играть в созданные другими игры.
    Stack OverFlowСеть создания контента в форме вопросов и ответов о программировании.
    Сообщество GeoGebraСоциальная сеть, участники которой обмениваются материалами, созданными при помощи программы GeoGebra
    Сообщество NetLogoСообщество пользователей, которые обмениваются моделями, написанными на языке NetLogo.
    Сообщество ScratchСетевое сообщество детей и взрослых, обменивающихся своими проектами, написанными на языке Scratch
    Сообщество Snap!Сообщество исследователей, учителей и учащихся, использующих в своей деятельности язык Snap! Участники могут делиться своими проектами (Share, Publish). Создавать коллекции проектов, следить с действиями других участников (following)
    Сообщество StarLogoСообщества обмена моделями и объектами в среде StarLogo Nova. Участники могут использовать код проектов других участников. Создавать свои коллекции и приглашать других участников к работе над версиями своих проектов.