Участник:Patarakin/Алгоритмы и структуры данных

Материал из Поле цифровой дидактики

Это перечень заданий для курса Алгоритмы и структуры данных (syllabus)

  • обращаться к внешним и внутренним данным из среды Semantic MediaWiki, уметь использовать различные типы данных внутри Semantic MediaWiki
  • обмениваться проектами и блоками программ в Snap!
  • сравнивать и объединять статьи о языках программирования
  • импортировать и экспортировать данные в среду визуального программирования Snap!
  • проектировать и программировать линейные и разветвляющиеся структуры алгоритмов;
  • планировать процесс реализации алгоритма при помощи псевдокода и диаграмм
  • использовать язык dgl и mermaid встраивать диаграммы алгоритмов в вики страницы
  • представлять алгоритмы на страницах вики в виде диаграмм, псевдокода, кода на различных языках программирования
  • создавать собственные блоки (команды и процедуры с входными параметрами) в среде Snap! (создавать функции с использованием различных типов данных))
  • оценивать и сравнивать эффективность алгоритмов, вычислительную сложность алгоритмов
  • использовать рекурсию в командах и процедурах, использовать рекурсию при создании собственных функций
  • использовать объекты первого класса и лямбда исчисления.

Обращаться к внешним и внутренним данным из среды Semantic MediaWiki, уметь использовать различные типы данных внутри Semantic MediaWiki

Примеры задач на внутренние данные
  • Подсчитай внутри вики количество участников из МГПУ Category:UserMGPU?

Количество участников из МГПУ = 352

  • Посчитай число участников, которые указали, что используют язык Scratch ?

Количество участников из МГПУ, которые используют язык Scratch = 35

  • Собери таблицу с описанием писателей Category:Person, которые оказали влияние на язык R
 Description
Smaldino
  • Associate Professor of Cognitive & Information Sciences and faculty in the Quantitative and Systems Biology graduate program at UC Merced, where I am also affiliated with the Center for Analytic Political Engagement and the Center for Interdisciplinary Neuroscience.
  • External Professor at the Santa Fe
WickhamHadley Wickham - разработчик библиотек и автор книг по R, Shiny и анализу данных. His work includes the data visualisation system ggplot2 and the tidyverse, a collection of R packages for data science based on the concept of tidy data.

Собери тайм-лайн с языками, ведущими свое происхождение от языка Prolog

(Prolog OR Ancestors
Prolog)


  • Предложи собственную задачу на использование внутренних данных в среде Semantic MediaWiki

Примеры задач на внешние данные

Размести на странице выборку из датасета, который уже есть в категории Category:Dataset


Год Болезни Число смертей
1657 Teeth and Worms 878


  • Добавь новый датасет в Category:Dataset и предложи вариант его использования

Обмениваться проектами и блоками программ в Snap!

Ссылка на профиль в сети Snap!

Пример блока программного кода из среды Snap!

Пример блока программного кода из среды Scratch

Рассмотрите примеры решений в среде Scratch
 Description
