Binary Search Tree's are great. A couple dozen lines of code yields you with an efficient ordered collection suitable for all kinds of stuff from sets to symbol tables. A couple dozen more lines, and that efficiency can be guaranteed through self balan

I often like to circle back around to things I've previously explored. It's often beneficial to see things from a fresh perspective, especially when it comes to thinking algorithmically. The N queens problem is often used to introduce computer science

The knights tour is a classic chess puzzle, which involves finding a path on a chess board where starting from some place on the board, the knight occupies every space once without using the same space twice. Like the N queens problem, finding a knight

Few if any names hold as much weight in computer science as Donald Knuth. So when knuth proposes a solution to a problem, you'd be wise to listen. Amongst his (many) famous contributions is the awesomely named "Algorithm X". To quote wikipedia, Algorit

A fundamental concept for software engineers when it comes to writing maintainable software is the DRY principle: Don't repeat yourself. Many times when writing code we may find ourselves implementing algorithms that are very similar in structure to ea