Coursera's Algorithms Part I by Princeton University
Week 4 programming assignment: a program to solve the 8-puzzle problem (and its natural generalizations) using the A* search algorithm. Search nodes of the game tree, weighted by the moves made so far plus their distance from the goal board, are inserted in a min priority queue and dequeued for further processing.