Программирование на языках высокого уровня
Планируемые результаты обучения (Знать, Уметь, Владеть) | Целью освоения дисциплины является формирование у студентов понимания общих принципов использования языков высокого уровня
Результаты обучения: обучающийся понимает и умеет использовать базовые конструкции языков программирования высокого уровня
|
---|---|
Содержание разделов курса |
|
Видео запись | |
Среды и средства, которые поддерживают учебный курс | Snap!, Python, PHP, Semantic MediaWiki, Lisp, Lua, R, JavaScript |
Книги, на которых основывается учебный курс | The Wiki Way: Quick Collaboration on the Web, Стили и методы программирования, Structure and Interpretation of Computer Programs, Simply Scheme: Introducing Computer Science |
- Курс предназначен для магистрантов Категория:ИВО-241м - 2024 год
- Категория:ИВО-231м - 2023
- Категория:ПБД221м и Категория:РМП221м - 2022
Содержание разделов дисциплины
Введение
Вычислительное мышление, как способность объединять свои способности с возможностями вычислительной техники и говорить с компьютерными агентами на различных языках. Зачем такое разнообразие языков программирования - они помогают думать и действовать лучше.
Особенности курса
Перечень языков визуально-блочного программирования, активных в настоящее время {{#ask: [[Category:Язык программирования]] [[Визуальная реализация::Блоки-Иконки]] [[Description::+]] [[ActiveNow::Project is active]] | ?Description | ?Адрес_сообщества }}
Description | Адрес сообщества | |
---|---|---|
AgentCubes | Учебный блочный язык программирования, ориентированный на создание трёхмерных игр, цифровых историй и симуляций | https://agentcubesonline.com/ |
Agentsheets | Первый язык блочного программирования для создания игр, симуляций и освоения вычислительного мышления. Разработан лабораторией масштабируемого дизайна | http://www.agentsheets.com/ |
AlgoBrix | Обучающий язык блочного программирования, поддерживающий программирование роботов и кубиков | http://www.algobrix.com |
Alice | Язык для создания трехмерных миров и обучения основам программирования. Alice представляет собой среду, в которой можно манипулировать 3D-объектами (двигать, вращать, менять цвет и т. д.) и создавать программы, генерирующие анимацию в виртуальных мирах. Она очень похожа на профессиональные современные IDE. Рабочая плоскость разбита на несколько окон: в одном в реальном времени отображается виртуальный мир; в другом присутствует дерево объектов, и для каждого из них предоставляется набор доступных свойств; центральной часть отведена, естественно, под редактор исходного кода; имеется и специальная область событий, позволяющая управлять всем происходящим. | http://www.alice.org/ |
App Inventor | App Inventor является бесплатным инструментом для программирования для создания мобильных приложений для Android. Он был разработан Массачусетским технологическим институтом и предоставляет простой интерфейс для создания мобильных приложений, который доступен для любого пользователя. Для программирования в App Inventor используется визуальный язык программирования, очень похожий на язык Scratch и StarLogo Nova.
| http://appinventor.mit.edu/ |
CreatiCode | Среда для создания 3х мерных игр средствами блочного программирования | https://www.creaticode.com/ |
DBSnap | Клон Snap! для работами с базами данных | https://ysilva.cs.luc.edu/dbsnap/app.html |
DRAKON | Дружелюбный русский алгоритмический язык, который обеспечивает наглядность (сокр. ДРАКОН) — визуальный алгоритмический язык программирования и моделирования | http://drakon.su/ |
GP | Блочный язык общего назначения, который может использоваться не только в образовательных целях | https://gpblocks.org/ |
Gamestar Mechanic | Среда и сообщество для создания игр. Gamestar Mechanic is an online game design platform built as a game about making games | https://gamestarmechanic.com/ |
MicroBlocks | Язык программирования - клон языка Scratch специально спроектированный для управления физическими объектами | https://microblocks.fun/ |
NetsBlox | Визуальный блочный язык программирования - производный от Scratch и Snap! - внимание уделено сетевым возможностям, интеграции с Google картами. Внутри среды NetsBlox участники проектов могут коллективно редактировать блоки программы так же как это происходит в Google-документах. | https://netsblox.org/ |
OctoStudio | Среда для разработки школьниками своих собственных игр на мобильных устройствах | https://www.media.mit.edu/projects/octostudio/overview/ |
Pocket Code | Мобильное приложение для создание детьми игр и цифровых историй | https://share.catrob.at/pocketcode |
SciSnap! | Расширения языка Snap! для использования в изучении математики | |
Scratch | Среда программирования, которая позволяет детям создавать собственные анимированные и интерактивные истории, игры и другие произведения. Этими произведениями можно обмениваться внутри международной среды, которая постепенно формируется в сети Интернет. Scratch — это учебный блочный язык программирования, позволяющий ученикам создавать игры, цифровые истории. Среда разработки дает возможность детям редактировать аудиофайлы и монтировать небольшие, но полноценные видеоролики. В новые версии языка создатели обещают добавить функционал для создания собственных мобильных приложений. | https://scratch.mit.edu |
ScratchJR | Scratch Junior – это визуальная среда программирования для детей от 5 до 7 лет. С ее помощью малыши могут создавать мультики, расставляя блоки действий в последовательном порядке. | https://scratchjr.org/ |
Snap! | Блочный язык программирования для преподавания алгоритмов и структур данных. Snap! - потомок языка Scratch. В отличие от Scratch Snap! поддерживает лямбда-исчисление, объекты первого класса, процедуры, рекурсия и множество других возможностей. С версии 4.0 Snap! получил современное название и был переписан на JavaScript. | http://snap.berkeley.edu/ |
Snap4arduino | Язык программирования для Arduino
| https://snap4arduino.rocks/ |
Squeak | Среда разработки живых интерактивных программ на основе SmallTalk | http://www.squeak.org/ |
StarLogo Nova |
| https://www.slnova.org |
Thunkable | Thunkable был создан в 2015 году на основе более известного конструктора приложений MIT App Inventor 2, как платформа для разработки на Android. Со временем инструмент обрел кросс-платформенность (iOS и Android) и стал платформой для разработки веб-приложений. Пользователи Thunkable могут добавлять кнопки, текст, изображения и даже карты, чтобы создать полнофункциональное приложение с такими функциями, как push-уведомления, датчики, геолокация, камера, Bluetooth, автономные возможности, и другое. Создание приложений в базовом аккаунте является бесплатным, но при этом можно создавать только общедоступные приложения. | https://thunkable.com/ |
ToonTalk | Мини-язык, в котором ученик может собирать алгоритмы из объектов (вещей) на рабочем поле. Полностью веб-приложение. | https://toontalk.github.io/ToonTalk/ |
ПервоЛого | ПервоЛого — универсальная проектная среда на базе языка Лого для начального и дошкольного образования. В ПервоЛого можно создавать проекты, даже не умея читать и считать — как очень простые, состоящие из картинки и текста или звука, так и весьма сложные, включающие в себя различные запрограммированные объекты, роль которых исполняет черепашка. |
Понятия
Description | Inventor | |
---|---|---|
1 ученик:1 компьютер | Модель мобильного обучения «1 ученик : 1 компьютер» («модель 1:1», eLearning 1:1) - это образовательная ситуация, в которой основным инструментом обучения школьника является компьютер, а в качестве методов обучения используются технологии и сервисы сетевого взаимодействия, информационного поиска и создания цифровых объектов. Оптимальным вариантом реализации модели является тот, при котором в распоряжении каждого учащегося и каждого учителя имеется собственный портативный, связанный с компьютерами других учащихся по беспроводной локальной сети, ноутбук, имеющий доступ к школьному или классному серверу (роль последнего может выполнять компьютер учителя) и имеющий выход в сеть интернет. | Kay Papert |
API | Интерфейс прикладного программирования application programming interface (API) - — описание способов взаимодействия одной компьютерной программы с другими. API (интерфейс прикладного программирования) упрощает процесс программирования при создании приложений, абстрагируя базовую реализацию и предоставляя только объекты или действия, необходимые разработчику. Если графический интерфейс для почтового клиента может предоставить пользователю кнопку, которая выполнит все шаги для выборки и выделения новых писем, то API для ввода/вывода файлов может дать разработчику функцию, которая копирует файл из одного места в другое, не требуя от разработчика понимания операций файловой системы. | |
Backpack | Backpack - Рюкзак - понятие инструмента, куда можно положить функции, скрипты, звуки, картинки и т.п. полезные вещи для дальнейшего использования в своих программах.
| |
Big O notation | «O» большое — математические обозначения для сравнения асимптотического поведения (асимптотики) функций. Используются в различных разделах математики, но активнее всего — в математическом анализе, теории чисел и комбинаторике, а также в информатике и теории алгоритмов. | Бахман |
CSV | CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми. | |
Complex network analysis | Complex network analysis refers to the study of large networks that possess properties which could not be found otherwise in simple graphs. They generally represent bigger systems, like the networks of all web pages on the WWW. It has emerged as a new field comprising basics of graph theory, community detection and machine learning. These networks can be studied in static or dynamic arrangement, depending on the nature of the problem and the data available. Complex networks are of two basic types that are scale-free networks and random or small-world network. Scale-free networks are more loosely connected, having long tails and fewer paths between pairs of nodes. | |
DREAM | Спецификация Descriptive Agent based Modeling DREAM используется для описания и представления многоагентных моделей. | Niazi |
Dashboard | Дашборд — это информационная панель, которая получает данные из других систем и отображает их в понятном виде. — «приборная панель» или «приборная доска». Дашборды бывают интерактивными и данные в нем - кликабельными. Информация из различных источников автоматически собирается, группируется и представляется на дашборде. | |
Dynabook | Dynabook — концепция устройства для обучения. Создана Аланом Кеем в 1968 году, за два года до основания Xerox PARC. Кей хотел сделать «персональный компьютер для детей всех возрастов». | Kay |
FaaS | Уровень абстракции, более известный как бессерверные вычисления, ориентирован скорее на тех, кто занимается разработкой . Аппаратные ресурсы абстрагированы, и пользователь может сосредоточиться на создании ПО, а не на управлении инфраструктурой : это забота поставщика. FaaS может быть особенно интересным вариантом для микро- и наносервисов, актуальных для мобильных приложений и интернета вещей. Примеры FaaS — AWS Lambda и Google Cloud Functions. | |
Flocking | Стая, образование стаи - процесс формирования коллективного поведения без каких-либо руководящих указаний в результате наблюдения за поведением товарищей по стае. | Wilensky Reynolds |
Flowchart | Блок-схема — распространённый тип схем (графических моделей), описывающих алгоритмы или процессы, в которых отдельные шаги изображаются в виде блоков различной формы, соединённых между собой линиями, указывающими направление последовательности. В вики создаются и отображаются при помощи языков graphviz, PlanUML и mermaid | |
Foo | Foobar или foo — это метапеременная, а также текст-заполнитель, используемый в программировании или в документациях, связанных с программированием. Этот термин используется для наименования переменных, функций или команд, точная идентичность которых не важна и служит только для демонстрации концепции. | |
GIS | Геоинформационная система (географическая информационная система, ГИС) — система сбора, хранения, анализа и графической визуализации пространственных (географических) данных и связанной с ними информации о необходимых объектах. Понятие геоинформационной системы также используется в более узком смысле — как инструмента (программного продукта), позволяющего пользователям искать, анализировать и редактировать как цифровую карту местности, так и дополнительную информацию об объектах | |
GPT | GPT = stands for generation Generative Pre-trained Transformer | |
Game design | Область разработки компьютерных игр | |
HTML | HTML — язык гипертекстовой разметки | |
HTTP | HTTP является основой обмена данными для Всемирной паутины. Это независимый от языка программирования протокол, предназначенный для обмена документами (также называемыми ресурсами) между приложениями через интернет. Протокол HTTP используется широким спектром приложений, наиболее известными из которых являются веб-браузеры. | |
Inquiry based learning | Исследовательское обучение или обучение через открытия — педагогический подход, разработанный в 1960-х годах как ответ на традиционные формы обучения, в которых требовалось запоминания информации из учебных материалов. Философия «обучения через открытие» происходит из конструктивистских теорий обучения, таких, как работы Пиаже, Дьюи, Выготского и Паулу Фрейре | Выготский Пиаже Papert Дьюи |
JSON | JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript. Как и многие другие текстовые форматы, JSON легко читается людьми. Формат JSON был разработан Дугласом Крокфордом. Несмотря на то, что он очень похож на буквенный синтаксис объекта JavaScript, его можно использовать независимо от JavaScript, и многие среды программирования имеют возможность читать (анализировать) и генерировать JSON. | Крокфорд |
K-means | Метод k-средних (англ. k-means) — наиболее популярный метод кластеризации. Действие алгоритма таково, что он стремится минимизировать суммарное квадратичное отклонение точек кластеров от центров этих кластеров. | |
LMS | Lms (learning management system) - программное приложение для администрирования учебных курсов в рамках дистанционного обучения. | |
Learning design | Термин учебный дизайн (Learning Design) дизайн учебных сценариев, сформировался в период 2000 – 2007 гг. Основной подход дизайна учебных сценариев связан с разработкой спецификации формального языка, который могли бы понимать и выполнять не только люди, но и компьютерные программы. Второй, более неформальный подход, связан с тем, что большее внимание уделяется педагогике и действиям, которые совершает ученик, а не учебным материалам и учебным объектам, которые представляются учебными центрами. | |
MQTT | MQTT (Message Queue Telemetry Transport) – это основанный на стандартах протокол, или набор правил, обмена сообщениями, используемый для взаимодействия между компьютерами. Интеллектуальные датчики, носимые устройства и другие устройства Интернета вещей (IoT) обычно передают и получают данные по сетям с ограниченными ресурсами и пропускной способностью. Эти устройства IoT используют MQTT для передачи данных, поскольку он прост в реализации и может эффективно передавать данные IoT. MQTT поддерживает передачу сообщений от устройств в облако и в обратном направлении. | Стэнфорд-Кларк |
Markdown | Markdown (Маркдаун) - это облегченный язык разметки с синтаксисом форматирования обычного текста, на основе которой могут быть созданы документы разного формата - HTML (веб страницы), PDF, документы в формате MS Word, интерактивные приложения. | |
Memex | Мемекс (англ. memex, словослияние memory и index) — наименование гипотетического прототипа гипертекстовой системы, описанной Бушем в эссе «Как мы можем мыслить», опубликованном в журнале The Atlantic в 1945 году. Буш изобразил мемекс как устройство, в котором человек сможет хранить свои книги, записи и контакты и которое «выдаёт нужную информацию с достаточной скоростью и гибкостью». Мемекс позволял бы существенно расширить и дополнить возможности памяти человека. Концепция мемекса оказала большое влияние на разработку ранних гипертекстовых систем | Буш |
ODD принципы | Протокол описания модели при её публикации: The Overview, Design concepts and Details (ODD) protocol for describing Individual- and Agent-Based Models (ABMs) is now widely accepted and used to document such models in journal articles.
Протокол ODD состоит из 21 элемента, которые разделены на три категории: «Обзор» (Overview), «Концепции проектирования» (Design concepts) и «Детали» (Details); отсюда и аббревиатура ODD. Каждая из этих категорий служит своей цели: дать обзор, объяснить, как использовались концепции дизайна, важные для модели, и объяснить все детали концепции модели. Принципы дизайна исследовательской многоагентной модели. 21 принцип разбит по группам. Например:
| Railsback Grimm |
Prompt | Промпт (от англ. prompt – «побуждать») – это запрос, вводные данные, которые вводит пользователь, когда общаетесь с нейросетью. «Промптинг (prompting) — это способ программного управления планированием вашей модели машинного обучения, который позволяет пользователю задать начальные условия для модели, такие как фраза или ключевые слова, которые модель должна использовать для создания ответа.
| |
REST | REST (от англ. Representational State Transfer — «передача репрезентативного состояния» или «передача „самоописываемого“ состояния») — архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Другими словами, REST — это набор правил того, как программисту организовать написание кода серверного приложения, чтобы все системы легко обменивались данными и приложение можно было масштабировать. REST представляет собой согласованный набор ограничений, учитываемых при проектировании распределённой гипермедиа-системы. | Филдинг |
Remix | Реми́кс (англ. remix) — версия музыкального произведения, записанная позже оригинальной версии, как правило, в более современном варианте аранжировки. Иногда создаётся путём «перемешивания» нескольких частей исходной композиции, наложения на неё различных звуков, спецэффектов, изменения темпа, тональности и т. п | |
SLAM | SLAM (англ. simultaneous localization and mapping — одновременная локализация и построение карты) — метод, используемый в мобильных автономных средствах для построения карты в неизвестном пространстве или для обновления карты в заранее известном пространстве с одновременным контролем текущего местоположения и пройденного пути. Популярные методы приближённого решения данной задачи — фильтр частиц и расширенный фильтр Кальмана. Некоторые реализации метода используются в беспилотных автомобилях, летательных аппаратах, автономных подводных аппаратах, планетоходах, и даже внутри человеческого тела. | |
Sprite | Спрайт - sprite - графический объект в компьютерной графике. В ряде визуальных языков программирования спрайт присутствует как объект, наделённый собственными свойствами и методами | |
Team Assembly | Team Assembly - формирование команд. Ключевое понятие в области Team Science - как образуются команды | Guimera |
Teammate | Товарищ по команде - teammate | |
URI | URI— унифицированный (единообразный) идентификатор ресурса. URI — последовательность символов, идентифицирующая абстрактный или физический ресурс. Ранее назывался Universal Resource Identifier — универсальный идентификатор ресурса. | |
URL | Унифицированный указатель ресурса (от англ. Uniform Resource Locator, сокр. URL — система унифицированных адресов электронных ресурсов, или единообразный определитель местонахождения ресурса. Используется как стандарт записи ссылок на объекты в Интернете (Гипертекстовые ссылки во «всемирной паутине» www). | Бернерс-Ли |
User interface | Интерфе́йс по́льзователя, он же по́льзовательский интерфейс (UI — англ. user interface) — интерфейс, обеспечивающий передачу информации между пользователем-человеком и программно-аппаратными компонентами компьютерной системы. | |
VOMAS | VOMAS (Virtual Overlay Multi-agent System) - подход к описанию многоагентных систем. В основе подхода лежит использование данных для проверки адекватности модели. | Niazi |
WWW | Всемирная паутина — глобальное информационное пространство, основанное на физической инфраструктуре сети Интернет и гипертекстовом протоколе передачи данных HTTP. Всемирную паутину образуют миллионы веб-серверов — программ, запускаемых на подключённых к сети компьютерах и использующих протокол HTTP для передачи данных. | |
XML | XML (Extensible Markup Language) - это язык разметки, описывающий целый класс объектов данных, называемых XML-документами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. | |
Абстракция | Составной элемент вычислительного мышления. Фундаментальная идея абстракции состоит в разделении несущественных деталей реализации подпрограммы и характеристик, существенных для корректного её использования. | Harvey |
Автономия | Способность человека выбирать и иметь выбор. Подробно рассматривается в теории самодтерминации. | Deci |
Агент | Агенты - это автономные объекты, которые могут самостоятельно реагировать на внешние события и выбирать соответствующие действия. Это - некто или нечто, выполняющий инструкции. В информатике - сущность, которая расположена в некоторой среде и способна в этой среде к автономным целенаправленным действиям. | Papert |
Агентное моделирование | Агентное моделирование (agent-based model) (ABM)— метод имитационного моделирования, исследующий поведение децентрализованных агентов и то, как такое поведение определяет поведение всей системы в целом. В отличие от системной динамики аналитик определяет поведение агентов на индивидуальном уровне, а глобальное поведение возникает как результат деятельности множества агентов (моделирование «снизу вверх»). ABM представляют собой модели, в которых отдельные лица или агенты описываются как уникальные и автономные объекты, которые обычно взаимодействуют друг с другом и с окружающей их средой на местном уровне. Агентами могут быть организмы, люди, предприятия, учреждения и любые другие объекты, преследующие определенную цель. Когда мы даем агентам правила адаптации к изменениям в их среде и к тому, что делают другие агенты, тогда поведение каждого отдельного агента и, следовательно, поведение всей системы вытекает из этих правил, характеристик агентов и окружающей среды. Эмерджентность - это основная объясняющая концепция агентного моделирования. Эпштейн и Акстелл (1996) удачно описали этот вид объяснения своим знаменитым вопросом:
| Wilensky Epstein Railsback Grim |
Адаптация | Адапта́ция (лат. adapto «приспособляю») — приспособление строения и функций организма, его органов и клеток к условиям внешней среды. Процессы адаптации направлены на сохранение гомеостаза.
| Дарвин Павлов Селье |
Активное эссе | An “Active Essay” is a new kind of literacy, combining a written essay, live simulations, and the programs that make them work in order to provide a deep explanation of a dynamic system. The reader works directly with multiple ways of representing the concepts under discussion. By “playing with” the simulations and code, the reader gets some hands-on experience with the topic. Active Essays -термин Алана Кея «активное эссе», где виды изложения и аргумента, которые можно ожидать в эссе, усиливаются благодаря тому, что интерактивная программа является одним из многих типов медиа для нового типа документа. | Kay |
Актор | А́ктор — действующий субъект (индивидуальный или коллективный); индивид, социальная группа, организация, институт, общность людей, совершающих действия, направленные на других.
Актор в агентно-ориентированном программировании и модели акторов — программная сущность заданной структуры и механизмов взаимодействия. А́ктор в UML (англ. actor) — множество логически связанных ролей, исполняемых при взаимодействии с прецедентами или сущностями. | Латур |
Акторно-сетевая теория | Ключевое положение теории состоит в том, что участники сетей — люди — рассматриваются наравне со всеми другими сущностями, включенными в сеть. Объектом изучения акторно-сетевой теории является сеть социальных взаимодействий, неотделимая от социальных акторов. Акторно-сетевая теория обосновывает равенство всех узлов сети тем, что без других сущностей человек не может существовать ни одного мгновения. Внутри акторно-сетевой теории люди не имеют никакого преимущества перед объектами или орудиями. Отношения между людьми, вещами, медиаторами, компьютерными программами полностью симметричны. Люди, орудия и объекты рассматриваются как равные узлы гибридной сети. | Латур |
Алгоритм | Алгоритм — конечная совокупность точно заданных правил решения некоторого класса задач или набор инструкций, описывающих порядок действий исполнителя для решения определённой задачи. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Независимые инструкции могут выполняться в произвольном порядке, параллельно, если это позволяют используемые исполнители.
Aлгоритм (algorithm) — это любая корректно определенная вычислительная процедура, на вход (input) которой подается некоторая величина или набор величин, и результатом выполнения которой является выходная (output) величина или набор значений. Таким образом, алгоритм представляет собой последовательность вычислительных шагов, преобразующих входные величины в выходные. | |
Анализ социальных сетей/Ключевые понятия | Статья, в которой собраны ключевые понятия для анализа социальных сететей | Барабаши Морено |
… следующие результаты |
Авторы и книги, которые оказали влияние на курс
Языки высокого уровня. Типология языков
- Используя WebGrid соберите поле своих собственных представлений о языках высокого уровня
Lisp | Prolog | C | Python | Snap!(Scratch) |
---|---|---|---|---|
(progn(setq x"Здравствуй, учебный курс!")x)
|
:-Print('Здравствуй, учебный курс!').
|
#include <stdio.h>
int main(void)
{printf("Здравствуй, учебный курс!");
return 0;}
|
print("Здравствуй, учебный курс!")
|
когда спрайт нажат сказать ["Здравствуй, учебный курс!"] |
Лента времени обучающих языков (от Lisp & Logo)
Паттерны поведения компьютерных агентов и их возможная реализация
Description of problem | Solution | |
---|---|---|
Генерировать новых агентов | Агент порождает поток других агентов - например, в экологических моделях рождение используется для создания потомков, в играх из пистолета вылетают пули, которые он порождает, в историях Scratch капли дождя клонируются и падают из тучи на землю. | Можно использовать породы или клоны. Например, в NetLogo:
|
Накапливать энергию | Агент живёт в среде, перемещается, выполняет задания и накапливает энергию или собирает очки |
|
Перевозить другого агента на себе | Транспортировка представляет собой ситуацию, когда один агент перевозит на себе другого агента. Например, черепаха в Frogger несёт лягушку, пересекая реку. В экологических симуляциях процесс транспортировки можно использовать, например, для перевозки пыльцы пчёлами. |
|
Перемещаться случайным образом | Агент или агенты перемещаются по экрану случайным образом - стандартная для многих игр и симуляций ситуация, которую надо уметь воспроизводить - термиты, птицы и рыбы при формировании стай изначально перемещаются случайным образом. | Агент поворачивается в направление, которое выбирается случайным образом и делает ход в этом направлении. |
Поглощать агентов |
| Прятать агентов или просто их убивать или умирать самому |
Подчиняться клавишам клавиатуры | Реагировать на клавиши клавиатуры Движение клавиатуры: нажатия кнопок клавиатуры управляют движением агента. И здесь могут быть паттерны типа Прыгать - как писал Пейперт в этой статье писал про Марио и как воспроизвести поведение Марио | Использовать блоки управления в сочетании с блоками движения |
Поиск восхождением к вершине | Поиск восхождением к вершине - алгоритм поиска в компьютерных науках, когда агент просматривает значения переменных на ближайших полях и на поле с максимальным значением переменной. Использование алгоритма поиск восхождением к вершине можно наблюдать в таких играх как Sims или Pac-Man, когда призраки преследуют Pacman, следуя наивысшему значению запаха Pac-man, который распространяется по всему полю см. http://ccl.northwestern.edu/netlogo/models/Pac-Man | Использовать встроенные команды NetLogo
|
Превращаться в другого агента | Превращение - один агент превращается в другого агента. Возможный вариант - агент одной породы превращается в агента другой породы. | В примере на Scratch - cпрайт клонируется и содержит в себе разные породы - демонов и драконов. При столкновении с агентом другой породы агент может изменять собственную породу и становиться другим. Например, из породы демонов переходить в породу драконов. В NetLogo можно просто поменять принадлежность к породе и соответственно свойства агента. |
Преследовать другого агента | Один агент преследует другого агента - поворачивается в его сторону или поворачивается в том же направлении, куда движется другой агент | Используются команды повернуться к другому агенту |
Распространяться | Диффузия: паттерн распространения, когда вы можете распространять определённое количество агента на других агентов, расположенных по близости за счёт процесса диффузии. Например, в модели муравьёв в NetLogo муравьи выделяют вещества феромоны, которые диффундируют на ближайшие поля игрового поля. | В некоторых средах конструирования возможность диффузии заложена изначально. Например, в NetLogo стандартная команда к точкам - пятнам на экране diffuse |
Сталкиваться |
| В ряде среде есть специальный блок Collision - что делать агенту в случае столкновения с другим агентом. Для Scratch решение собирается из блоков сенсоров - если я касаюсь другого агента (указать какого именно), то ... |
Тащить | Тащить - паттерн "тащить" противоположен по значению паттерну толкать - агент может тащить за собой другого агента или агентов. Например, поезд тащит за собой вагоны, лошадь тащит за собой сани, буксир тащит за собой баржи или плот. | |
Толкать | Паттерн "толкать" — это паттерн, который мы видим во многих играх. Агент должен толкать ящики или мешки с золотом. Когда игрок толкает коробку или мешок, эти объекты движутся в том направлении (вверх, вниз, вправо или влево), в котором их толкнули. | Объект или Агент, над которым совершается действие, получает сигнал от агента субъекта деятельности, поворачивается в ту же сторону, куда смотрит толкающий агент и двигается в эту сторону. |
Пример реализации простых паттернов поведения агентов в среде Scratch или в среде Snap!
Работа с изображением
https://snap.berkeley.edu/snap/snap.html#present:Username=patarakin&ProjectName=image_data
Загрузка CSV данных
Работа с изображением как с данными
Стандартные типы данных
Для Snap!
Концепции программирования. Распространённые языковые конструкции
Контейнеры для хранения данных
Функциональное программирование
- Языки функционального программирования общего назначения
{{#ask: [[Category:Язык программирования]] [[Назначение языка::Язык общего назначения]] [[Programming paradigm::Функциональное программирование]] | ?Description }}
Description | |
---|---|
Clojure | Clojure является функциональным языком программирования с поддержкой функций в качестве объектов первого класса (first class objects) и неизменяемыми (за исключением специальных случаев) данными, включая поддержку "ленивых" коллекций данных. Современный диалект Лиспа, язык программирования общего назначения с поддержкой разработки в интерактивном режиме, поощряющий функциональное программирование и упрощающий поддержку многопоточности. Clojure работает на платформах JVM и CLR. Clojure отличает философия «код как данные» (гомоиконность) и развитая система лисп-макросов. |
Fennel | Fennel is a programming language that brings together the speed, simplicity, and reach of Lua with the flexibility of a lisp syntax and macro system. |
GP | Блочный язык общего назначения, который может использоваться не только в образовательных целях |
JavaScript | JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса. |
Lisp | LISP (от англ. LISt Processing language — «язык обработки списков», современное написание: Lisp) — семейство языков программирования, программы и данные в которых представляются в виде списков. |
Scala | Scala — мультипарадигмальный язык программирования, спроектированный кратким и типобезопасным для простого и быстрого создания компонентного программного обеспечения, сочетающий возможности функционального и объектно-ориентированного программирования. |
Scheme | Scheme — функциональный язык программирования, один из трёх наиболее популярных диалектов Лиспа. Обладает минималистичным дизайном, содержит минимум примитивных конструкций и позволяет выразить всё необходимое путём надстройки над ними. Например, использует всего два механизма организации циклов — хвостовую рекурсию и итеративный подход (в котором используются временные переменные для сохранения промежуточного результата). |
Swift | Язык программирования Swift используют, чтобы писать приложения и программы для устройств Apple: айфонов, айпадов, умных часов, телевизоров, макбуков и стационарных компьютеров с macOS. В iOS-разработке этот язык считается стандартом. |
РЕФАЛ | РЕФАЛ (Рекурсивных функций алгоритмический) — один из старейших функциональных языков программирования, ориентированный на символьные вычисления: обработку символьных строк (например, алгебраические выкладки); перевод с одного языка (искусственного или естественного) на другой; решение проблем, связанных с искусственным интеллектом. Соединяет в себе математическую простоту с практической направленностью на написание больших и сложных программ. |
Функции высшего порядка
Объектно-ориентированное программирование
- Организовать обмен сообщениями между агентами
- Генерировать новых агентов и другие паттерны вычислительного мышления
- Использовать диаграмму классов
Языки визуального программирования
Визуальная реализация :Блоки-Иконки
AgentCubes, Agentsheets, AlgoBlock, AlgoBrix, Alice, App Inventor, Beetle Blocks, Blockly, Boxer, CreatiCode, DBSnap, DRAKON, Etoys, GP, GameBlox, Gamefroot, Gamestar Mechanic, Hopscotch, Kodu, LogoBlocks, Looking Glass, MakeCode, Mama, MicroBlocks, Move the Turtle, NetsBlox, OctoStudio, Piktomir, Pocket Code, Robo Pro Light, SciSnap!, Scratch, ScratchJR, Snap!, Snap4arduino, Sophie, Squeak, Stagecast Creator, StarLogo Nova, Tangible Programming Bricks, The Incredible Machine, Thunkable, ToonTalk, Битва Големов, ПервоЛого
Примеры создания моделей в среде StarLogo Nova
Возможность встраивать модели StarLogo Nova + NetLogo Web
Алгоритмы поиска и сортировки в разных языках
Scratch
Description | |
---|---|
Сортировка пузырьком | Сортиро́вка простыми обменами, сортировка пузырько́м (англ. bubble sort) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Метод сортировки обменами лежит в основе некоторых более совершенных алгоритмов, таких как шейкерная сортировка, пирамидальная сортировка и быстрая сортировка. |
Модули и библиотеки
Описание | Диаграмма, в которой демонстрируются основные принципы модульного программирования |
---|---|
Область знаний | Информатика, Управление |
Среды для создания диаграммы: | Graphviz |
Как узнать какие модули (Extension) уже есть в системе
Где посмотреть всё разнообразие доступных расширений
- https://www.mediawiki.org/wiki/Category:All_extensions
- внешние, но родные расширения -Lhttps://www.mediawiki.org/wiki/Extension:Collaboration_Diagram
- как используется на площадке http://letopisi.org/
Пространство Модулей + Lua
- см. Модуль:Babanas
Модули в Scratch
- Цветные ящики являются модулями, из которых строится среда Scratch
- StarLogo Nova + Snap!
Собственные блоки и ящики блоков в Snap!
Работа с данными. Среды выращивания данных и анализа данных.
См. Семинары МГПУ о данных в образовании
Description | Examples | |
---|---|---|
GoogleSchool 01(dataset) | Датасет собран из лог-файла действий учителей внутри школы | В статье Патаракин Е.Д., Ярмахов Б.Б. Анализ связей между сотрудниками школы на основе их взаимодействия в домене Google Apps для образования // ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ И ОБЩЕСТВО. 2016. Vol. 19, № 2. P. 585–599. |
GoogleSchool 02(dataset) | Датасет собран из лог-файла действий учителей внутри школы в среде GoogleApps - совместные действия учителей над документами различного типа превращаются в социальный граф. | В статье Патаракин Е.Д., Ярмахов Б.Б. Анализ связей между сотрудниками школы на основе их взаимодействия в домене Google Apps для образования // ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ И ОБЩЕСТВО. 2016. Vol. 19, № 2. P. 585–599. |
Letopisi 2006 (dataset) | Лог-файл действий участников проекта Letopisi в 2006 году | Patarakin E.D. Wikigrams-Based Social Inquiry // Digital Tools and Solutions for Inquiry-Based STEM Learning. IGI Global, 2017. Vol. 1. P. 112–138. |
Preschool Digital Scopus | 1709 публикаций (стандартный набор полей Скопус) - Для выделения данных из базы Scopus использовалась следующая формула:
| В статье "Связь цифрового компонента обучения и развития детей дошкольного и школьного возраста: обзор исследований и международных образовательных практик" В вики тестируем анализ данных при помощи разных пакетов. |
Scopus Games (dataset) | Датасет по публикациям о компьютерных играх, собранный в Scopus | ВКР Райкова Александра Дмитриевна Развитие навыков вычислительного мышления у детей дошкольного и младшего школьного возраста при помощи видеоигр https://youtu.be/2-M1W-wnT-U |
Библиосет: публикационная активность ВВГУ | Данные о публикационной активности Владивостокского государственного университета https://vvsu.ru/ выгружены из Scopus в формате RIS. | Научная статья |
Взаимное копирование МЭШ (датасет) | При изучении записей действий над учебными сценариями в МЭШ из всей таблицы действий учителей над объектами-сценариями были выделены только действия взаимного копирования. В результате был выделен граф совместных копирований состоящий из 145 компонент. При этом узлы и связи распределены крайне неравномерно. Главный компонент содержит 1174 узлов и 17928 связей, а на остальные 144 компоненты приходится всего 378 узлов и 3421 связи. | Патаракин Е.Д., Буров В.В. Незримый колледж МЭШ // Вестник Мгпу. Серия: Информатика И Информатизация Образования. 2022. № 2 (60). 38-52 https://www.elibrary.ru/item.asp?id=49058657 |
Взаимное копирование МЭШ (датасет)
Описание датасета | При изучении записей действий над учебными сценариями в МЭШ из всей таблицы действий учителей над объектами-сценариями были выделены только действия взаимного копирования. В результате был выделен граф совместных копирований состоящий из 145 компонент. При этом узлы и связи распределены крайне неравномерно. Главный компонент содержит 1174 узлов и 17928 связей, а на остальные 144 компоненты приходится всего 378 узлов и 3421 связи. |
---|---|
Описание полей |
|
Форматы данных | CSV |
Область знаний | Математика, Педагогика, Психология, Управление |
Веб-сайт - ссылка на датасет | http://www.uic.unn.ru/pustyn/data-sets/mesh/giant recicrop component.csv |
Примеры использования датасета | Патаракин Е.Д., Буров В.В. Незримый колледж МЭШ // Вестник Мгпу. Серия: Информатика И Информатизация Образования. 2022. № 2 (60). 38-52 https://www.elibrary.ru/item.asp?id=49058657 |
Год создания датасета | 2022 |
Что делают в МЭШ учителя иностранного языка
Описание - в статье Незримый колледж МЭШ
- Главный компонент содержит 1174 узла и 17928 связей.
Датасет в вики
Копирующий | Копируемый | Предмет | Время |
---|---|---|---|
1106 | 901 | Химия | 2016-12-01T16:40:44Z |
1480 | 234 | Химия | 2017-06-23T09:55:48Z |
234 | 1480 | Химия | 2017-10-12T06:08:15Z |
650 | 927 | Химия | 2018-02-21T20:15:05Z |
1362 | 901 | Химия | 2018-06-27T20:39:01Z |
390 | 881 | Химия | 2018-08-29T22:36:47Z |
647 | 604 | Химия | 2019-02-01T16:04:44Z |
430 | 585 | Химия | 2019-03-28T06:24:56Z |
927 | 650 | Химия | 2020-05-15T05:37:58Z |
Представление агентов - учителей в Snap!
Snap! + данные
- Примеры проектов и отдельных скриптов
- Пример, как можно обратиться из Snap! к внешним датасетам и совершить действия над данными: выделить столбец, сложить данные в столбце, отсортировать данные по значению, построить гистограмму
- https://snap.berkeley.edu/project?username=patarakin&projectname=Snap_Libraries - использование библиотек для работы с данными
Работа с медиа. Программирование игр и программирование внутри игр
Описания игр
Критерии оценки по дисциплине
Образовательный результат | Тема | Задание | Пример
|
---|---|---|---|
Навыки совместной деятельности в среде Semantic MediaWiki | Введение в курс, Языки высокого уровня. | Зарегистрироваться на площадке, отметить странницу категориями, заполнить поля по форме | |
Выбирать способы программирования | Языки высокого уровня. Типология языков | Создайте собственные концепты к статьям в категории Языки программирования | |
Использовать языки визуального программирования для моделирования базовых паттернов | Визуальное программирование | Разместить в вики проект, выполненный в среде Scratch или Snap! или StarLogo Nova | |
Создавать диаграммы классов | Объектно-ориентированное программирование | Разместите в вики собственную диаграмму класса см. Диаграмма, Диаграмма класса, | |
Обращаться к объектам по их свойствам | Объектно-ориентированное программирование | Создайте примеры запросов к статьям вики с выводом результатов в виде географических карт, гистограмм и таблиц | |
Обращаться к агентам на основе свойств | Объектно-ориентированное программирование | Разместите в вики пример проекта Snap!, в котором происходит обращение к клонам спрайта | Примеры |
Использовать готовые модули и библиотеки | Модули и библиотеки | Разместите в вики проект Scratch или Snap! в которых используются библиотеки | Периодическая система химических элементов |
Обрабатывать данные, загружать данные, сохранять данные | Работа с данными | Разместите в вики проект Scratch или Snap!, в которых происходит обработка данных |