Toy Projects (Programming)

Project Language Description
Drum Scheduling Java An O(n*log(n)) implementation of an optimal drum scheduling algorithm from a 1972 paper.
Repeated A* Java An A* implementation for an agent with limited visibility in a 2D world.
Eight Puzzle Python An eight puzzle (n x m puzzle) solver that uses iterative deepening depth first search to find the optimal solution if one exists.
Knapsack Python Three different algorithms to solve the 0-1 knapsack problem and one greedy algorithm to solve the continuous knapsack problem.
Prefix Sums C++ A parallel algorithm that uses MPI to calculate prefix sums using MPI_Send and MPI_Recv calls instead of MPI_Scan which already implements this functionality.
Find Max C++ A parallel algorithm that uses MPI to calculate the maximum of a set of numbers using MPI_Send and MPI_Recv calls instead of MPI_Reduce which already implements this functionality.
Missionaries and Cannibals Lisp A solver for a generalized version of the missionaries and cannibals problem.