I'll second Antheus' "solve this" mentality.
Try out anything in
TopCoder's algorithm competition arena.
ACM hosted programming competitions at my school. They have an online database of their problems too(I can't seem to access it or i'd link it).
There are a LOT of trivial sounding problems out there that you can solve in very slow ways. I remember when I first started those competitions, getting really confused by some of them because I didn't know about "dynamic programming" memorization schemes for processing the questions. So, the program I wrote would give the right answers, but way too slow.
Quote:
tell me if they ever used these stuff like FA explicitly? And I don't mean, oh these game states like play,pause, are similar to state machines. I mean use the actual Finite Automoton, and set theory and things alike somehow? I am betting that most don't.
Ever tried to make a parser for a scripting language or configuration file? Only the most trivial cases can be covered unless you know enough about FA to write a proper grammer and parser. Sure, there are tools to help with all that, but you need to know the theory to use the tools. Without those theories, you are limited to only the most simplistic formats. Even in the case of simplistic formats, many people still screw them up because they don't parse strings, capitalization or white space properly. Had they just went and used parser creation tools, they could have had a loader that handled all those cases seamlessly.
Set theory stuff comes up all the time in subtle ways. Collision stuff would run into it alot. You have X collision flags, and Y objects. Can you partition off those Y objects with those X flags into Z unique sets? Or in the more programmery sense, I have 32bit flags, and 42 object types, how can I partition them with those 32 flags so that I can still figure out what I hit IFF it matters that I hit something specific. How can I setup those flags so I can find all monsters who aren't flying? Surfaces that are walkable, but not made of metal? Players without no-draw or ignore, who are allowed to collide with ice damage, and are not on my team? Sure, that all only uses a small subset of set theory as applied to 32 Boolean value flag sets, but it is still set theory. We've actually asked boolean flag questions taken directly from our collision code on our programming tests at work. A large percentage of the applicants failed that question.