Programming 1, Winter 2020-21
Project Ideas

This list contains some possible ideas for your semester project. It is certainly not exhaustive; any idea that is interesting and non-trivial is potentially possible. Use your imagination. I'm happy to discuss possible ideas with you.

animated sort

Use graphics to animate one or more of the sorting algorithms we've learned in Introduction to Algorithms.

data structure animation

Display an animation of one of the data structures we've studied in Introduction to Algorithms, such as a binary tree or binary heap.

linear equations

Write a program that reads a set of simultaneous linear equations and solves them using matrices and Gaussian elimination.

calendar

Write a program that lets the user enter and edit information about events, and displays them in a 2-dimensional calendar view.

encryption/decryption

Write a program that can encrypt text using a Vigenère cipher, and can also decrypt text even without the key.

calculator

Write a scientific calculator with a graphical interface.

video game

Implement a simple video game such as Pong or (harder) Asteroids or Pac-Man.

Rubik's Cube

Write a program that reads a file that describes the current position of a Rubik's Cube, and prints out moves to solve the puzzle if it is solvable in a small number of moves.

strategy game

Implement an abstract strategy game such as Tic-Tac-Toe, 3-D Tic-Tac-Toe, Connect Four, Gomoku, or Pente, allowing the player to play against the computer.

Mastermind

Implement the game of Mastermind, allowing either the human player or the computer player to guess.

Sudoku

Write a graphical program that displays a Sudoku board and lets the user fill in squares.

Minesweeper

Implement Minesweeper with a text-based or graphical interface.

Set

Implement the game of Set for one or more players.