3D WireframesКак создать 3D каркас
Additional KeysКак создавать и использовать комбинации дополнительных клавиш?
Advanced Platformer PhysicsКак мы имитируем физические свойства внутри Scratch
Advanced Platformer TutorialКак создать продвинутый платформер
Creating a QuizКак создать квиз - викторину из вопросов и ответов.
HeapКак использовать кучу? - Куча (структура данных)
How to Create a SlideshowКак создать слайд-шоу - советы по организации
How to Keep Score in a GameКак хранить результаты (очки) в игре
How to Make a Basic PlatformerКак создать платформер
How to Make a Basic ShooterКак создать проект игры "стрелялки" и какие блоги и конструкции используются для построения игр такого типа.
How to Make a Clicker GameРуководство по созданию игр типа clicker-game
How to Make a Tower Defense GameКак сделать игру по защите города
How to Move Sprites with the Arrow KeysКак управлять спрайтами при помощи клавиш клавиатуры - в блочных языках реализуется через связку нажатия определённой клавиши и поворотом в
How to Move a Sprite in a SpiralКак организовать движение агента по спирали
MovementКак управлять движением агентов на экране
Non-Euclidean Game TutorialКод решений, которые используются при создании игр типа «Неевклидова игра». «Неевклидова игра» — это то, что разработчики игр часто называют игрой, в которой мировое пространство не работает так, как работает реальный мир. Например, размещение огромной комнаты в небольшом пространстве или подъем по лестнице опускает игрока на уровень ниже. Возможности безграничны.
Object AttractionКак имитировать притяжение объектов друг к другу?
PathfindingПоиск пути (англ. Pathfinding) — термин в информатике и искусственном интеллекте, который означает определение компьютерной программой наилучшего, оптимального маршрута между двумя точками.
Removing an Item from a List (by value)Как удалить элемент из списка по значению этого элемента, а не по его индексу? В статье рассматривается пример на Scratch
Shooting ProjectilesКак стрелять снарядами? (Бросать объекты, клонировать объекты и т.п. действия)
Switching Between ScreensКак переключаться между различными сценами в Scratch. Скрипт проверяет, совпадает ли переменная экрана с экраном для отображения спрайтов. Если да, то спрайты будут отображаться и делать все, что от них требуется. Если нет, то спрайт останется скрытым и не запустит блоки для того времени, когда он будет открыт.
The ball gathers the starsПроект внутри которого 3 породы- мяч, звезды, подарок
The cowboy catС помощью этого скрипта случайным образом выбираются два числа от 0 до 10, после чего кот просит их перемножить и написать полученный ответ. Если ответ верный, кот произносит один набор фраз и подпрыгивает, снимая шляпу. Если ответ введен неверный, то произносит другую фразу и озвучивает правильный ответ. %D0%9A%D0%BE%D1%82_%D0%BA%D0%BE%D0%B2%D0%B1%D0%BE%D0%B9.png
Using Clones for Particle EffectsКак создать эффект частиц с помощью клонов?
Использовать данные МЭШ для моделирования поведения учителейПри изучении языков высокого уровня хотелось бы опираться на реальные ситуации, которые происходят с учителями. Эти ситуации описываются и моделируются в различных языках. Мы взяли несколько сред многоагентного моделирования, где агенты симулируют поведение учителей, и скрестили эти языки с данными, которые были извлечены из МЭШ.
  • 120px-Netlogo_mes.png
