00 IPv4 Info
01 Bellman-Ford Simulation
02 BMI Calculator
03 Sorting Algo's Visualized
04 String->ASCII/Unicode
05 Count String Occurences
06 Tornado Text/Image
07 Assembly-Like Language
08 Currency Converter
09 Binary Search
10 Text Wrapping
11 Image Viewer
12 Eight Queens Puzzle
13 Billiards
14 Quine
15 Expression Evaluator
16 Simple Grammar Parser
17 Arbitary Calendar
18 Minesweeper
19 Triangle Numbers
20 FizzBuzz!
21 Bounding Rects.
22 Pascal's Triangle
23 Date Difference
24 Numbers
25 Digital Clock
26 Sudoku
27 Pong
28 Tanks Clone
29 Overlapping Strings
30 Image Convolution
31 Cipher/Decipher
32 Paint Program
33 Basic Steganography
34 Directory Recursion
35 Analog Clock
36 Crossword Puzzle
37 Palindrome Checker
38 Text File*
39 Retro Video Effect
40 Tic-Tac-Toe
41 Enigma Machine Simulator
42 Digits of Pi
43 Password Generator
44 Function Plotter
45 Nonogram Generator
46 3D Spinning Cube
47 Count words in string
48 Voronoi diagram
49 Tetris
50 Knight's Tour
51 Unit Converter
52 TCP Chat
53 Higher/Lower
54 Dynamic MultiD. Arrays
55 Sierpinkski Triangle
56 Random Maze Gen/Solver
57 Anagram Checker
58 Sound Synthesis
59 Mandelbrot Set
60 Text -> Morse Converter
61 15-piece Sliding Puzzle
62 Scientific Calculator
63 Random Name Generator
64 Benford's Law
65 UNIX timestamp -> local time
66 Perlin/Simplex Noise
67 Ulam Spiral
68 Static Website Generator
69 RPN Calculator
70 Reverse a Number
71 Luhn Algorithm
72 2D/3D Polygons
73 Cellular Textures
74 ASCII Art Circle Generator
75 Base Converter
76 Solitaire
77 Linked List
78 Dijkstra's
79 Columns/Coloris Game
80 Factorial
81 Load Image & Manipulate
82 Prime Number Sieve
83 Hangman
84 Towers of Hanoi
85 Fibonacci Sequence
86 Temperature Converter
87 Level Viewer
88 Basic TCP Simulator
89 Numbers to Words
90 IPC Implementation
91 Conway's Game of Life
92 Natural Order String Sort
93 Wind Chill Calculator
94 Image -> Quadtree
95 Eulerian Trail/Path
96 Typing Speed Calculator
97 Collatz Conjecture
98 Long Digit Multiplication
99 Ray Caster Viewer
  • Given an IPv4 address and a subnet mask, compute:
    • Network address
    • Broadcast address
    • First & Last host address
  • Implement the algorithm with at least 5 vertices
  • Display a graph with random edge weights
  • Calculate BMI with required parameters and display result
  • Generate a colored graph and put user BMI on graph
  • Create a visualization for at least 3 sorting algorithms of your choice
  • Using sleepsort as one is not advised
  • Take a string (<64 characters) and return some large respresentation of it in whatever text format
  • Make it have nice kerning
  • Count the occurences of one string in a larger string or file
  • Generate a random tornado in ASCII/Unicode
  • Create your own small assembly-like language
  • Have a VM to run it
  • Make a simple text-based game with it
  • Change from one currency to another
  • At least 5 currencies
  • Get live exchange rates for all currencies from online
  • Implement binary search on already sorted array or tree
  • Must work for integers and strings
  • Sort the data structure
  • Work with arbitrary values
  • Take string and int as input, and return array of strings with no single element longer than passed int
  • Correctly hyphenate the words if needed
  • Support at least 2 image formats
  • Place 8 queens on a chessboard so that no queens threaten each other
  • Create a simple pool game with 15 balls + cue
  • Create a non-empty program that prints its own source code without looking at source file
  • Implement a mathematical expression evaluator with the 6 order of operations
  • eg. "7+5*(3^2)-(5/0.5)" = 42
  • Allow shorthand multiplication
  • eg. "(3)*(7)" is the same as (3)(7)
  • Take a string and a delimiter, and tokenize it by splitting it at every instance of the delimiter
  • Take a month and year as input and output the month with days labeled
  • Create a text version of Minesweeper with custom dimensions (max 10)
  • Make a nice GUI for it
  • Add the following features
    • timer to count ongoing time
    • scoreboard
    • flagging capabiltiy
  • Extend to max dimension 200
  • Given an input, n, generate the n-th triangle number
  • Print out the corresponding triangle
  • Implement your your FizzBuzz!
  • Input 2 rectangles (however you want), check if they overlap, and if they do, calculate the overlapping rectangle
  • For a given n, calculate the n-th level of Pascal's Triangle
  • Print out (nicely) the trianglular shape with n levels

                                        function NthPascalRow(n){
    //n is 0-indexed. func(0) = "1";
    var str = "";
    for(var i = 0; i n -1){return 0;}
    return recursiveNchooseK(n-1,k-1)+recursiveNchooseK(n-1,k); 
  • Given 2 dates in a format chosen by you, calculate the difference between them and display in a human-readable format
  • Extend to allow a variety of dates
  • Play Rock, Paper, Scissors with 2 human inputs
  • Take a 12h or 24h and turn it to ASCII/Unicode art
  • Make sure timezone is correct
  • Make a GUI
  • Generate and display a Sudoku puzzle (deterministically) with a given seed
  • Remove a 'random' number of elements according to a supplied difficulty level
  • Sidenote that the minimum number of elements that must be shown are 17 for a unique Sudoku solution
  • Given a Sudoku puzzle, solve it algorithmically
  • Implement a simple game of pong
  • Create your own version of Tanks (or Scorched Earth)
  • Calculate overlapping strings (long and short overlaps)
  • Make it O(n)
  • Apply a matrix to an image and generate a new image
  • Make it multi-threaded
  • Implement at least one of the ciphers in the list below
  • Make sure you have a decipher tool as well
  • Make your own MS Paint!
  • Features:
    • Color picker
    • Line Tool
    • Circle Tool
    • Rectangle Tool
    • Erase Tool
  • Implement a way to hide and extract data from an image file
  • Given a directory, recursively search its subdirectories
  • Find the smallest and largest file and print full path + size
  • Make your own analog clock display
  • Given an input, n, create an n x n board and create a crossword puzzle
  • Given a string, check if it's a palindrome
  • Worst runtime should be O(n/2)
  • Take a filepath and string as input, then display the contents of the file center/right/left justified
  • Make your own old school demo effect
  • eg. tunnel, plasma, scrollers, zoomers
  • Pretty simple
  • Make an AI to play against
  • Given a config file (containing all settings required), and a string, output the "enigma"-ed string
  • Calculate the first 1000 digits of Pi
  • Given a set of options (length, character bank), generate and output a password
  • Given coefficients and axis range, plot a function of your choice with the prior corresponding arguments
  • Plot the derivatives (first and second if exist)
  • Long explanation, check the wiki link below
  • Make a solver for a given puzzle
  • Display a rotating 3D cube
  • Perspective projection is one way, but not limited to this
  • For a given string or file, count the number of words in it
  • Extend functions to count lines, sentences, paragraphs, etc.
  • Given a seed, deterministically generate a Voronoi diagram
  • Make your own Tetris clone
  • Given an input, N, generate a sequence of legal knight moves on an NxN board
  • Brute force is not a good idea for large N ( >8)
  • Convert from one unit to a chosen another
  • Convert from at least weight, area, length
  • Implement some simple chat system using TCP
  • Add an encryption layer
  • Pick a random number, take input until user guesses correctly
  • Given a vector of integers, create a multidimensional array
  • The leftmost (first) int is the top level array
  • [2 3] would return something like (with 0 as placeholder)
    • | 0 0 0 |
    • | 0 0 0 |
  • Generate a Sierpinski triangle and display it
  • Methods of generation are in the wiki link
  • Generate an MxN maze and then solve it
  • Given two strings, output if they're anagrams
  • Make some sort of sound output according to some input
  • GUI would make it easier to test options if possible
  • Display a Mandelbrot Set and allow zoom
  • Given a string, output the Morse code string
  • Generate a Sliding Puzzle with 15 pieces with moveble pieces
  • Create a scientific calculator
  • Generate a random name (first, middle, last)
  • Add an option to change ethnicity
  • Given some data, get Benford's law percentages
  • Make a nice bar graph display with the digits
  • Given a timestamp, convert it to your local time, and display it
  • Given some required parameters, create and display Perlin or Simplex noise
  • Create and display (or save) an Ulam spiral
  • Given some content, and a selection of a pre-defined template, render the choices to HTML/CSS
  • At least 2 templates
  • Make templates easily editable so one can add onto it
  • Given an input in postfix, verify the correctness and execute it
  • Allow input in regular order of operations and parse into RPN
  • Given a numerical input, reverse and display it using whatever methods you want
  • Don't convert the number to a string. Use Math!
  • Given an input, check if it satisfies Luhn's
  • Create a 2D polygon with the ability to scale and rotate
  • Create a common object with multiple polygons
  • Allow 3D
  • Create and display a cellular texture
  • Given a radius, draw a circle in using ASCII characters
  • Colorize it, with separate fill and edge colors
  • Given 3 numbers, convert the given number from the given base to the new given base
  • Base range is from [2,16], both inclusive
  • Eg.
  • 15,10,2 -> 1111
  • 1111,2,16 -> F
  • Create a solitaire copy, text based or visual
  • Implement your own double linked list
  • Implement the following methods with correct time-complexity
  • Using Java-like syntax to be clear on types
  • S := size of list
    • int size() - O(1)
    • String toString() - O(n)
    • String toStringRev() - O(n)
    • bool add(E el) - to end of list - O(1)
    • bool add(int h, E el) - insert into index h - O(min(h,S-h) )
    • E get(int h) - O(min(h,S-h) )
    • set(int h, E data) - O(min(h,S-h) )
    • E remove(int h) - remove el at ind h - O(min(h,S-h) )
  • Implement Dijkstra's algorithm with at least five nodes
  • Create a Columns or coloris game
  • If you make it text-based, careful with "frames" so it doesn't look shit
  • Given a number, find the factorial of it
  • Load an image file, flip/mirror/rotate it randomly, save to a new file
  • Given an end point, construct a sieve
  • Make it multi-threaded
  • Create a hangman game
  • Create a Tower of Hanoi game and solve it
  • Create and display the first 100 numbers of the sequence
  • Given 3 inputs, convert a given temperature from a given unit to another given unit
  • Create a level viewer for any game you want
  • Make it able to scroll through certain levels in a game
  • Basic TCP simulator which uses handshakes, data sending, closing
  • Simulate retransmissions, OOB data, window scaling, etc
  • Given an int, convert it to the English word representation (0<n<1,000,000)
  • Make a "chat" system between two programs run locally on same computer
  • Any methods are legal but they must be different processes
  • Allow communicating in same LAN connection on different computers
  • Create Conway's Game of Life!
  • Also add other cellular automata
  • Implement a natural order sort for data structure of your choosing
  • eg: abc1, abc2, abc20, abc20...; not abc1, abc10, abc2, abd20..
  • Given the appropriate parameters, calculate the wind chill
  • Split an image into squares using a quadtree,
  • hint : mean squared error
  • Given an array of edges, construct an Eulerian path
  • Create a typing speed calculator
  • Given a number, display the hailstone sequece of it
  • Multiply two random 100-digit numbers, display the result
  • Create a raycaster engine with customizable maps (can be ASCII format)
  • Add textmapped floors and ceilings, sprites, and lighting