Background

To wrap up our study of basic data structures and algorithms this semester, you will each complete a final project for the course. This project has you focus on a specific problem where the right choice of algorithms / data structures helps us solve it efficiently. I have provided you a list of potential topics, information about what algorithms / data structures they use, and their relative difficulty.

Build the Bucket Tool from MS Paint

Implement a First Generation Spell Checker

Construct a Least Recently Used (LRU) Cache

Design Your Own Cryptocurrency

Build Your Own Neural Network

Explore How Computers Know Where to Send Data on the Internet

Simulate Billions of Interacting Particles in a Galaxy

Prove That You Solved a Puzzle Without Giving Away Your Solution

Explore the Fast Fourier Transform - “The Most Important Algorithm from the 20th Century”