Skip to content

Instantly share code, notes, and snippets.

@bshlgrs
Created June 26, 2016 07:34
Show Gist options
  • Save bshlgrs/2363068d9775ca18390cee5fec279f3e to your computer and use it in GitHub Desktop.
Save bshlgrs/2363068d9775ca18390cee5fec279f3e to your computer and use it in GitHub Desktop.

list of programming project ideas

Board games

Any two player board game is a good exercise for basic programming logic, and you can make it into a console application. Checkers, Connect-4, Othello, Poker, Go, whatever. Chess is somewhat harder than those other games.

Here are some ways to extend these projects:

  • Add the ability to save and load games
  • Add an AI
  • Allow players to play over a local network.
  • Build these as front-end or mobile applications.
  • Make this into a web app--build a website which lets people play the game online. You can extend this arbitrarily far: nice GUIs, realtime play, etc.

Math

One really fun project is to build a computer algebra system, which is a library which lets you do symbolic manipulation. It should be able to represent expressions like $latex x + 2y$. It should know that $latex 2(x + y) = 2x + 2y$. This turns out to be pretty tricky, and making it work is a great learning experience.

Another project I enjoyed when I was younger was writing a circuit simulator. You gave the program a graph of circuit components, and it turned the graph into a system of linear equations, then solved them for current.

others

  • Algorithms
    • Classics. Sorting algorithms, searching algorithms.
    • Binary search trees. Insert, delete. Treaps. 2-3-4 trees.
      • OSTs
    • String algorithms
    • AIs for video games
  • Front end
    • Games
    • Graphing library
    • Rich text editor
    • Excel clone
  • CS
    • Regular expression matcher
    • Interpreter
    • Compiler
  • Web
    • HTTP server
    • Web scraper
    • ORM
    • Web app framework
  • Low level
    • Image conversion utilities
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment