A new chess program by the name of Giraffe is causing a bit of a buzz at the moment, due to the fact it seemingly taught itself to play chess at the IM level. Lots of "what hope is there for humanity" headlines have accompanied this story, although it isn't the spectacular breakthrough that some writers think it is.
Certainly the notion that a chess engine can improve its own play is an intriguing one, but isn't entirely new. The Knightcap chess engine was doing this 10 years ago, although there are some differences between knightcap and giraffe. The major one is that Knightcap had its evaluation features coded into the program, and then learned how important each feature was, based on competition play on FICS. Some feature were weighted more heavily than others, depending on how they contributed to the final result.
In Giraffes case it had significantly less features coded (although it include material, piece square tables and king safety), and then tried to discover new features, based on using large learning sets of data. The position were initially scored by Stockfish (another engine) and the goal was to get as many matching evaluations as possible. On its own this isn't anything special, but then Giraffe used this information to help it in searching for moves. Rather than just use a normal Alpha-Beta style search (which depends on move ordering for efficiency), Giraffe used a probabilistic search, where nodes are investigated based on the likelihood they are part of the principal variation (ie the main thread of the game). Assuming that the position isn't overwhelmed by tactics (where material is just going to dominate), such an approach should result in more 'human like' moves, rather than mysterious computer moves. It is this feature which is exciting, although whether it is enough to overcome brute force searchers remains to be seen.
It is worth pointing out that attempts to create a program that learns chess (rules and all) just from studying games haven't succeeded as yet. Even attempts to self learn all the weights for material evaluation (starting from 0) have also run into difficulties, as these values dominate everything else in the eval function (and without accurate numbers, engines barely get off the ground)
You can check out the paper on Giraffe here, and see for yourself how it all works, noting that Knightcap does get plenty of mentions in the paper.