Участник:Patarakin/Алгоритмы и структуры данных
Это перечень заданий для курса Алгоритмы и структуры данных (syllabus)
- обращаться к внешним и внутренним данным из среды Semantic MediaWiki, уметь использовать различные типы данных внутри Semantic MediaWiki
- обмениваться проектами и блоками программ в Snap!
- сравнивать и объединять статьи о языках программирования
- импортировать и экспортировать данные в среду визуального программирования Snap!
- проектировать и программировать линейные и разветвляющиеся структуры алгоритмов;
- планировать процесс реализации алгоритма при помощи псевдокода и диаграмм
- использовать язык dgl и mermaid встраивать диаграммы алгоритмов в вики страницы
- представлять алгоритмы на страницах вики в виде диаграмм, псевдокода, кода на различных языках программирования
- создавать собственные блоки (команды и процедуры с входными параметрами) в среде Snap! (создавать функции с использованием различных типов данных))
- оценивать и сравнивать эффективность алгоритмов, вычислительную сложность алгоритмов
- использовать рекурсию в командах и процедурах, использовать рекурсию при создании собственных функций
- использовать объекты первого класса и лямбда исчисления.
Обращаться к внешним и внутренним данным из среды Semantic MediaWiki, уметь использовать различные типы данных внутри Semantic MediaWiki
- Примеры задач на внутренние данные
- Подсчитай внутри вики количество участников из МГПУ Category:UserMGPU?
AAnosov, AbdullaevaSP041, Abushkindb, Adila, AfanasevDV, Afonbro, Agafonova, Agisheva Viktoria, AizatullovaDN, AizatullovaDinara, AlekhinaAA, Alexadr Retling, AlexandraSemina, AlexandraSemina2, Alexbard2000, AlievM, Alina, Alina Ermakova, Alina Igorevna, AliyaSa, Anastasia Alekseychuk, Anastasia Bondaletova, Anastasia Lugovaya, Anna Dolezhal, Annapvorman, Annavorman, Annet 199, AnotnovVA207, AntoshkinAA, Arlinskaya Alexandra, AseevaGalina, Azevichai, BarykinaEA, BashashkinAM, Bashkatova Anna, BazanovaAY, BelikMary, BeregovaMS, Black0mesa, Bobiloket, BoboevaSN, BondarenkoEV, Borisova Tanya, BratkinPA, CherenkovIR, Daria Shender, DavydovAE, Die Toten Engel, Dimentry, Dmitriy… следующие результаты
- Посчитай число участников, которые указали, что используют язык Scratch ?
- Собери таблицу с описанием писателей Category:Person, которые оказали влияние на язык R
- Собери тайм-лайн с языками, ведущими свое происхождение от языка Prolog
- Предложи собственную задачу на использование внутренних данных в среде Semantic MediaWiki
- Примеры задач на внешние данные
- Размести на странице выборку из датасета, который уже есть в категории Category:Dataset
- Добавь новый датасет в 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, после чего кот просит их перемножить и написать полученный ответ. Если ответ верный, кот произносит один набор фраз и подпрыгивает, снимая шляпу. Если ответ введен неверный, то произносит другую фразу и озвучивает правильный ответ.
![]() |
Using Clones for Particle Effects | Как создать эффект частиц с помощью клонов? |
Использовать данные МЭШ для моделирования поведения учителей | При изучении языков высокого уровня хотелось бы опираться на реальные ситуации, которые происходят с учителями. Эти ситуации описываются и моделируются в различных языках. Мы взяли несколько сред многоагентного моделирования, где агенты симулируют поведение учителей, и скрестили эти языки с данными, которые были извлечены из МЭШ.
|
Как использовать 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 ![]() |
Как собрать данные об отношениях участника в сети Scratch | У нас есть возможность обратиться к Scratch API и запросить информацию о тех, на кого подписался данный участник сообщества. И есть возможность запросить информацию о тех, кто подписался на данного участника |
Как создавать клоны в Scratch | Создаём клоны в Scratch |
Как управлять поведением агентов на основании их пространственных характеристик | Распространённая в играх и моделях ситуация, когда агента должен совершать действия на основании того, где он находится, кто находится с ним рядом и т.п. |
Какие есть функции для списков? | В различных языках программирования достаточно часто встречаются задачи обработки списков. В этой статье собраны функции для списков |
Организовать взаимодействие персонажей | В искусственном мире есть несколько акторов-персонажей и мы хотим, чтобы они взаимодействовали между собой
Каждый персонаж, который создали участники нашей команды, в начале истории будет прятаться и вставать в угол, где он колобка не учует. Появляться зверь этот зверь будет только тогда, когда его позовут - т.е. когда он получит сообщение. Например, медведь будет реагировать на сообщение “Приходи, медведь”. Общая схема обмена сообщениями выглядит следующим образом:
|
Организовать обмен сообщениями между агентами | Как организовать обмен сообщениями между агентами? И в Scratch и в Snap! действует театральная метафора, когда персонажи могут обмениваться сообщениями и реагировать на сообщения. При этом в Scratch сообщения рассылаются всем, а в Snap! есть возможность указать адресата сообщения
![]() |
Посчитать и сохранить значение | Посчитать и сохранить значение/ У нас есть множество зверей и все они собираются как-то взаимодействовать с колобком. И нам нужно, чтобы звери набрасывались на колобка не все сразу с криком “Я тебя съем”, а делали это по очереди. Как организовать эту очередь? |
Сортировка вставками | Сортировка вставками (англ. Insertion sort) — алгоритм сортировки, в котором элементы входной последовательности просматриваются по одному, и каждый новый поступивший элемент размещается в подходящее место среди ранее упорядоченных элементов. Вычислительная сложность 0(n2) |
Сортировка пузырьком | Сортиро́вка простыми обменами, сортировка пузырько́м (англ. bubble sort) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Метод сортировки обменами лежит в основе некоторых более совершенных алгоритмов, таких как шейкерная сортировка, пирамидальная сортировка и быстрая сортировка.
![]() |
Cравнивать и объединять статьи о языках программирования
- Собери диаграмму на основании данных о возрасте, на который рассчитан язык
- Собери диаграмму тайм-лайн о языках с определёнными свойствам
- Собери диаграмму на основании назначения языка
Язык общего назначения | |
Специальный прикладной язык | |
Мини-язык для обучения |
Импортировать и экспортировать данные в среду визуального программирования Snap!
- Импортируйте датасет (Category:Dataset ) в свой проект
- Совершите действия по извлечению строк и столбцов, соответствующих определённому критерию. Ограничьте размер итогового датасета 10 строками и разместите его на странице
- Опубликуйте проект с операциями над данными