In this series of liveProjects, you’ll use the Java-based Processing platform to visualize common data structures and algorithms. Processing gives you direct access to a digital canvas and a powerful set of drawing primitives that allow you to generate stunning visualizations. Each liveProject in this series will cover visualizing a different kind of algorithm, improving your understanding of how the algorithm works through thoughtful graphic representation.
These projects are designed for learning purposes and are not complete, production-ready applications or solutions.
here's what's included
Project 1 Sort and Search Algorithms
Project 1 Sort and Search Algorithms
In this liveProject, you’ll explore the basics of sort and search algorithms. You’ll begin by sorting a simple data structure with the “selection sort” algorithm, then use the state-of-the-art quicksort algorithm. You’ll use the Processing platform to visualize every step, before finally programming a binary search function and visualizing the search process on your sorted data structures.
Project 2 Graph Data Structures
Project 2 Graph Data Structures
In this liveProject, you’ll walk through the basics of tree and graph data structures, and explore two algorithms that can efficiently search these data structures. You’ll use the Breadth-First Search (BFS) algorithm to search a dataset structured as a tree, then move to Dijkstra’s algorithm to find the fastest path in a graph dataset.
Project 3 Multidimensional Datasets
Project 3 Multidimensional Datasets
In this liveProject, you’ll implement a multi-dimensional dataset and visualize it using dimension reduction on a Processing canvas. Dimension reduction helps select the most important features of a dataset, and is useful in machine learning. You’ll then explore distance functions and the k-Nearest-Neighbors algorithm to classify a new element.
Project 4 Parallel Computing Algorithms
Project 4 Parallel Computing Algorithms
In this liveProject, you’ll walk through the powerful MapReduce algorithm. MapReduce maps out data tasks to multiple processors, and then reduces all processors’ results to a single combination. You’ll use Processing to visualize MapReduce with twenty processor nodes, then animate the MapReduce algorithm with a streaming input dataset
Prerequisites
This liveProject is for software developers, tech educators, and aspiring programmers who know the basics of Java programming. Some experience with Processing will be helpful, but is not required. To begin this liveProject you will need to be familiar with the following:
TOOLS
- Basic Java skills such as variables and functions, control structures, if statements, and loops
TECHNIQUES
- Simple data structures
- Simple object-oriented programming
- Basic debugging using print statements and the Processing console
you will learn
This liveProject is an ideal preparation for programming interviews, whiteboarding exercises, computer science studies, and visual communication skill improvement. You’ll deepen your programming skills with a better understanding of common algorithms.
- Simple data structures in Java (Processing)
- Selection sort and quick sort algorithms
- Sequential and binary search algorithms