Algovis — подборка ресурсов с визуализацией алгоритмов

0
10686

В этой подборке собрана коллекция проектов и ссылок, посвященных визуализации алгоритмов. Множество красочных сайтов с примерами реализации и кодом.

Проекты

  • Mathigon (пример: Решето Эратосфена) и бета-сайт


    Симметрия и пространство, числа и паттерны, комбинаторика и логика, вероятность и игры, движение и материя. Красочные и понятные объяснения, а также ответы на интересующие вас вопросы по этим темам вы найдете здесь.

  • Game Mechanic Explorer (прим: Самонаводящиеся ракеты)

    rockets
    Коллекция конкретных примеров различной игровой механики, алгоритмов и эффектов. Эти примеры реализованы с помощью JavaScript и игрового фреймворка Phaser, но концепции и методы являются общими и могут быть применены к любому игровому движку.

  • Steven Wittens (пример: Как начертить Жюлиа-фрактал — нажимайте стрелочки на слайдшоу)


    Множество интересных статей с картинками, анимациями и примерами кода расскажут вам об многих вещах, которые не часто можно встретить на просторах Интернета.

  • Red Blob Games (пример: Двухмерная видимость)

    red_blob
    Полезный ресурс с кучей интерактивных мини-игр, которые шаг за шагом помогут вам понять как легкие, так и сложные алгоритмы.

  • VisuAlgo (пример: Нахождение минимального остовного дерева)

    algovis
    Потрясающий сайт с визуализированными алгоритмами. Отличие этого ресурса в том, что он показывает выполнение программы визуально рядом с исполняемым кодом, подсвечивая строки, по которым проходит компилятор на данный момент.

  • Курс по алгоритмам от Khan Academy (пример: Поиск в ширину)

    khan_academy_algo
    Khan Academy говорит сама за себя — качественный курс с лекциями и практикой. Деревья, сортировки, рекурсии и многое другое.

  • Интерактивно объяснённый алгоритм Мелькмана

    melkmann
    Как следует из названия, на этом сайте объясняется алгоритм Мелькмана — алгоритм за O(n) времени, который ‘выправляет’ выпуклости многоугольника, то есть замкнутой непересекающейся ломаной, строя таким образом выпуклую оболочку.

Блоги

  • Блог Setosa (пример: Gridlock vs. Bottlenecks)

    визуализация алгоритмов
    Отличная подборка картинок и анимаций, наглядно показывающих принципы работы алгоритмов, а также объясняющие некоторые теоремы и парадоксы.

  • Блог Emergent Mind (пример: Перцептрон)

    mind
    Emergent Mind — это очень полезный блог, в котором посредством анимации показывают процессы зарождения, эволюции и искусственной жизни.

  • Блог Майка Бостока

    bostock
    Дать понимание работы алгоритмов через их визуализацию — вот главная цель данного ресурса. Также есть перевод части этого ресурса на хабре.

  • Блог Кристофера Олаха (пример: Нейронные сети, Коллекторы и Топология)

    olah
    Интересный блог со множеством статей на такие темы, как нейронные сети, рекуррентные нейронные сети, свёрточные нейронные сети, глубинное обучение и так далее.

Интерактивные книги

  • Книга «Природа кода» (прим: Колебания)

    code_nature
    Интереснейший ресурс, с помощью которого вы можете не просто прочесть книгу, но и посмотреть множество интерактивных анимаций и схем, а они помогут вам в освоении таких тем, как нейронные сети, системы частиц, фракталы, векторы. Код для каждого примера, безусловно, присутствует!

  • Книга «Пиксельные шейдеры»

    pixel
    В отличии от практически всех книг и учебников, где нам объясняют, как программировать CPU(центральный процессор), «Пиксельные шейдеры» рассказывает о программировании GPU(графический процессор) и дает понимание того, какая у него структура и как он обрабатывает код.

  • Книга «Вероятностные модели познания»

    probability_model
    В этой книге исследуется вероятностный подход к когнитивной науке. Книга содержит упражнения, где вы можете писать и запускать код Church прямо в браузере.

Библиотеки и инструменты

  • Tailspin: JavaScript-интерпретатор, который запускает алгоритм, позволяя визуализации считывать локальные переменные. Также записывает историю, чтобы была возможность вернуться на пару шагов назад.
  • Vamonos: Читателю представляют визуализацию алгоритма и его псевдокод, а также немного JS. Кроме того, присутствуют некоторые полезные виджеты для отображения псевдокода, вызова стэка, структур данных и так далее.
  • Algomation: Визуализация алгоритмов, которая использует JavaScript, чтобы контролировать исполнение алгоритма одновременно с выполняемым циклом в браузере.
  • Algorithm Visualizations: Отличный ресурс, позволяющий понять работу структур данных, сортировок, деревьев и многого другого.
  • LaTeX2HTML5: Интерактивное погружение в математические уравнения.
  • Tangle: Tangle — это JavaScript-библиотека для создания страниц с интерактивным контентом. Просто и интересно!

Примеры

Перевод: Роман Мирзоян
Оригинал сможете найти здесь.