ACM is a university student's world programming contest that is held on every year. This programming contest is about logic. We will be given logical problems that has to be solved by making programs. Programs that is accepted has to be written in C, C++ (not visual version, but dos version), Pascal or Java.This site contains problems that needs to be solved.
The official site about ACM is here : http://acm.uva.es and u can see the collection of the problems here : http://acm.uva.es/problemset. Problems that has been put on contests was collected and put on a site for common people to learn from and try to solve it.
You can even try to submit your own solving programs to this site to be compiled and tested and you can see the results in minutes (sometimes seconds). It's a good place to train your logic. And like I always said, logic is the soul of every programmer. Programmer without logic is like a swimming pool without water.