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

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


Описание события 18 - 19 МАЯ 2023 Г. ПРЕПОДАВАНИЕ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ В РОССИЙСКОЙ ФЕДЕРАЦИИ - 2023 ИТ-ОБРАЗОВАНИЕ - 2023 https://it-education.ru/
Тип события Доклад
Начало 2023-05-19T12:05:31.000Z
Окончание 2023-05-19T12:20:31.000Z
color orange
Адрес события https://it-education.ru/conf2023/thesis/5694/
Видео запись события https://vk.com/video-73108225 456240384
Среды и средства, которые использовались в рамках события Semantic MediaWiki
Формируемые в рамках события компетенции
Область знаний Информатика, Искусственный интеллект
Местоположение 56° 17' 55.37" N, 43° 58' 54.16" E
Формат реализации
Карта
Идёт загрузка карты…


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

Вычислительная дидактика


Описание Область дидактики, рассматривающая новые дидактические отношения, когда обучающая машина учит другую обучаемую машину, когда обучающая машина учит человека или когда обучающий человек учит обучаемую программу или обучаемого агента.
Область знаний Информатика, Педагогика
Авторы Papert
Поясняющее видео
Близкие понятия Дидактика, Вычислительная наука
Среды и средства для освоения понятия Semantic MediaWiki, Snap!, Scratch


В процесс обучения, взаимодействия и построения знаний в современном мире вовлекаются не только люди, но и вычислительные машины. К привычным дидактическим отношениям, когда обучающий человек учит обучаемого человека, добавляются новые дидактические отношения, когда обучающая машина учит другую обучаемую машину, когда обучающая машина учит человека или когда обучающий человек учит обучаемую программу или обучаемого агента.

Человек Компьютерный агент
Человек Традиционный дизайн, когда обучающий человек учит обучаемого человека, дополненный возможностями вычислительной техники Конструкционизм, когда человек учится в процессе обучения программных агентов правилам поведения в цифровой среде.
Компьютерный агент Искусственные обучающие системы, когда компьютерная программа выступает в роли учителя для обучаемого человека. Метапрограммирование и машинное обучение, когда одна компьютерная программа обучает другую программу.

Литература

  1. Патаракин, Е.Д., 2023. Трансформация Вычислительной Дидактики Под Воздействием Генеративного Искусственного Интеллекта. БОЛЬШАЯ КОНФЕРЕНЦИЯ МГПУ сборник тезисов : в 3 т.. Том 1. Московский городской педагогический университет. Москва, 2023 Издательство: Издательство ПАРАДИГМА (Москва) 1, 14–17.
  2. Патаракин, Е.Д., 2022. Игровое поле вычислительной дидактики, in: Современная “цифровая” дидактика. Общество с ограниченной ответственностью “ГринПринт,” Москва, pp. 35–70.
  3. Patarakin, E., Burov, V., Yarmakhov, B., 2019. Computational Pedagogy: Thinking, Participation, Reflection, in: Väljataga, T., Laanpere, M. (Eds.), Digital Turn in Schools—Research, Policy, Practice, Lecture Notes in Educational Technology. Springer, Singapore, pp. 123–137. https://doi.org/10.1007/978-981-13-7361-9_9


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


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



