For example, there is an old problem involving a wolf, goat, and some cabbage:
- A farmer needs to bring a wolf, a goat, and a cabbage across the river.
- The boat is tiny and can only carry one passenger at a time.
- If he leaves the wolf and the goat alone together, the wolf will eat the goat.
- If he leaves the goat and the cabbage alone together, the goat will eat the cabbage.
- How can he bring all three safely across the river?
Anyway, one day, a student of mine named Chris showed me a similar problem, except about 10 times harder. I always loved this one. Basically, you have a bunch of people to bring across a river, and a bunch of rules related to it. It's not easy, even for me, even having solved it (I just went back to it and it took me a few minutes, and this is after having done it before). If you take computer programming classes, you've learned that it is important to really plan before you work - and that should be the point, you're not taking programming classes just to learn a programming language, you are also doing it to expand your mind and learn how to problem solve.
My favorite logic problem can be found here. It's actually in Japanese, but the site below explains the rules in English and lets you click on the puzzle after that.