Объединение языков многоагентного моделирования в учебном процессе на базе 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)

January 1, 1960

Lisp

Launch year: 1960
Ancestors: IPL
Descendants: Snap!
Descendants: Лого
Descendants: Scheme
Descendants: Julia
Descendants: Clojure
Descendants: Lua

January 1, 1966

РЕФАЛ

Launch year: 1966
Ancestors: Lisp

January 1, 1967

Лого

Launch year: 1967
Ancestors: Lisp
Descendants: NetLogo
Descendants: Scratch
Descendants: Snap!
Descendants: Squeak
Descendants: Boxer
Descendants: Lynx

January 1, 1972

Prolog

Launch year: 1972
Ancestors: Lisp
Descendants: Agentsheets
Descendants: Visual Prolog

January 1, 1975

Scheme

Launch year: 1975
Ancestors: Lisp
Descendants: Snap!
Descendants: Ruby
Descendants: Clojure
Descendants: Racket

January 1, 1980

Josef

Launch year: 1980
Ancestors: Лого
Descendants: Karel

January 1, 1980

Smalltalk

Launch year: 1980
Ancestors: Лого
Ancestors: Lisp
Descendants: Squeak
Descendants: Etoys
Descendants: Ruby
Descendants: Pharo

January 1, 1983

Perl

Launch year: 1983
Ancestors: Lisp
Ancestors: C++
Descendants: JavaScript
Descendants: Raku
Descendants: PHP
Descendants: Ruby

January 1, 1984

Boxer

Launch year: 1984
Ancestors: Лого
Descendants: OpenAI Codex

January 1, 1984

LogoWriter

Launch year: 1984
Ancestors: Лого

January 1, 1988

Wolfram

Launch year: 1988
Ancestors: Lisp
Ancestors: Prolog
Ancestors: Mathematica
Descendants: Julia
Descendants: Clojure
Descendants: Jupiter

January 1, 1989

StarLogo

Launch year: 1989
Ancestors: Лого
Descendants: NetLogo
Descendants: StarLogo Nova
Descendants: Scratch

January 1, 1991

Python

Launch year: 1991
Ancestors: Lisp
Ancestors: ABC
Ancestors: Perl
Ancestors: APL
Ancestors: Haskel
Descendants: JavaScript
Descendants: CoffeeScript
Descendants: Nim

January 1, 1992

UCB Logo

Launch year: 1992
Ancestors: Лого
Ancestors: Lisp
Descendants: NetLogo
Descendants: Etoys
Descendants: FMSLogo

January 1, 1994

AlgoBlock

Launch year: 1994
Ancestors: Лого

January 1, 1994

Racket

Launch year: 1994
Ancestors: Lisp
Ancestors: Scheme

January 1, 1995

Ruby

Launch year: 1995
Ancestors: Lisp
Ancestors: Perl
Ancestors: Scheme
Descendants: Raku

January 1, 1996

LogoBlocks

Launch year: 1996
Ancestors: Лого
Descendants: Lego Mindstorms

January 1, 1999

NetLogo

Launch year: 1999
Ancestors: Лого
Ancestors: StarLogo
Descendants: StarLogo Nova
Descendants: AgentScript
Descendants: GAMA

January 1, 2000

ПервоЛого

Launch year: 2000
Ancestors: Лого

January 1, 2003

Scala

Launch year: 2003
Ancestors: Lisp
Ancestors: Java
Descendants: Kotlin

January 1, 2006

AgentCubes

Launch year: 2006
Ancestors: Lisp
Ancestors: Agentsheets
Descendants: Scratch

January 1, 2006

Scratch

Launch year: 2006
Ancestors: Лого
Ancestors: Squeak
Ancestors: Agentsheets
Descendants: Snap!
Descendants: App Inventor
Descendants: GP
Descendants: ScratchJR

January 1, 2007

Church

Launch year: 2007
Ancestors: Lisp
Ancestors: Scheme

January 1, 2007

Clojure

Launch year: 2007
Ancestors: Lisp
Ancestors: Scheme
Descendants: Elixir

January 1, 2008

KTurtle

Launch year: 2008
Ancestors: Лого
Ancestors: Kumir

January 1, 2008

Nim

Launch year: 2008
Ancestors: Lisp
Ancestors: Python

January 1, 2010

App Inventor

Launch year: 2010
Ancestors: Scratch
Ancestors: Лого
Ancestors: Blockly
Descendants: Thunkable

January 1, 2010

Snap!

Launch year: 2010
Ancestors: Scratch
Ancestors: Лого
Ancestors: Lisp
Ancestors: Smalltalk
Ancestors: Scheme
Descendants: NetsBlox
Descendants: SciSnap!
Descendants: SQLsnap!
Descendants: DBSnap
Descendants: Snap4arduino

January 1, 2015

GP

Launch year: 2015
Ancestors: Scratch
Ancestors: Лого

January 1, 2015

NetsBlox

Launch year: 2015
Ancestors: Scratch
Ancestors: Snap!
Ancestors: Лого

January 1, 2017

StarLogo Nova

Launch year: 2017
Ancestors: NetLogo
Ancestors: Scratch
Ancestors: Лого

January 1, 2018

DBSnap

Launch year: 2018
Ancestors: Scratch
Ancestors: Snap!
Ancestors: Лого

 
РЕФАЛ
January 1, 1966

