I think that's the point. Classes are as great as teachers make them! So find a great teacher and you'll have your best class ever.
Most interesting: Control systems, Abstract algebra, Real analysis, Complex analysis
Of course my definition of "useful" is not necessarily yours. I'm much more on the research side of things, and having a solid mathematical foundation is absolutely essential there. My advice for taking courses in college: take courses that you know will be useful, but you will not have the time to teach to yourself. If you're a true nerd you will learn all the really useful stuff on your own anyway, and you don't need university for that.
The classes I got the most out of aren't the ones I'd necessarily recommend. Whether I got a lot out of a class depended on lot on what the rest of my schedule looked like at the time (besides variables like professor and class makeup). If I was taking 12 credits, I'd tend to get a lot out of all of them. If I was taking 18 plus being a treasurer of a singing group and planning a trip to Europe, I wouldn't learn as much.
Sometimes, I'd get a lot of knowledge out of a class, but the perspective and wisdom wouldn't come until later. I learned how to write a fugue in '18th century counterpoint.' Like the Zelda one on this page:
http://www.goladus.com/music/musicpage.php
But it wasn't until I'd been out of college a few years that I figured out how to write a coherent piece that was longer than a minute or so (not counting fugues, which I could still write if I wanted to).
Here's some more: http://www.myspace.com/gadolus
As you can see I really have no idea how to promote music. That might be something I'd recommend a music major learn about.
Others, like Theory of Computation, I loved but because I didn't find any use for it in the first few years after college, I forgot a lot. I still get the basic concepts of nondeterminism and context-free grammars and such, but I'm having to basically relearn all the useful stuff.
On the other hand, unlike many people who do, you know how to make music. Serious talent. How long have you been doing it?
In college my introductory computer science classes were really boring and easy, while the introductory music classes were challenging and interesting. Sophomore year I declared a double major in Music Theory. I took composition lessons for 1 or 2 semesters, I can't remember exactly, but I didn't get much out of them. Two of the "Three Short Pieces for Piano" were written in lessons. Writing for class was really hard, because I felt like I had to please the professor, though he tried to tell me to write whatever I wanted. I agonized over every detail, which got discouraging, because usually there was no correct answer. I also had huge confidence problems because of the rigid, mathematical way I thought music should be appreciated. That is, I thought there was no way I could ever come up with anything original, and I thought original==good.
One day a few years ago, after listening to dozens of Mozart pieces dozens of times, hearing how amazing it was, and knowing how many people poo pooh'd Mozart for using predictable harmonic progressions; I said 'screw it, I'm writing a classical sonata and don't care how unoriginal it turns out to be.' I did it because that's what I liked and that's what I wanted to write. I've had a lot of fun since then, though I haven't made any money.
Tonal Harmony and Counterpoint, aka "Harmonize this melody in 4-part harmony" - where you find that there are intricate rules to music, and what you hear on the radio is the result of centuries of evolution in what's considered "acceptable" music. (Or, if you listen to punk rock, the result of breaking nearly every rule for kicks.)
Intro Geology, aka "Rocks for Jocks" (it's funny though; the English-major jocks always struggled in this class, while us one or two physics majors were like "pish, this is easy") - where you play with lots of rocks and go on lots of field trips. I found it surprisingly interesting.
Sustainable Agriculture, aka "This hippy bio professor got a grant for teaching enviro-friendly stuff" - where you learn that there is shit in the meat, and we're all gonna starve when the oil runs out.
Also really liked my philosophy courses, General Relativity, Game Theory, and perhaps Mathematical Logic (though I found that one really hard).
And if you have a chance to TA, do it. You learn a lot more by teaching than you do by being taught.
Organic Chem - 1 credit.
OS - 1.5
How many credit hours is considered a full time load at your schools?
So the CMU OS course is equivalent to four normal classes.
BUT... but I just looked up the class at CMU and it is not 12 credits. It is 4 credits. Which shakes my worldview somewhat, I thought this 12 credit was proof that the CMU CS curriculum was something special.
So either I was mislead by my friend at CMU years ago when this course came up in discussion or more likely, I misunderstood him. Feel free to downmod my post above, it would ideally settle out around 0 points for containing wrong information. Sorry for spreading untruths...
And I'll second the bit about TAing, though my experience was in physics rather than CS. Being a physics lab TA is cool...you get to play with all sorts of stuff. (Heck, taking physics labs is cool, though the lab reports are not so cool.)
But OS... if you don't know that stuff you're basically worthless.
Actually, I'd probably recommend it more for someone planning to go into finance, economics or history (!!) rather than someone going into physics or CS, unless you're going into a subfield directly related to stat mech. Most of my physics coursework has been basically useless for my computer programming; yeah, it's nifty to know your vectors and rotation matrices (particularly if you go into graphics), but I've never had to solve a volume integral or contract a tensor since dropping my physics major.
Granted, it's not a math or CS course, but nothing has better informed the way I think about problems, technical and political. It might as well be called 'History of Problems'.
The strangest part was how interconnected mathematical understanding is with the rest of society. EX: Try and run a bank without basic algebra.
Molecular Biology - the material itself was a bit dry, but taken as a whole it completely changed my understanding of life as a dynamic process.
Computer graphics, but that's not necessarily interesting/useful to everyone.
U of T has a 4th year course called "Computer Architecture" which brought together concepts from almost all the other computer courses and which I enjoyed immensely.
Ethics
Remember that cheesy line from Spiderman about great power bringing great responsibility? In the event that great intellect allows a person to attain wealth and/or power, I would sleep better at night knowing that person understood some past mistakes of the wealthy and powerful, and they had at least considered some of the collective guidance of humanity.
If the question were constrained to CS, then I would say Compilers. But that's a loaded answer, since it damn near requires a CS degree to truly appreciate compilers.
If you want to have fun and know yourself better, take a class in art or music.
English literature: It's fun to read the classics and compare them to how politicians and blogs cherry pick and bastardize quotes.
The programing classes I took I was correcting mistakes on the teachers test. I know programing.
Patterns of leadership was a class about dealing with people (read 'How to Win Friends and Influence People' for an idea of what it covered). This was a class where I learned an incredible amount.
A tie for most useful... Both courses have been far more practical than my actual technical capabilities. The first one taught me how to effectively tailor my ideas to my audience, and the second taught me how to take an idea from start to finish.
Somewhere in there is an argument for constructionist education a la Piaget et al.
I also really enjoyed my computational geometry class.
But the first poster is right: good teachers are at least if not way more important than interesting classes.
I got the most out of my Software Engineering courses - Testing, Usability, Systems, etc.
They are usually team-based, are reasonably rigorous, and have generally good professors.
(i'm not saying this to win points with PG. i actually find hacking pretty different from painting.)
more generally, stretch out into different disciplines. these days, most of the interesting stuff happens at the intersections. plus, you'll meet a lot of interesting folks whose paths would never cross with yours otherwise.
Most all of the undergraduate courses focused on analysis. I hated that! Let me design stuff already!