What can I do to supplement my theoretical undergraduate CS curriculum so that I can increase my value in industry & academia?
I need some suggestions on what skills or knowledge I should accumulate before I graduate and apply for graduate school, or get a job in industry (hopefully more than just programming). Basically, I'm looking for a good direction.

What are you really passionate about?

Among the things that you're really passionate about, what are you really good at?

Do that.

Talk to everyone you can who does that.  Figure out who does that well and who just spouts shiny nonsense about doing that.  Ask the good ones how they got good at doing that.  Do what they do.  Most of what they do won't work for you, but until you try and fail yourself, you won't know what works and what doesn't.  And you will fail; brush it off, get back up, and keep doing that.  Don't avoid the uncomfortable, frustrating,  boring, but necessary stuff you have to do to learn to do that well and to keep doing that.

Oh, and as long as you're in college, you might as well take some classes.