Bridges Assignment Repository

CS1

Basic API Calls

etch a smiley.
learn the basic of composing an image on the BRIDGES game API.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Searching by Layers - 2D Grid.
This assignment is part of a larger assignment [insert link here] on determining the closest point to a given point within a 2D map, eg., finding the nearest restaurant from a given location. It initiates a search from within a 2D grid and enumerates the cells layer by layer outwards from the start cell.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Tests and Conditions

GameTutorial.
This illustrates the basic Game API and its features
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Bugstomp.
See a bug and stomp on it. It is some kind of a whack-a-mole clone. This is good to teach basic tests and condition.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Loops

Regular Pattern.
Create colorful graphical patterns. This is a good assignment for loops, and conditions.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Mountain Paths.
Find the simplest path through a mountain by using algorithms. Simply using a heuristics greedy algorithm, or optimally using Dynamic Programming.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Audio Mixing.
Learn about audio mixing using Bridges AudioClip. Mix two audio sources together into one. Also mix two audio sources by fading one into the other.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Audio Wave - Loading and Editing Sound Waveforms.
Goal of this assignment is to learn to load audio files and modify it to create new sound waves (averaging, subsampling, etc.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Searching by Layers - 2D Grid.
This assignment is part of a larger assignment [insert link here] on determining the closest point to a given point within a 2D map, eg., finding the nearest restaurant from a given location. It initiates a search from within a 2D grid and enumerates the cells layer by layer outwards from the start cell.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Frequency Player.
Create a program that plays tones at various frequencies. This is a good assignment for learning about methods, loops, and casting between data types.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Melody Assignment.
A Melody assignment inspired by Nifty, generating songs from files
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Reddit Posts by Hour.
Bin reddit posts based on the hour they were posted, and graph it
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Changing Bitdepth.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Input/Output

Hurricane Tracker.
Parse CSV files to show where hurricanes are. Stay safe!
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Pixel Art.
This is an assignment using the game grid to save art drawn and to load it back.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Melody Assignment.
A Melody assignment inspired by Nifty, generating songs from files
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Frequency Player.
Create a program that plays tones at various frequencies. This is a good assignment for learning about methods, loops, and casting between data types.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

1D Arrays

Audio Mixing.
Learn about audio mixing using Bridges AudioClip. Mix two audio sources together into one. Also mix two audio sources by fading one into the other.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Frequency Player.
Create a program that plays tones at various frequencies. This is a good assignment for learning about methods, loops, and casting between data types.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Melody Assignment.
A Melody assignment inspired by Nifty, generating songs from files
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Reddit Posts by Hour.
Bin reddit posts based on the hour they were posted, and graph it
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Wordle Bot .
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Changing Bitdepth.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

2D Arrays

SquareFill.
Generate random geometric patterns.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Finding Repetition in Lyrics.
Visualizing repetition in the lyrics of song makes their structure appear. This assignment teaches loops, condition, and basic string processing while having a data visualization flair to it.
[Description] [presentation slides] [C++ scaffold] [Java scaffold] [Python scaffold]

Image Puzzles.
Decypher hidden messages in garbled images and discover PIN codes. This is an assignment in I/Os, loops, and conditions.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Processing 2D Color Images.
Use simple Color and Image Processing Operations using the Bridges ColorGrid
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Searching by Layers - 2D Grid.
This assignment is part of a larger assignment [insert link here] on determining the closest point to a given point within a 2D map, eg., finding the nearest restaurant from a given location. It initiates a search from within a 2D grid and enumerates the cells layer by layer outwards from the start cell.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Audio Wave - Loading and Editing Sound Waveforms.
Goal of this assignment is to learn to load audio files and modify it to create new sound waves (averaging, subsampling, etc.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

71-PiEstimation.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Games

Game API Controls Example.
[Description] [C++ scaffold] [Python scaffold]

Game API Controls Example 2.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

2048.
Build the popular game 2048.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Infinite Runner.
Run, jump over bombs, and grab apples!
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Minesweeper.
Build the classic Minesweeper game. This game teaches about loops, tests, 2D arrays, and recursion.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Racing Car.
Make a racing game in Bridges with ever shrinking tracks. How long can you race? This assignment teaches about loops, 1D arrays, and conditions.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Snake.
Build the classic Snake game. This game teaches about loops, conditions, and queues.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Tic Tac Toe.
The classic Tic Tac Toe game.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Pong.
Implement Pong and play against your friends!
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Connect Four.
Create Connect Four and play against your friends!
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Space Invaders.
Make a game similar to Space Invaders. This assignment teaches about loops, conditions, and 2D arrays.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Snake with Queues.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Audio

Frequency Player.
Create a program that plays tones at various frequencies. This is a good assignment for learning about methods, loops, and casting between data types.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Audio Wave - Loading and Editing Sound Waveforms.
Goal of this assignment is to learn to load audio files and modify it to create new sound waves (averaging, subsampling, etc.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Audio Mixing.
Learn about audio mixing using Bridges AudioClip. Mix two audio sources together into one. Also mix two audio sources by fading one into the other.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Melody Assignment.
A Melody assignment inspired by Nifty, generating songs from files
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Changing Bitdepth.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Simulation

Spreading of Fire.
Simulate the spreading of fire in different conditions. This is a great assignment to learn about simulation, looping, conditions, 2D arrays.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Falling Sand.
Simulate the physics of sand and water. This is an interactive assignment using loops, conditions, and arrays.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Data Structures

LinkedList

ListIMDB.
Access and visualize remote data through Bridges.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Linked List Using USGS Earthquake Data.
This assignment illustrates a linked list that contains earthquake data extracted from US Geological Survey.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Stacks and Queues

Maze Solver.
Solves a maze using standard algorithm such as BFS, DFS, Astar. This is a good assignment for stacks and queues, and Shortest Path problems.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Towers of Hanoi.
A classic puzzle involving ancient Vietnamese temples and recursion.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Snake.
Build the classic Snake game. This game teaches about loops, conditions, and queues.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Snake with Queues.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Recursion

Towers of Hanoi.
A classic puzzle involving ancient Vietnamese temples and recursion.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

74-Fractals.
[Description]

75-KochCurve.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Z-Curve.
Create a Z Space filling curve using recursion
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Trees

Binary Search Trees - Earthquake Data.
Illustrates how to access Earthquake data and display it using a binary search tree.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Shakespeare Favorite Words.
Use max-heaps and dictionary to find Shakespeare favorite words!
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Image Representation and Compression Using KD Tree.
Representing/Compressing 2D Images Using K-D Trees
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

What words characterize the writing of Mark Twain, Shakespeare or your favorite author?.
Textual analyis of books using the Project Gutenberg book collection
[Description] [Java scaffold] [Python scaffold]

Quadtree Construction and Search on US City Data.
This assignment is an example of spatial search queries using a Quadtree data structure. It involves building a quadtree data structure given the locations of a set of US cities and building an adaptive search structure, followed by performing spatial search queries.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Hashing, Hash Tables, and Hash Maps

Shakespeare Favorite Words.
Use max-heaps and dictionary to find Shakespeare favorite words!
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

What words characterize the writing of Mark Twain, Shakespeare or your favorite author?.
Textual analyis of books using the Project Gutenberg book collection
[Description] [Java scaffold] [Python scaffold]

Graphs

Maze Solver.
Solves a maze using standard algorithm such as BFS, DFS, Astar. This is a good assignment for stacks and queues, and Shortest Path problems.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

The Six Degrees of Kevin Bacon.
Compute the Bacon number of famous actors on IMDB's actor movie graph. This is a good basic graph assignment requiring to implement BFS.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Temporal Bacon Number.
See the evolution of actors by tracking their Bacon number over time. Compute BFS on different graphs and study the complexity of the analysis.
[Description]

Earthquake Tracker.
Visualize in real time earthquakes and derive proximity graphs. This is a basic Graph construction assignment. Optionally, one can highlight connected components with different colors.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Shortest Path on Real Maps from OpenStreetMaps.
Build a GPS routing application by accessing maps of your city and computing shortest paths in it. This algorithm teaches about graph algorithms, shortest path algorithms, and priority queues.
[Description] [presentation slides] [C++ scaffold] [Java scaffold] [Python scaffold]

Game of Thrones: Hollywood.
Was Kevin Bacon always the center of Hollywood? Who was Kevin Bacon before Kevin Bacon? Answer these questions by computing PageRank on a Movie-Actor graph from 1910 to today. Study the complexity of PageRank on large graphs.
[Description]

What words characterize the writing of Mark Twain, Shakespeare or your favorite author?.
Textual analyis of books using the Project Gutenberg book collection
[Description] [Java scaffold] [Python scaffold]

66-Chess-Data.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Algorithms

Big Oh

Complexity Matters.
Plotting the runtime of a few hypothetical algorithms to internalize that BigOh is what should matter first.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Sorting

Benchmarking Sorting Algorithm.
By writting sorting algorithms and benchmarking them, we can understand why it is important to improve the complexity of algorithms. We also understand why it may be good to leave the implementation of well known problems to library implementors.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Brute Force

Voronoi Diagram Brute Force.
The Voronoi diagram is a partition of a plane into regions such that all points in a region are closer to a Voronoi site (or object) than any other site.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Divide and Conquer

Convex Hull of US Cities.
This assignment uses the US city dataset's locations to compute the convex hull using a brute-force algorithm. The computed convex hull will resemble a US map outline.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Search space

Wordle Bot .
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Maze Solver.
Solves a maze using standard algorithm such as BFS, DFS, Astar. This is a good assignment for stacks and queues, and Shortest Path problems.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Shortest Path on Real Maps from OpenStreetMaps.
Build a GPS routing application by accessing maps of your city and computing shortest paths in it. This algorithm teaches about graph algorithms, shortest path algorithms, and priority queues.
[Description] [presentation slides] [C++ scaffold] [Java scaffold] [Python scaffold]

Mountain Paths.
Find the simplest path through a mountain by using algorithms. Simply using a heuristics greedy algorithm, or optimally using Dynamic Programming.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Complexity of Graph Problems

Shortest Path on Real Maps from OpenStreetMaps.
Build a GPS routing application by accessing maps of your city and computing shortest paths in it. This algorithm teaches about graph algorithms, shortest path algorithms, and priority queues.
[Description] [presentation slides] [C++ scaffold] [Java scaffold] [Python scaffold]

Temporal Bacon Number.
See the evolution of actors by tracking their Bacon number over time. Compute BFS on different graphs and study the complexity of the analysis.
[Description]

Game of Thrones: Hollywood.
Was Kevin Bacon always the center of Hollywood? Who was Kevin Bacon before Kevin Bacon? Answer these questions by computing PageRank on a Movie-Actor graph from 1910 to today. Study the complexity of PageRank on large graphs.
[Description]

Spanning Tree

Minimum Spanning Tree on US Cities (Prim's Algorithm).
The purpose of this assignment is to implement Prim's Minimum Spanning Tree Algorithm and demonstrate its application using US city data.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Spatial Problems

Spatial Indexing - Open Street Map.
In this assignment we will use Open Street map data to retrieve a set of locations from a specified section of a city or region. The goal is to efficiently compute the closest point given a 2D query location.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Convex Hull of US Cities.
This assignment uses the US city dataset's locations to compute the convex hull using a brute-force algorithm. The computed convex hull will resemble a US map outline.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Quadtree Construction and Search on US City Data.
This assignment is an example of spatial search queries using a Quadtree data structure. It involves building a quadtree data structure given the locations of a set of US cities and building an adaptive search structure, followed by performing spatial search queries.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Greedy Algorithms

Mountain Paths.
Find the simplest path through a mountain by using algorithms. Simply using a heuristics greedy algorithm, or optimally using Dynamic Programming.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Shortest Path on Real Maps from OpenStreetMaps.
Build a GPS routing application by accessing maps of your city and computing shortest paths in it. This algorithm teaches about graph algorithms, shortest path algorithms, and priority queues.
[Description] [presentation slides] [C++ scaffold] [Java scaffold] [Python scaffold]

Geological Survey.
Find the shortest route to visit the site of every recent earthquakes.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Minimum Spanning Tree on US Cities (Prim's Algorithm).
The purpose of this assignment is to implement Prim's Minimum Spanning Tree Algorithm and demonstrate its application using US city data.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Dynamic Programing

Mountain Paths.
Find the simplest path through a mountain by using algorithms. Simply using a heuristics greedy algorithm, or optimally using Dynamic Programming.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Shortest Path on Real Maps from OpenStreetMaps.
Build a GPS routing application by accessing maps of your city and computing shortest paths in it. This algorithm teaches about graph algorithms, shortest path algorithms, and priority queues.
[Description] [presentation slides] [C++ scaffold] [Java scaffold] [Python scaffold]

NP-Complete problems

Geological Survey.
Find the shortest route to visit the site of every recent earthquakes.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]

Multi objective optimization

Mountain Paths.
Find the simplest path through a mountain by using algorithms. Simply using a heuristics greedy algorithm, or optimally using Dynamic Programming.
[Description] [C++ scaffold] [Java scaffold] [Python scaffold]