Как использовать Scratch APIКак использовать внешний API в средах визуального программирования
Как использовать визуальные блоки на вики страницахБлагодаря специальному расширению в вики можно использовать текстовые блоки для представления программ на языке Scratch и Snap!
Как использовать облачные данные в ScratchСпособ использования облачных данных, которые хранятся на сервере (Игровые очки, сравнение результатов)
Как написать курсовую работу по программированиюСтуденты пишут курсовую работу, в рамках которой демонстрируют свою способность создавать и документировать программный продукт
Как оценить Scratch проектКак оценить Scratch проект при помощи автоматического анализа кода проекта при помощи Dr.Scratch
Как перевести Scratch в Snap!Для того, чтобы перевести Scratch в Snap! нужно воспользоваться программой https://snapinator.github.io/#
  • Загрузить
  • Как получить изображение Scratch блоковВ ряде случаев для публикации материалов необходимо получить изображение блоков Scratch в виде графических файлов. Приложение https://scratchblocks.github.io/ позволяет получить блоки в формате png svg
    Как получить список случайных значенийВ общем случае создаём исходно пустой список и добавляем в него указанное число чисел, находящихся в указанном интервале. Для Snap!

    Список случайных чисел из %сколько от %min до %max

    540px-Random_list2.png
    Как собрать данные об отношениях участника в сети ScratchУ нас есть возможность обратиться к Scratch API и запросить информацию о тех, на кого подписался данный участник сообщества. И есть возможность запросить информацию о тех, кто подписался на данного участника
    Как создавать клоны в ScratchСоздаём клоны в Scratch
    Как управлять поведением агентов на основании их пространственных характеристикРаспространённая в играх и моделях ситуация, когда агента должен совершать действия на основании того, где он находится, кто находится с ним рядом и т.п.
    Какие есть функции для списков?В различных языках программирования достаточно часто встречаются задачи обработки списков. В этой статье собраны функции для списков
    Организовать взаимодействие персонажейВ искусственном мире есть несколько акторов-персонажей и мы хотим, чтобы они взаимодействовали между собой

    Каждый персонаж, который создали участники нашей команды, в начале истории будет прятаться и вставать в угол, где он колобка не учует. Появляться зверь этот зверь будет только тогда, когда его позовут - т.е. когда он получит сообщение. Например, медведь будет реагировать на сообщение “Приходи, медведь”. Общая схема обмена сообщениями выглядит следующим образом:

    • Колобок делает 10 шагов и посылает сообщение “Приходи, Медведь”
    • Медведь получает это сообщение, приходит и посылает сообщение “Колобок, я, медведь, тебя съем”
    Организовать обмен сообщениями между агентамиКак организовать обмен сообщениями между агентами? И в Scratch и в Snap! действует театральная метафора, когда персонажи могут обмениваться сообщениями и реагировать на сообщения. При этом в Scratch сообщения рассылаются всем, а в Snap! есть возможность указать адресата сообщения
  • 120px-Cherry_orchard_lp.png
  • Посчитать и сохранить значениеПосчитать и сохранить значение/ У нас есть множество зверей и все они собираются как-то взаимодействовать с колобком. И нам нужно, чтобы звери набрасывались на колобка не все сразу с криком “Я тебя съем”, а делали это по очереди. Как организовать эту очередь?
    Сортировка вставкамиСортировка вставками (англ. Insertion sort) — алгоритм сортировки, в котором элементы входной последовательности просматриваются по одному, и каждый новый поступивший элемент размещается в подходящее место среди ранее упорядоченных элементов. Вычислительная сложность 0(n2)
    Сортировка пузырькомСортиро́вка простыми обменами, сортировка пузырько́м (англ. bubble sort) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Метод сортировки обменами лежит в основе некоторых более совершенных алгоритмов, таких как шейкерная сортировка, пирамидальная сортировка и быстрая сортировка. 400px-SortingBubble_ed.png

    Cравнивать и объединять статьи о языках программирования

    • Собери диаграмму на основании данных о возрасте, на который рассчитан язык
    • Собери диаграмму тайм-лайн о языках с определёнными свойствам
    • Собери диаграмму на основании назначения языка
    Загрузка...

    Импортировать и экспортировать данные в среду визуального программирования Snap!

    • Импортируйте датасет (Category:Dataset ) в свой проект
    • Совершите действия по извлечению строк и столбцов, соответствующих определённому критерию. Ограничьте размер итогового датасета 10 строками и разместите его на странице
    • Опубликуйте проект с операциями над данными


    Drugs Corgis script pic.png

    проектировать и программировать линейные и разветвляющиеся структуры алгоритмов

    планировать процесс реализации алгоритма при помощи псевдокода и диаграмм

    использовать язык graphviz и mermaid встраивать диаграммы алгоритмов в вики страницы

    представлять алгоритмы на страницах вики в виде диаграмм, псевдокода, кода на различных языках программирования

    создавать собственные блоки (команды и процедуры с входными параметрами) в среде Snap! (создавать функции с использованием различных типов данных))

    оценивать и сравнивать эффективность алгоритмов, вычислительную сложность алгоритмов

    использовать рекурсию в командах и процедурах, использовать рекурсию при создании собственных функций

    использовать объекты первого класса и лямбда исчисления