Программирование на языках высокого уровня: различия между версиями
Patarakin (обсуждение | вклад) |
Patarakin (обсуждение | вклад) |
||
(не показаны 32 промежуточные версии этого же участника) | |||
Строка 21: | Строка 21: | ||
# навыками совместной деятельности в среде Semantic MediaWiki | # навыками совместной деятельности в среде Semantic MediaWiki | ||
|Description=# Языки высокого уровня. Типология языков | |Description=# Языки высокого уровня. Типология языков | ||
# Визуальное программирование | |||
# Стандартные типы данных | # Стандартные типы данных | ||
# Работа с данными. Среда выращивания данных и анализа данных | |||
# Концепции программирования. Распространённые языковые конструкции | # Концепции программирования. Распространённые языковые конструкции | ||
# Контейнеры для хранения данных. | # Контейнеры для хранения данных. | ||
# Функциональное программирование. Функции высшего порядка | # Функциональное программирование. Функции высшего порядка | ||
# Объектно-ориентированное программирование | # Объектно-ориентированное программирование | ||
# Алгоритмы поиска и сортировки в разных языках | # Алгоритмы поиска и сортировки в разных языках | ||
# Модули и библиотеки | # Модули и библиотеки | ||
# Работа с медиа. Программирование игр и программирование внутри игр. | # Работа с медиа. Программирование игр и программирование внутри игр. | ||
|Environment=Snap!, Python, PHP, Semantic MediaWiki, Lisp, Lua, R, JavaScript | |Environment=Snap!, Python, PHP, Semantic MediaWiki, Lisp, Lua, R, JavaScript | ||
|Book=The Wiki Way: Quick Collaboration on the Web, Стили и методы программирования, Structure and Interpretation of Computer Programs, Simply Scheme: Introducing Computer Science | |Book=The Wiki Way: Quick Collaboration on the Web, Стили и методы программирования, Structure and Interpretation of Computer Programs, Simply Scheme: Introducing Computer Science | ||
}} | }} | ||
; Курс предназначен для магистрантов [[:Категория:ИВО-241м]] - 2024 год | |||
: [[:Категория:ПБД221м]] и [[:Категория:РМП221м]] - 2022 | :* [[:Категория:ИВО-231м]] - 2023 | ||
:* [[:Категория:ПБД221м]] и [[:Категория:РМП221м]] - 2022 | |||
Строка 44: | Строка 45: | ||
[[Вычислительное мышление]], как способность объединять свои способности с возможностями вычислительной техники и говорить с компьютерными агентами на различных языках. Зачем такое разнообразие языков программирования - они помогают думать и действовать лучше. | [[Вычислительное мышление]], как способность объединять свои способности с возможностями вычислительной техники и говорить с компьютерными агентами на различных языках. Зачем такое разнообразие языков программирования - они помогают думать и действовать лучше. | ||
=== Особенности курса === | === Особенности курса === | ||
Перечень языков визуально-блочного программирования, активных в настоящее время | Перечень языков визуально-блочного программирования, активных в настоящее время | ||
<nowiki> | |||
{{#ask: | |||
[[Category:Язык программирования]] [[Визуальная реализация::Блоки-Иконки]] [[Description::+]] [[ActiveNow::Project is active]] | ?Description | ?Адрес_сообщества | |||
}} | |||
</nowiki> | |||
{{#ask: | {{#ask: | ||
[[Category:Язык программирования]] [[Визуальная реализация::Блоки-Иконки]] [[ActiveNow::Project is active]] | ?Description | ?Адрес_сообщества | [[Category:Язык программирования]] [[Визуальная реализация::Блоки-Иконки]] [[Description::+]] [[ActiveNow::Project is active]] | ?Description | ?Адрес_сообщества | ||
}} | }} | ||
=== Понятия === | |||
<nowiki> | |||
{{#ask: [[Категория:Понятие]] [[Environment::+]] | ?Description | ?Inventor }} | |||
</nowiki> | |||
=== [[:Category:Person|Авторы]] и книги, которые оказали влияние на курс === | === [[:Category:Person|Авторы]] и книги, которые оказали влияние на курс === | ||
{{#ask: [[ | {{#ask: [[Категория:Book]] [[Field_of_knowledge::Информатика]] | ?Description | ?Inventor }} | ||
=== Языки высокого уровня. Типология языков === | === Языки высокого уровня. Типология языков === | ||
Строка 107: | Строка 112: | ||
Строка 119: | Строка 121: | ||
|? Ancestors | |? Ancestors | ||
|?Descendants | |?Descendants | ||
}} | }} | ||
==== Паттерны поведения компьютерных агентов и их возможная реализация ==== | |||
{{#ask: [[Category:HowTo]] | ?Description_of_problem | ?Solution }} | |||
===== Пример реализации простых паттернов поведения агентов в среде [[Scratch]] или в среде [[Snap!]] ===== | |||
* [[Подчиняться клавишам клавиатуры]] | |||
* [[Генерировать новых агентов]] | |||
* [[Поглощать агентов]] | |||
: https://snap.berkeley.edu/snap/snap.html#present:Username=patarakin&ProjectName=Simple_Game | |||
<snap project="Simple_Game" user="patarakin" /> | |||
====== Работа с изображением ====== | |||
https://snap.berkeley.edu/snap/snap.html#present:Username=patarakin&ProjectName=image_data | |||
<snap project="image_data" user="patarakin" /> | |||
===== Загрузка CSV данных ===== | |||
* https://snap.berkeley.edu/project?username=patarakin&projectname=Work_with_CSV | |||
<snap project="Work_with_CSV" user="patarakin" /> | |||
====== Работа с изображением как с данными ====== | |||
===Стандартные типы данных=== | ===Стандартные типы данных=== | ||
Строка 133: | Строка 159: | ||
=== [[Функциональное программирование]] === | === [[Функциональное программирование]] === | ||
; Языки функционального программирования общего назначения | |||
<nowiki> | |||
{{#ask: [[Category:Язык программирования]] [[Назначение языка::Язык общего назначения]] [[Programming paradigm::Функциональное программирование]] | ?Description }} | |||
</nowiki> | |||
{{#ask: [[Category:Язык программирования]] [[Назначение языка::Язык общего назначения]] [[Programming paradigm::Функциональное программирование]] | ?Description }} | |||
==== Функции высшего порядка ==== | ==== Функции высшего порядка ==== | ||
Строка 231: | Строка 264: | ||
{{# | |||
* https://youtu.be/KvK6zH2A6x8 | |||
{{#widget:YouTube|id=KvK6zH2A6x8|start=20}} | |||
* https://editor.netsblox.org/?action=present&Username=patarakin&ProjectName=NetWork_01 | |||
== Критерии оценки по дисциплине == | == Критерии оценки по дисциплине == | ||
Строка 248: | Строка 286: | ||
| Введение в курс, Языки высокого уровня. | | Введение в курс, Языки высокого уровня. | ||
| Зарегистрироваться на площадке, отметить странницу категориями, заполнить поля по форме | | Зарегистрироваться на площадке, отметить странницу категориями, заполнить поля по форме | ||
| [[:Категория:UserMGPU]] [[:Категория: | | | ||
* [[:Категория:UserMGPU]] | |||
* [[:Категория:ИВО-231м]] | |||
|- | |- | ||
| Выбирать способы программирования | | Выбирать способы программирования | ||
Строка 261: | Строка 301: | ||
| Визуальное программирование | | Визуальное программирование | ||
| Разместить в вики проект, выполненный в среде [[Scratch]] или [[Snap!]] или [[StarLogo Nova]] | | Разместить в вики проект, выполненный в среде [[Scratch]] или [[Snap!]] или [[StarLogo Nova]] | ||
| [[Flocking (model)]], Как [[Организовать обмен сообщениями между агентами]], [[Генерировать новых агентов]] | | | ||
* [[Flocking (model)]], | |||
* Как [[Организовать обмен сообщениями между агентами]], | |||
* [[Генерировать новых агентов]] | |||
|- | |- | ||
| Создавать диаграммы классов | | Создавать диаграммы классов | ||
| Объектно-ориентированное программирование | | Объектно-ориентированное программирование | ||
| Разместите в вики собственную диаграмму класса см. [[ | | Разместите в вики собственную диаграмму класса см. [[Диаграмма]], [[Диаграмма класса]], | ||
| | |||
* [[Языки (диаграмма класса)]], | |||
* [[Robot]], | |||
* [[Обсуждение:Диаграмма классов]] | |||
|- | |- | ||
| Обращаться к объектам по их свойствам | | Обращаться к объектам по их свойствам | ||
| [[Объектно-ориентированное программирование]] | | [[Объектно-ориентированное программирование]] | ||
| Создайте примеры запросов к статьям вики с выводом результатов в виде географических карт, гистограмм и таблиц | | Создайте примеры запросов к статьям вики с выводом результатов в виде географических карт, гистограмм и таблиц | ||
| [[:Category:Diagrams]], [[Языки программирования Time-line]] | | | ||
*[[:Category:Diagrams]], | |||
* [[Языки программирования Time-line]] | |||
|- | |- | ||
| Обращаться к агентам на основе свойств | | Обращаться к агентам на основе свойств | ||
| Объектно-ориентированное программирование | | Объектно-ориентированное программирование | ||
| Разместите в вики пример проекта Snap!, в котором происходит обращение к клонам спрайта | | Разместите в вики пример проекта Snap!, в котором происходит обращение к клонам спрайта | ||
| | | Примеры | ||
* [[Flocking (model)]] | |||
* [[Как копировать поведение агентов в Snap!]] | |||
* [[Как управлять поведением агентов на основании их пространственных характеристик]] | |||
|- | |- | ||
| Использовать готовые модули и библиотеки | | Использовать готовые модули и библиотеки | ||
Строка 286: | Строка 337: | ||
| Работа с данными | | Работа с данными | ||
| Разместите в вики проект [[Scratch]] или [[Snap!]], в которых происходит обработка данных | | Разместите в вики проект [[Scratch]] или [[Snap!]], в которых происходит обработка данных | ||
| [[ | | | ||
* [[Как представить вики статью в App Inventor]] | |||
|} | |} |
Версия 12:29, 4 сентября 2024
Планируемые результаты обучения (Знать, Уметь, Владеть) | Целью освоения дисциплины является формирование у студентов понимания общих принципов использования языков высокого уровня
Результаты обучения: обучающийся понимает и умеет использовать базовые конструкции языков программирования высокого уровня
|
---|---|
Содержание разделов курса |
|
Видео запись | |
Среды и средства, которые поддерживают учебный курс | 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/ |
ПервоЛого | ПервоЛого — универсальная проектная среда на базе языка Лого для начального и дошкольного образования. В ПервоЛого можно создавать проекты, даже не умея читать и считать — как очень простые, состоящие из картинки и текста или звука, так и весьма сложные, включающие в себя различные запрограммированные объекты, роль которых исполняет черепашка. |
Понятия
{{#ask: [[Категория:Понятие]] [[Environment::+]] | ?Description | ?Inventor }}
Авторы и книги, которые оказали влияние на курс
Description | Inventor | |
---|---|---|
20 things to do | The concept of "Twenty Things to Do with a Computer," originally presented by Seymour Papert and Cynthia Solomon in 1971, highlights various engaging activities that can be accomplished through programming.
| Papert Solomon |
APIs for social scientists: A collaborative review | В книге представлено множество API социальных сетей и основы их использования. В статье по этой книге собраны примеры API и особенности работы с ними. Код а книге - R | |
An Introduction to Agent-Based Modeling: Modeling Natural, Social, and Engineered Complex Systems with NetLogo | Введение в моделирование систем при помощи языка NetLogo (от создателя языка) - использование NetLogo в естественно-научном, инженерном и общественном образовании | Wilensky Rand |
App Inventor 2 (book) | App Inventor 2 Create Your Own Android Apps // Wolber, D., Abelson, H., Spertus, E., & Looney, L. (2011). App Inventor. O’Reilly Media, Inc. | Hal Abelson |
As We May Think | «Как Мы Можем Мыслить» — визионерское эссе, написанное Бушем в 1945 году, предвидевшее многие аспекты информационного общества. Оно было впервые опубликовано в журнале The Atlantic в июле 1945 года и переиздано в сокращённом варианте в сентябре 1945 — до и после атомной бомбардировки Хиросимы и Нагасаки. Буш выражает свою обеспокоенность тем, что усилия науки направлены на разрушение, вместо понимания. Он выражает надежду на создание гипотетической гипертекстовой системы, названной Бушем «Мемекс». По мнению учёного, такая система сделала бы знания более доступными. Буш надеялся, что создание такой системы превратит информационный взрыв во взрыв знаний. | Bush |
Blown to Bits | Blown to Bits - часто встречающаяся в учебных курсах по компьютерным дисциплинам книга Абельсона | Hal Abelson |
Children Learning to Code | В книге собраны различные международные практики обучения детей программированию. Различные обучающие среды, образовательные стандарты. Особое внимание уделено развитию среды Scratch в России - одним из побочных результатов книги стал рост числа участников сообщества Scratch в России. Проект был поддержан Всемирным Банком и МГПУ. ; На русском языке
| Patarakin Parandekar |
Computer Science Logo Style | Трехтомник -учебник по программированию в стиле Лого от Брайна Харви | Harvey |
Computer Science with Snap! by Examples | Описание структур данных и алгоритмов, которые можно исследовать в среде Snap! | Modrow |
Diligence, Patience, and Humility | Статья Уолла в книге Open Sources: Voices from the Open Source Revolution
| Уолл |
Head First. Паттерны проектирования | Руководство по использованию паттернов проектирования | Фримен, Робсон |
Individual-Based Models of Cultural Evolution: A Step-by-Step Guide Using R | Книга показывает как создавать агентно-ориентированные модели или ABM культурной эволюции. В тексте книги используется код на языке программирования R. От очень простых моделей основных процессов культурной эволюции, таких как предвзятая передача и культурная мутация, к более сложным темам, таким как эволюция социального обучения, демографические эффекты и анализ социальных сетей. | Acerbi |
Initiation to Algorithmics with Scratch | Руководство по введению в алгоритмы в среде Scratch | |
Learn ggplot2 using Shiny App | Сетевая книга по освоению приемов работы с пакетом ggplot2 языка R в среде Shiny | |
Mastering Shiny: Build Interactive Apps, Reports, and Dashboards Powered by R | Книга о создании аналитических веб-приложений на языке R в среде Shiny | Wickham |
Mindstorms | Mindstorms: Children, Computers, And Powerful Ideas - .. через бездну, разделяющую естественнонаучную, техническую культуру с культурой гуманитарной, необходимо перекинуть мост. И я думаю, что главным в конструкции такого моста может стать задача, как придать компьютерную форму плодотворным идеям, одинаково важным как поэту, так и инженеру. В моем понимании компьютер действует как переходный объект по установлению связей, которые в конечном счете оказываются связями между одной личностью и другой. Существуют матофобы, т. е. люди, не признающие математики, с очень развитой координацией движений собственного тела, и есть матофилы, т. е. люди, увлеченные математикой, никогда не вспоминающие о сенсомоторном происхождении своих математических знаний. Черепашка навела мост. Она стала посредником, объединившим в себе элементы геометрии тела с формальной геометрией. Осмысление жонглирования как структурного программирования помогло навести мосты между теми, у кого прекрасно развито матетическое чувство физических навыков, и теми, кто знает, как должна быть организована задача по написанию исторического эссе. Жонглирование и написание эссе, если смотреть на конечный результат, мало чем похожи друг на друга. Но процесс овладения обоими навыками во многом совпадает. | Papert |
On memory | On Memory (Electronic or Otherwise) - Leonardo The MIT Press Volume 23, Number 4, Autumn 1990 Наша практика обращения с электронной памятью подводит нас к признанию того факта, что память является не вещью, а процессом, хотя этот процесс и предполагает наличие тела человека или компьютера, внутри которого он должен происходить. Эта практика приводит нас к тому, что внутри нас нет никакого твердого ядра, которое бы руководило этим процессом и которое мы могли бы называть нашей "душой", нашим "духом" или даже нашим "эго". Практика показывает нам, что процесс извлечения, хранения и передачи информации протекает через нас и включает не только существующее и прошлое общество, но и фактически все, что мы называем словом "мир". Это приводит нас к пониманию того, что мы только узлы во всеобщей сети текущей информации, что эти узлы получают, перерабатывают и передают информацию, и что они полное ничто если взаимосвязи будут разорваны. Фактически, практика наших отношений с носителями электронной памяти требует от нас признать, что то, что мы называем "Я" это - только узел взаимосвязей и отношений, который при тщательном рассмотрении даже не содержит крючка, к которому эти отношения могут быть прицеплены | Flusser |
Open Sources: Voices from the Open Source Revolution | Книга, в создании которой принимали участие разработчики программного обеспечения. Создатель Perl - Larry Wall, Tim O'Reily и многие другие | Уолл |
Outstanding User Interfaces with Shiny | A book about deeply customizing Shiny app for production. | Granjon |
Perceptrons: an introduction to computational geometry | Книга «Перцептроны» (англ. Perceptrons: an introduction to computational geometry) — написана Марвином Минским и Сеймуром Папертом, издана в 1969. Книга видных американских ученых посвящена параллельным вычислительным устройствам, известным под названием персептронов. В ней на примере нескольких конкретных задач распознавания "геометрических" свойств графических изображений подробно проанализированы принципиальные возможности подобных схем, рассмотрены вопросы, связанные с обучением персептронов, в частности длительность процесса обучения, эффективность схемы как адаптивного запоминающего устройства и т. п., а также исследованы потенциальные возможности персептронов как обучающихся распознающих устройств. | Papert Minsky |
R for Data Science | Подробное руководство по использованию языка R для обработки, модификации, визуализации и программировании данных | Wickham |
Simply Scheme: Introducing Computer Science | Введение в программирование с простой версией языка Scheme - иметь в виду, что Snap! это Scheme, прикидывающаяся Scratch | Harvey |
Structure and Interpretation of Computer Programs | It is known as the "Wizard Book" in hacker culture | Hal Abelson |
The Design of Everyday Things | Книга Дона Нормана о том, как устроено восприятие окружающих повседневных вещей. Есть издание "Дизайн повседневных вещей" | Norman |
The Media Equation: How People Treat Computers, Television, and New Media Like Real People and Places | Многочисленные примеры, подтверждающие, что люди воспринимают компьютерные программы, машины и радиопередачи так, как будто это живые и человеческие существа. | Reeves Naas |
The Wiki Way: Quick Collaboration on the Web | Первая книга о том, как устроена среда вики и как её использовать. Описано устройство WikiWiki движка и идеология среды совместного редактирования Книга о том, как устроен вики движок и как организовано взаимодействие участников | Cunningham Leuf |
Thinking Like a Tree | Thinking Like a Tree (and Other Forms of Ecological Thinking ) Мы можем сказать, что дерево следует стратегии TREE - T- test - пробуй, R - randomly - случайно, E-evaluate - оценивай (определяй, какие из корней нашли лучшую почву), E-elect - выбирай (направление, куда будем двигаться). Конечно, шагающее дерево в действительности не выбирает и не принимает решение, куда двигаться. Но, этот способ размышления о дереве, следующем определенной стратегии поведения, может оказаться полезным. | Resnick |
Tidy Modeling with R | Руководство по созданию и использованию моделей при помощи пакетов из пространства tidyverse: recipes, parsnip, workflows, yardstick, and others. | Sigle |
Turtle Geometry: The Computer as a Medium for Exploring Mathematics | Одна из первых книг посвящённых использованию компьютеров в обучении математике. Она была опубликована в 1981 году и стала Книга описывает использование черепахи - графического объекта, который движется по экрану компьютера - для исследования геометрии и математических концепций. Авторы предлагают использовать черепаху для создания графических изображений, которые могут помочь студентам лучше понять математические концепции. Книга стала классикой в области обучения математике с использованием компьютеров и продолжает быть популярной среди преподавателей и учащихся по всему миру.
| Hal Abelson DiSessa |
Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems | Статья о прототипировании объектов в объектно-ориентированном программировании | Liberman |
Working with MediaWiki | Подробное и современное руководство по среде MediaWiki - с описанием форм, шаблонов, свойства | Koren |
Искусственная жизнь и русские биологи начала двадцатого века | Продемонстрировать фундаментальные вложения русской биологии в определение искусственной жизни | Bec |
Кибернетический манифест | The Cybernetic Manifesto | Турчин |
Классификация, регрессия и другие алгоритмы Data Mining с использованием R | Описана широкая совокупность методов построения статистических моделей классификации и регрессии для откликов, измеренных в альтернативной, категориальной и метрической шкалах. Подробно рассматриваются деревья решений, машины опорных векторов с различными разделяющими поверхностями, нелинейные формы дискриминантного анализа, искусственные нейронные сети и т.д. | Шитиков, Мастицкий |
Мифический человеко-месяц или как создаются программные системы | Библии для разработчиков программного обеспечения во всем мире.
| Брукс |
Оркестр играет без дирижера: размышления об эволюции некоторых технических систем и управлении ими | Мир, создаваемый человеком в технических системах во многом похож на тот, который окружает человека в природе. И в искусственном мире техники могут происходить процессы, подобные эволюции живых организмов. Возникают колонии и сообщества технических систем, формируются «сверхорганизмы» типа муравейника, возникают «коллективы», живущие по своим законам. | Варшавский Поспелов Д.А. |
Разработка компьютерных учебников и обучающих систем | Текст с точными определениями понятий в области технологии разработки программного обучающего обеспечения | Башмаков |
СИСТЕМНАЯ ИНЖЕНЕРИЯ — 2022 | Учебник базируется на совмещении изложения лучших практик программной инженерии, классической «железной» системной инженерии и инженерии предприятия | Левенчук |
Стили и методы программирования | Введение в зоопарк существующих систем и понятий программирования | Непейвода |
Тишина как общинное достояние | This article is from Illich's remarks at the "Asahi Symposium Science and Man - The computer-managed Society," Tokyo, Japan, March 21, 1982. The ideas here are part of a book Illich is working on, The History of Scarcity. - Stewart Brand The CoEvolution Quarterly, Winter 1983
| Иллич |
Феномен науки: Кибернетический подход к эволюции | В книге изложена концепция метасистемного перехода и с ее позиций прослеживает эволюцию мира от простейших одноклеточных организмов до возникновения мышления, развития науки и культуры. | Турчин |
Экологический подход к зрительному восприятию | Какие возможности открывает окружающий мир перед человеком, как мы воспринимаем и используем эти возможности. Мир физики объемлет все сущее. Наряду с земным объектами этому миру в равной степени принадлежат ка объекты макрокосма (планеты, звезды, галактики и т. п. так и объекты микрокосма (атомы, элементарные частиц и т. п.). Поскольку в этом мире встречаются объекты самых различных размеров (атомы и галактики могут служить примером поражающих воображение крайностей), то для их измерения физики используют единицы разного масштаба. На уровне микрокосма единицами измерения служат обычно миллионные доли миллиметра или еще боле мелкие единицы. На уровне макрокосма единицей длин служит световой год, а иногда и более крупные единицы. Ни один из этих масштабов не пригоден для измерения размера предметов, составляющих окружающий мир животных. | Гибсон |
Языки высокого уровня. Типология языков
- Используя 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!, в которых происходит обработка данных |