Объединение языков многоагентного моделирования в учебном процессе на базе 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
Цифровые инструменты учителейДатасет о том, какие цифровые инструменты используются учителями учителями для решения различных задач
  • + различные приёмы обработки и визуализации датасета
  • 120px-D_I_Treemap_Voronoy.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
    ClockСкрипт циферблата c секундной, минутной и часовой стрелками, которые холят как настоящие часы.
    Dog chases cat and cat chases mouseПроект внутри которого 3 породы- собака, кошка, мышка
    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) — термин в информатике и искусственном интеллекте, который означает определение компьютерной программой наилучшего, оптимального маршрута между двумя точками.
    Switching Between ScreensКак переключаться между различными сценами в Scratch. Скрипт проверяет, совпадает ли переменная экрана с экраном для отображения спрайтов. Если да, то спрайты будут отображаться и делать все, что от них требуется. Если нет, то спрайт останется скрытым и не запустит блоки для того времени, когда он будет открыт.
    Using Clones for Particle EffectsКак создать эффект частиц с помощью клонов?
    Анализ данныхПосле того, как мы собрали или вырастили данные, наступает этап их анализа. В прикладной науке о данных выделяется определённая последовательность действий, которые совершаются над данными для их лучшего понимания и объяснения.
    Вернуться к предыдущей версии текстаРаспространённая ситуация, когда после внесённых изменений программа перестаёт работать или что-то идёт не так. Большинство современных систем помнят историю версий и позволяют вернуться к прежним версиям. Например, в MediaWiki - история страницы. В StarLogo Nova - история версий (Current Version) View Project History.
    Задать цвет части поляКак задать цвет поля (или его части) для разных сред агентного моделирования
    Изучить информатиков МЭШВ датесете МЭШ есть учителя информатики. Мы хотим узнать информацию о них.
    Использование рекурсивного способа вычисления факториала в Snap!Рекурсивный алгоритм вычисления факториала в Snap!
    Использовать данные МЭШ для моделирования поведения учителейПри изучении языков высокого уровня хотелось бы опираться на реальные ситуации, которые происходят с учителями. Эти ситуации описываются и моделируются в различных языках. Мы взяли несколько сред многоагентного моделирования, где агенты симулируют поведение учителей, и скрестили эти языки с данными, которые были извлечены из МЭШ.
    • 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! проекты и устроить соревнование между участниками. Например, они могут передавать свои географические координаты
    • 120px-Mqtt_teams.png
    Как перевести 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 городов так, чтобы при этом проехать минимальное общее расстояние. Одно из возможных решений: нужно перебрать все возможные комбинации порядка объезда городов.
    Рисуем цветыСкрипт рисования цветов, которые появляются в случайном месте.
    Создать процедуру с входными параметрамиЧасто встречающаяся ситуация, когда нужно взять исходные данные, совершить над ними действия и вернуть полученный результат. Показано на пример Snap!, StarLogo Nova, App Inventor, NetLogo
    Сортировка вставкамиСортировка вставками (англ. 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. Участники могут использовать код проектов других участников. Создавать свои коллекции и приглашать других участников к работе над версиями своих проектов.