Объединение языков многоагентного моделирования в учебном процессе на базе 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 |
Формат реализации | |
Карта |
- Видеозапись выступления - https://vk.com/video-73108225_456240384 с 1 ч. 40 мин.
Description | Environment | |
---|---|---|
Вычислительное мышление | Объединение способностей человека и возможностей вычислительной техники. Способность усиливать свою деятельность, привлекая к себе на помощь программных агентов. Производные понятия - вычислительная наука, вычислительная история. | NetLogo StarLogo Nova Scratch Snap! Python R |
Description | Environment | |
---|---|---|
Minsky |
| Scratch Лого Wolfram |
Вычислительная дидактика
Описание | Область дидактики, рассматривающая новые дидактические отношения, когда обучающая машина учит другую обучаемую машину, когда обучающая машина учит человека или когда обучающий человек учит обучаемую программу или обучаемого агента. |
---|---|
Область знаний | Информатика, Педагогика |
Авторы | Papert |
Поясняющее видео | |
Близкие понятия | Дидактика, Вычислительная наука |
Среды и средства для освоения понятия | Semantic MediaWiki, Snap!, Scratch |
В процесс обучения, взаимодействия и построения знаний в современном мире вовлекаются не только люди, но и вычислительные машины. К привычным дидактическим отношениям, когда обучающий человек учит обучаемого человека, добавляются новые дидактические отношения, когда обучающая машина учит другую обучаемую машину, когда обучающая машина учит человека или когда обучающий человек учит обучаемую программу или обучаемого агента.
Человек | Компьютерный агент | |
---|---|---|
Человек | Традиционный дизайн, когда обучающий человек учит обучаемого человека, дополненный возможностями вычислительной техники | Конструкционизм, когда человек учится в процессе обучения программных агентов правилам поведения в цифровой среде. |
Компьютерный агент | Искусственные обучающие системы, когда компьютерная программа выступает в роли учителя для обучаемого человека. | Метапрограммирование и машинное обучение, когда одна компьютерная программа обучает другую программу. |
Литература
- Патаракин, Е.Д., 2023. Трансформация Вычислительной Дидактики Под Воздействием Генеративного Искусственного Интеллекта. БОЛЬШАЯ КОНФЕРЕНЦИЯ МГПУ сборник тезисов : в 3 т.. Том 1. Московский городской педагогический университет. Москва, 2023 Издательство: Издательство ПАРАДИГМА (Москва) 1, 14–17.
- Патаракин, Е.Д., 2022. Игровое поле вычислительной дидактики, in: Современная “цифровая” дидактика. Общество с ограниченной ответственностью “ГринПринт,” Москва, pp. 35–70.
- 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 Inventor | App Inventor является бесплатным инструментом для программирования для создания мобильных приложений для Android. Он был разработан Массачусетским технологическим институтом и предоставляет простой интерфейс для создания мобильных приложений, который доступен для любого пользователя. Для программирования в App Inventor используется визуальный язык программирования, очень похожий на язык Scratch и StarLogo Nova.
|
Blockly | |
CreatiCode | Среда для создания 3х мерных игр средствами блочного программирования |
DBSnap | Клон Snap! для работами с базами данных |
GP | Блочный язык общего назначения, который может использоваться не только в образовательных целях |
Gamefroot | |
Hopscotch | |
MicroBlocks | Язык программирования - клон языка Scratch специально спроектированный для управления физическими объектами |
NetsBlox | Визуальный блочный язык программирования - производный от Scratch и Snap! - внимание уделено сетевым возможностям, интеграции с Google картами. Внутри среды NetsBlox участники проектов могут коллективно редактировать блоки программы так же как это происходит в Google-документах. |
OctoStudio | Среда для разработки школьниками своих собственных игр на мобильных устройствах |
Pocket Code | Мобильное приложение для создание детьми игр и цифровых историй |
ScratchJR | Scratch Junior – это визуальная среда программирования для детей от 5 до 7 лет. С ее помощью малыши могут создавать мультики, расставляя блоки действий в последовательном порядке. |
Snap! | Блочный язык программирования для преподавания алгоритмов и структур данных. Snap! - потомок языка Scratch. В отличие от Scratch Snap! поддерживает лямбда-исчисление, объекты первого класса, процедуры, рекурсия и множество других возможностей. С версии 4.0 Snap! получил современное название и был переписан на JavaScript. |
StarLogo Nova |
|
Tynker | Визуальный блочный язык обучения - подобный Scratch |
Датасеты, связанные с информатикой
Description | |
---|---|
Collaborative knowledge ACM (dataset) | Датасет сформирован на основании запроса к цифровой библиотеке ACM – dl.acm.org. Поисковый запрос выглядит следующим образом:
|
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) | Лог-файл действий участников проекта Letopisi в 2006 году |
Scopus Games (dataset) | Датасет по публикациям о компьютерных играх, собранный в Scopus |
Студия Collab Challenge (dataset) | Это история совместной деятельности внутри Scratch студии Collab Challenge - https://scratch.mit.edu/studios/4789981/ - где в 2018 году собирались проекты на конкурс Collab Challenge. Данный датасет - возможность посмотреть деятельность сквозь призму данных Scratch API - 354 проекта
|
Цифровые инструменты учителей | Датасет о том, какие цифровые инструменты используются учителями учителями для решения различных задач
|
Возможность встраивать код программ (текст и визуальные блоки)
Из категории - Категория: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! |
Задать цвет части поля | Как задать цвет поля (или его части) для разных сред агентного моделирования |
Звёздное небо | Скрипт "засеивания" неба звёздами |
Изучить информатиков МЭШ | В датесете МЭШ есть учителя информатики. Мы хотим узнать информацию о них. |
Использование рекурсивного способа вычисления факториала в Snap! | Рекурсивный алгоритм вычисления факториала в Snap! |
Использовать данные МЭШ для моделирования поведения учителей | При изучении языков высокого уровня хотелось бы опираться на реальные ситуации, которые происходят с учителями. Эти ситуации описываются и моделируются в различных языках. Мы взяли несколько сред многоагентного моделирования, где агенты симулируют поведение учителей, и скрестили эти языки с данными, которые были извлечены из МЭШ.
|
Как включить Snap! проект в состав вики страницы | Используем заклинание - snap project="Название" user="Имя_Автора" - примеры в тексте статьи |
Как заменить символы в строке? | Дана строка. Необходимо заменить все символы "а" на "о". |
Как использовать Scratch API | Как использовать внешний API в средах визуального программирования |
Как использовать визуальные блоки на вики страницах | Благодаря специальному расширению в вики можно использовать текстовые блоки для представления программ на языке Scratch и Snap! |
Как использовать сцены в Snap! | Требуется объединить несколько проектов и передать значения из одной сцены Snap! в другую. Передать можно только значения внутри списка данных - Нельзя передать объекты между сценами |
Как обратиться к API из Snap! | Невозможно обратиться напрямую к большинству открытых API из Snap! Но, можно организовать такое обращение и обработку данных из JSON формата |
Как обратиться к внешним данным из Snap! | В Snap! очень просто обратиться к датасету в формате CSV или JSON, если он лежит на машине пользователя. Кроме того мы можем использовать блок (url) - обратиться к датасету и затем превратить его в таблицу в Snap! |
Как организовать обмен сообщениями через MQTT4Snap! | Возможно обмениваться сообщениями по протоколу MQTT через MQTT серверы -возможность связать Snap! проекты и устроить соревнование между участниками. Например, они могут передавать свои географические координаты
|
Как перевести Scratch в Snap! | Для того, чтобы перевести Scratch в Snap! нужно воспользоваться программой https://snapinator.github.io/#
|
Как получить изображение Scratch блоков | В ряде случаев для публикации материалов необходимо получить изображение блоков Scratch в виде графических файлов. Приложение https://scratchblocks.github.io/ позволяет получить блоки в формате png svg |
Как получить список случайных значений | В общем случае создаём исходно пустой список и добавляем в него указанное число чисел, находящихся в указанном интервале. Для Snap!
Список случайных чисел из %сколько от %min до %max |
Как проверить массив на наличие дублей | Как проверить массив на наличие дублей? Здесь приводятся решения на нескольких языках высокого уровня - JavaScript, Python, C++, NetLogo, Snap! |
Как работать со списками в Snap! | Что можно делать со списками в Snap! - Что для этого есть в этой среде программирования
|
Как редактировать собственный блок в Snap! | Просто щёлкнуть по блоку правой кнопкой мыши и выбрать команду edit и команды откроются в отдельном окне редактора |
Как сделать сортировку в массиве? | Отсортировать массив в порядке возрастания |
Как скопировать данные в буфер обмена в Snap! | Мы обработали или вырастили данные в среде Snap! и теперь мы хотим перенести эти данные в среду для анализа и визуализации. Простой и понятный способ - сохранить (экспортировать) значение переменной в csv или json. Но, если не хочется порождать промежуточные файлы то, можно использовать возможности расширения JavaScript |
Как собрать данные об отношениях участника в сети Scratch | У нас есть возможность обратиться к Scratch API и запросить информацию о тех, на кого подписался данный участник сообщества. И есть возможность запросить информацию о тех, кто подписался на данного участника |
Как управлять поведением агентов на основании их пространственных характеристик | Распространённая в играх и моделях ситуация, когда агента должен совершать действия на основании того, где он находится, кто находится с ним рядом и т.п. |
Как управлять поведением спрайта в Snap! | Как управлять поведением спрайта клавишами |
Какие есть функции для списков? | В различных языках программирования достаточно часто встречаются задачи обработки списков. В этой статье собраны функции для списков |
Лес со случайными деревьями | Скрипт рисования леса с деревьями, которые находятся в случайном месте и имеют случайный размер. |
Обратиться к объектам по их свойствам | Любая команда к агентам или объектам предполагает, что вы можете к ним обратиться, назвать их свойства и передать им указание что-то сделать. Например, всем страницам SMW из класса Язык программирования и свойством Ages::<10 показаться в формате нумерованного списка. Или всем черепах, с координатами по оси X > 0 и жёлтого цвета приказываю умереть
|
Организовать обмен сообщениями между агентами | Как организовать обмен сообщениями между агентами? И в Scratch и в Snap! действует театральная метафора, когда персонажи могут обмениваться сообщениями и реагировать на сообщения. При этом в Scratch сообщения рассылаются всем, а в Snap! есть возможность указать адресата сообщения |
Посчитать и сохранить значение | Посчитать и сохранить значение/ У нас есть множество зверей и все они собираются как-то взаимодействовать с колобком. И нам нужно, чтобы звери набрасывались на колобка не все сразу с криком “Я тебя съем”, а делали это по очереди. Как организовать эту очередь? |
Представить данные датасета в виде графа | Есть датасет и мы хотим превратить его в таблицу и граф, чтобы посмотреть на взаимосвязи узлов. |
Решить задачу коммивояжёра | Коммивояжер хочет побывать в каждом из 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 | Social Object | |
---|---|---|
CoMSES | CoMSES Net - Сеть для вычислительного моделирования в социальных и экологических науках. Это - открытое сообщество исследователей и преподавателей. Репозиторий - цифровое хранилище, поддерживающее исследования и передовые методы цитирования программного обеспечения, цифрового хранения, воспроизводимости и повторного использования моделей. | Программный код |
GitHub | Социальная сеть программистов, с возможностью хранить репозиторий проекта и все его изменения. GitHub - контроль доступа, багтрекинг, управлением задачами и вики для каждого проекта. Используется прежде всего для поддержания версий кода | Программный код |
Glitch | Сообщество для разработки веб-приложений | Программный код |
Habr | Хабр русскоязычный веб-сайт в формате системы тематических коллективных блогов (именуемых хабами) с элементами новостного сайта, созданный для публикации новостей, аналитических статей, мыслей, связанных с информационными технологиями, бизнесом и интернетом. | Программный код |
Modeling Commons | Сообщество, участники которого создают и обмениваются моделями NetLogo. | Программный код |
Roblox | Roblox — игровая онлайн-платформа и система создания игр, позволяющая любому пользователю создавать свои собственные и играть в созданные другими игры. | Программный код |
Stack OverFlow | Сеть создания контента в форме вопросов и ответов о программировании. | Программный код |
Сообщество GeoGebra | Социальная сеть, участники которой обмениваются материалами, созданными при помощи программы GeoGebra | Программный код |
Сообщество NetLogo | Сообщество пользователей, которые обмениваются моделями, написанными на языке NetLogo. | Программный код |
Сообщество Scratch | Сетевое сообщество детей и взрослых, обменивающихся своими проектами, написанными на языке Scratch | Программный код |
Сообщество Snap! | Сообщество исследователей, учителей и учащихся, использующих в своей деятельности язык Snap! Участники могут делиться своими проектами (Share, Publish). Создавать коллекции проектов, следить с действиями других участников (following) | Программный код |
Сообщество StarLogo | Сообщества обмена моделями и объектами в среде StarLogo Nova. Участники могут использовать код проектов других участников. Создавать свои коллекции и приглашать других участников к работе над версиями своих проектов. | Программный код |