{{#ask: [[Категория:Язык программирования]] [[Ancestors::Scratch]] | ?Description }}

 Description
AlgoBrixОбучающий язык блочного программирования, поддерживающий программирование роботов и кубиков
App InventorApp Inventor является бесплатным инструментом для программирования для создания мобильных приложений для Android. Он был разработан Массачусетским технологическим институтом и предоставляет простой интерфейс для создания мобильных приложений, который доступен для любого пользователя. Для программирования в App Inventor используется визуальный язык программирования, очень похожий на язык Scratch и StarLogo Nova.
webapis-get-all-posts.png
Blockly
CreatiCodeСреда для создания 3х мерных игр средствами блочного программирования
DBSnapКлон Snap! для работами с базами данных
GPБлочный язык общего назначения, который может использоваться не только в образовательных целях
Gamefroot
Hopscotch
MicroBlocksЯзык программирования - клон языка Scratch специально спроектированный для управления физическими объектами
NetsBloxВизуальный блочный язык программирования - производный от Scratch и Snap! - внимание уделено сетевым возможностям, интеграции с Google картами. Внутри среды NetsBlox участники проектов могут коллективно редактировать блоки программы так же как это происходит в Google-документах.
OctoStudioСреда для разработки школьниками своих собственных игр на мобильных устройствах
Pocket CodeМобильное приложение для создание детьми игр и цифровых историй
ScratchJRScratch Junior – это визуальная среда программирования для детей от 5 до 7 лет. С ее помощью малыши могут создавать мультики, расставляя блоки действий в последовательном порядке.
Snap!Блочный язык программирования для преподавания алгоритмов и структур данных. Snap! - потомок языка Scratch. В отличие от Scratch Snap! поддерживает лямбда-исчисление, объекты первого класса, процедуры, рекурсия и множество других возможностей. С версии 4.0 Snap! получил современное название и был переписан на JavaScript. Moscow_city_univ.png
StarLogo Nova120px-Slnova.png
  • StarLogo Nova – среда совместного агентного моделирования в трехмерной среде. Во многом это среда продолжает и развивает традиции языка Scratch. При этом здесь можно ставить серьезные эксперименты и получать воспроизводимые результаты. Центральной метафорой среды является мир (World), в котором можно создавать агенты различных пород.
TynkerВизуальный блочный язык обучения - подобный Scratch


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

 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

     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Как создать эффект частиц с помощью клонов?
    Анализ данныхПосле того, как мы собрали или вырастили данные, наступает этап их анализа. В прикладной науке о данных выделяется определённая последовательность действий, которые совершаются над данными для их лучшего понимания и объяснения.
    БантикиПроект "Бантики"
    Блоки для клонов: создание, присвоение ID, команда всем клонам, удаление клоновОписание блоков для работы с клонами. Создание, присвоение ID, команда всем клонам, удаление клонов.
    Вернуться к предыдущей версии текстаРаспространённая ситуация, когда после внесённых изменений программа перестаёт работать или что-то идёт не так. Большинство современных систем помнят историю версий и позволяют вернуться к прежним версиям. Например, в MediaWiki - история страницы. В StarLogo Nova - история версий (Current Version) View Project History.
    Выбрать ближайшего к мячу партнёраСитуация в игре с мячом, когда игрок будет двигаться к мячу, только если он ближе к мячу, чем другие игроки своей команду. Необходимо проверить, кто из партнёров может быть ближе. Игрок может оценить своё положение и положение других игроков. Реализовано для поля Snap! 120px-Shortest_to_ball.png
    Задать цвет части поляКак задать цвет поля (или его части) для разных сред агентного моделирования
    Звёздное небоСкрипт "засеивания" неба звёздами
    Изучить информатиков МЭШВ датесете МЭШ есть учителя информатики. Мы хотим узнать информацию о них.
    Использование рекурсивного способа вычисления факториала в Snap!Рекурсивный алгоритм вычисления факториала в Snap!
    Использовать данные МЭШ для моделирования поведения учителейПри изучении языков высокого уровня хотелось бы опираться на реальные ситуации, которые происходят с учителями. Эти ситуации описываются и моделируются в различных языках. Мы взяли несколько сред многоагентного моделирования, где агенты симулируют поведение учителей, и скрестили эти языки с данными, которые были извлечены из МЭШ.
    • 120px-Netlogo_mes.png
    Как включить Snap! проект в состав вики страницыИспользуем заклинание - snap project="Название" user="Имя_Автора" - примеры в тексте статьи
    Как заменить символы в строке?Дана строка. Необходимо заменить все символы "а" на "о".
    Как использовать Scratch APIКак использовать внешний API в средах визуального программирования
    Как использовать визуальные блоки на вики страницахБлагодаря специальному расширению в вики можно использовать текстовые блоки для представления программ на языке Scratch и Snap!
    Как использовать сцены в Snap!Требуется объединить несколько проектов и передать значения из одной сцены 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)
    … следующие результаты


    when green flag clicked
    set [pass v] to [0]
    set [swaps v] to [0]
    repeat until <<(pass) > [0]> and <(swaps) = [0]>>
      set [item v] to [0]
      change [pass v] by (1)
      set [swaps v] to [0]
      repeat ((length of [data v]) - (1))
        change [item v] by (1)
        if <(item ((item) + (1)) of [data v]) < (item (item) of [data v])> then
          set [value v] to (item ((item) + (1)) of [data v])
          replace item ((item) + (1)) of [data v] with (item (item) of [data v])
          replace item (item) of [data v] with (value)
          change [swaps v] by (1)
        end
      end
    end
    

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

    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. Участники могут использовать код проектов других участников. Создавать свои коллекции и приглашать других участников к работе над версиями своих проектов.