There are a number of good sources of programming puzzles on the web, including the International Conference on Functional Programming, Al Zimmermann's Programming Contests, Project Euler, and company sites such as ITA Software. This collection of pages contains the solutions to several of these puzzles, including:

Bitvector Genealogy

Determine the parent-child relationships among a set of randomly mutated bit vectors. Solution in Common Lisp.

Optimal Ghost

Play an optimal game of Ghost. Solution in Java.

Sling Blade Runner

Find the longest combination of overlapping movie titles. Solution in C.

Word Numbers

Find the 51 billionth letter in a list of numbers organized alphabetically. Solution in Common Lisp.

These solutions are heavily commented to give an idea of my thought processes and general problem solving style. Links to all source code are in the summary sections at the end of each page.

www.softwarematters.org