When I return to university in December (I'm on an internship now), I'll be taking a course in Computer Science theory. However, I'm not a very theoretical person, and abstract concepts have been difficult.
This course will cover topics such as regular, context-free and computable (recursive) languages with finite state machines, pushdown automata and turing machines along with the basic concepts of computability theory and NP-theory.
I have downloaded JFlap (an automata simulator application) and read Wikipedia, but what other resources cover topics such as this? I'm thinking it might also be a good idea to brush up on my discrete mathematics, so I'll be using that book, but discrete mathematics resources would also be appreciated.