
There are many distinct pleasures associated with computer programming. Craftsmanship has its quiet rewards, the satisfaction that comes from building a useful object and making it work. Excitement arrives with the flash of insight that cracks a previously intractable problem. The spiritual quest for elegance can turn the hacker into an artist. There are pleasures in parsimony, in squeezing the last drop of performance out of clever algorithms and tight coding. The games, puzzles, and challenges of problems from international programming competitions are a great way to experience these pleasures while improving your algorithmic and coding skills. This book contains over 100 problems that have appeared in previous programming contests, along with discussions of the theory and ideas necessary to attack them. Instant onlinegrading for all of these problems is available from two WWW robot judging sites. Combining this book with a judge gives an exciting new way to challenge and improve your programming skills. This book can be used for self-study, for teaching innovative courses in algorithms and programming, and in training for international competition. The problems in this book have been selected from over 1,000 programming problems at the Universidad de Valladolid online judge. The judge has ruled on well over one million submissions from 27,000 registered users around the world to date.
Skiena's books and instruction are a delight, and our team went on to ACM ICPC Finals in Sweden.
I can highly recommend the course and the book it is based on. Note that the links to online judges appear to be broken. Use [1] and [2] for your practice.
Wondering now if it was just a misconfiguration on their part, and did I do something illegal by downloading.
Btw, I got "All of Statistics" and "Programming Challenges" by Skiena. Both were HN recommendations (thanks HN!)
[0]http://www.amazon.com/exec/obidos/ASIN/0387001638/ref=nosim/...
Each challenge takes the form of a word problem. The solution can be coded in a few different languages and uploaded to the website.
The site imposes time limits when running the solution. When I've found that my solution works but is too slow, it has encouraged me to look for different data structures or algorithms.
I can't recommend it enough.
1. Programming Pearls by Jon Benley. 2. Programming Challenges by Steven Skiena. 3. Algorithmic puzzles by Levitin.
The first two are mostly programming focus. I have not read the 3rd book, but I have a good idea what it is about (based on other books by Levitin); it should be good.