Программирование (математики и физики)
Материал из Поле цифровой дидактики
Версия от 21:32, 9 февраля 2024; Patarakin (обсуждение | вклад) (→История учебного программирования. Примеры учебных микромиров)
Планируемые результаты обучения (Знать, Уметь, Владеть) | Результаты обучения: обучающийся понимает и умеет использовать возможности визуальных языков программирования для освоения математических и физических понятий
|
---|---|
Содержание разделов курса |
|
Видео запись | |
Среды и средства, которые поддерживают учебный курс | Snap!, StarLogo Nova, NetsBlox, RAWGraphs |
Книги, на которых основывается учебный курс | Computer Science with Snap! by Examples, Agent-Based and Individual-Based Modeling: A Practical Introduction, Mindstorms |
Учебный курс для студентов бакалавриата МФ 201
История учебного программирования. Примеры учебных микромиров
Путь черепахи: эволюция LOGO-подобных языков
Description | |
---|---|
Конструкционизм | Конструкционизм - философия обучения, развитая Сеймуром Пейпертом на основании конструктивизма. К активной позиции конструктивизма конструкционизм добавляет идею того, что люди создают новое знание особенно эффективно, когда они вовлечены в создание продуктов, наделенных личностным смыслом, будь то песочные замки, Лего машины или компьютерные программы. |
- (Logo OR Ancestors
- Logo)
- AlgoBlock (Ancestors: Лого)
- App Inventor (Ancestors: Scratch, Лого, Blockly)
- Boxer (Ancestors: Лого)
- DBSnap (Ancestors: Scratch, Snap!, Лого)
- GP (Ancestors: Scratch, Лого)
- Josef (Ancestors: Лого)
- KTurtle (Ancestors: Лого, Kumir)
- LogoBlocks (Ancestors: Лого)
- LogoWriter (Ancestors: Лого)
- Move the Turtle (Ancestors: Лого)
- NetLogo (Ancestors: Лого, StarLogo)
- NetsBlox (Ancestors: Scratch, Snap!, Лого)
- Scratch (Ancestors: Лого, Squeak, Agentsheets)
- Smalltalk (Ancestors: Лого, Lisp)
- Snap! (Ancestors: Scratch, Лого, Lisp, Smalltalk, Scheme)
- StarLogo (Ancestors: Лого)
- StarLogo Nova (Ancestors: NetLogo, Scratch, Лого)
- UCB Logo (Ancestors: Лого, Lisp)
- Лого (Ancestors: Lisp)
- ПервоЛого (Ancestors: Лого)
История совместной деятельности в цифровой среде. Совместное редактирование текста и кода
Многообразие и возможности языков визуального программирования
Распространённые языковые конструкции
Паттерны поведения в цифровой среде и их симуляция
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 решение собирается из блоков сенсоров - если я касаюсь другого агента (указать какого именно), то ... |
Тащить | Тащить - паттерн "тащить" противоположен по значению паттерну толкать - агент может тащить за собой другого агента или агентов. Например, поезд тащит за собой вагоны, лошадь тащит за собой сани, буксир тащит за собой баржи или плот. | |
Толкать | Паттерн "толкать" — это паттерн, который мы видим во многих играх. Агент должен толкать ящики или мешки с золотом. Когда игрок толкает коробку или мешок, эти объекты движутся в том направлении (вверх, вниз, вправо или влево), в котором их толкнули. | Объект или Агент, над которым совершается действие, получает сигнал от агента субъекта деятельности, поворачивается в ту же сторону, куда смотрит толкающий агент и двигается в эту сторону. |
Создание собственных функций
Обращение к внешним данным, обработка и представление данных
Многоагентое моделирование. Породы агентов
Выращивание данных и их дальнейшее использование
Критерии оценки по дисциплине
Образовательный результат | Тема | Задание | Пример |
---|---|---|---|
Знает возможности совместной цифровой деятельности и умеет ими пользоваться Semantic MediaWiki | История совместной деятельности в цифровой среде. Совместное редактирование текста и кода | Зарегистрироваться на площадке, отметить странницу категориями, заполнить поля по форме | |
Выбирать способы программирования | История учебного программирования. Примеры учебных микромиров | Создайте собственные концепты к статьям в категории Языки программирования | |
Использовать языки визуального программирования для моделирования базовых паттернов |
|
Разместить в вики проект, выполненный в среде Scratch или Snap! или StarLogo Nova | |
Уметь использовать распространенные языковые конструкции | Распространённые языковые конструкции | Разместите в вики статью с примером кода | |
Создавать собственные функции | Создание собственных функций | Создайте и опишите собственные полезные функции | |
Обращаться к агентам на основе их породных свойств | Многоагентое моделирование. Породы агентов | Разместите в вики пример проекта Snap!, в котором происходит обращение к клонам спрайта | Примеры |
Обрабатывать данные, загружать данные, сохранять данные | Обращение к внешним данным, обработка и представление данных | Разместите в вики проект Scratch или Snap!, в которых происходит обработка данных | |
Выращивать данные в искусственных микромирах | Выращивание данных и их дальнейшее использование | Разместите в вики проект StarLogo Nova или Snap!, в которых происходит выращивание данных |