Lisp

РЕФАЛ

Лого

Prolog

Scheme

Josef

Smalltalk

Perl

Boxer

LogoWriter

Wolfram

StarLogo

Python

UCB Logo

AlgoBlock

Racket

Ruby

LogoBlocks

NetLogo

ПервоЛого

Scala

AgentCubes

Scratch

Church

Clojure

KTurtle

Nim

App Inventor

Snap!

GP

NetsBlox

StarLogo Nova

DBSnap

1810
1820
1830
1840
1850
1860
1870
1880
1890
1900
1910
1920
1930
1940
1950
1960
1970
1980
1990
2000
2010
2020
2030
2040
2050
2060
2070
2080
2090
2100
2110
2120
2130
2140
2150
1945
1946
1947
1948
1949
1951
1952
1953
1954
1955
1956
1957
1958
1959
1961
1962
1963
1964
1965
1966
1967
1968
1969
1971
1972
1973
1974
1975
1976
1977
1978
1979
1981
1982
1983
1984
1985
1986
1987
1988
1989
1991
1992
1993
1994
1995
1996
1997
1998
1999
2001
2002
2003
2004
2005
2006
2007
2008
2009
2011
2012
2013
2014
2015
2016
2017
2018
2019
2021
2022
2023
2024
2025
2026
2027
2028
2029
2031
2032


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


Описание Фрагмент генеалогической схемы происхождения агентных языков
Область знаний Информатика
Среды для создания диаграммы: 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

    whenuparrowkeypressedpointindirection0move10stepswhendownarrowkeypressedpointindirection180move10stepswhenrightarrowkeypressedpointindirection90move10stepswhenleftarrowkeypressedpointindirection-90move10steps

    Now your sprite will turn when it moves.

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

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

     Description
    ClockСкрипт циферблата c секундной, минутной и часовой стрелками, которые ходят как настоящие часы.
    Computer graphics in Snap!Как использовать возможности Snap! для представления понятий компьютерной графики.
    • Как графические данные могут использоваться в проектах на языке Snap!
    Dog chases cat and cat chases mouseПроект внутри которого 3 породы- собака, кошка, мышка
    FruitsРабота с клонами на примере проекта "Fruits" в Snap!
    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) — термин в информатике и искусственном интеллекте, который означает определение компьютерной программой наилучшего, оптимального маршрута между двумя точками.
    SpaceИспользование циклов при создании игр и моделей на примере проекта "Space" в Snap!
    Switching Between ScreensКак переключаться между различными сценами в Scratch. Скрипт проверяет, совпадает ли переменная экрана с экраном для отображения спрайтов. Если да, то спрайты будут отображаться и делать все, что от них требуется. Если нет, то спрайт останется скрытым и не запустит блоки для того времени, когда он будет открыт.
    Using Clones for Particle EffectsКак создать эффект частиц с помощью клонов?
    Where are you going?Алгоритм ветвления на примере проекта "Where are you going?" в Snap!
    Winter treeСкрипт рисования ёлочек, которые появляются в случайном месте и создают вид зимнего леса.
    Автомобильный конвеерРабота с клонами на примере проекта "Автомобильный конвеер" в Snap!
    Анализ данныхПосле того, как мы собрали или вырастили данные, наступает этап их анализа. В прикладной науке о данных выделяется определённая последовательность действий, которые совершаются над данными для их лучшего понимания и объяснения.
    БантикиПроект "Бантики"
    Блоки для клонов: создание, присвоение ID, команда всем клонам, удаление клоновОписание блоков для работы с клонами. Создание, присвоение ID, команда всем клонам, удаление клонов.
    Вернуться к предыдущей версии текстаРаспространённая ситуация, когда после внесённых изменений программа перестаёт работать или что-то идёт не так. Большинство современных систем помнят историю версий и позволяют вернуться к прежним версиям. Например, в MediaWiki - история страницы. В StarLogo Nova - история версий (Current Version) View Project History.
    Взаимодействие двух шариков и их клонированиеИгра со взаимодействием двух шариков. Удар чёрным шариком позволяет создавать ненадолгое время клонов, которые в скором времени исчезают.
    Выбрать ближайшего к мячу партнёраСитуация в игре с мячом, когда игрок будет двигаться к мячу, только если он ближе к мячу, чем другие игроки своей команду. Необходимо проверить, кто из партнёров может быть ближе. Игрок может оценить своё положение и положение других игроков. Реализовано для поля Snap! 120px-Shortest_to_ball.png
    Девочки и мальчикиГенерация мальчиков и девочек и данных о них (положение, возраст, чем занимаются (прыгают или спят) в табличном виде) "Список девочек и мальчиков" в Snap!
    Задать цвет части поляКак задать цвет поля (или его части) для разных сред агентного моделирования
    Звёздное небоСкрипт "засеивания" неба звёздами
    Изучить информатиков МЭШВ датесете МЭШ есть учителя информатики. Мы хотим узнать информацию о них.
    Использование рекурсивного способа вычисления факториала в 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!Как управлять поведением спрайта клавишами
    Какие есть функции для списков?В различных языках программирования достаточно часто встречаются задачи обработки списков. В этой статье собраны функции для списков
    … следующие результаты

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

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