What can I do to supplement my theoretical undergraduate CS curriculum so that I can increase my value in industry & academia? As most well-known universities are, my university also has a theoretical-based CS curriculum where the classes either teach straight-up theory, or teach you how to implement systems rather how to use them effectively.

I originally came into CS hoping for knowledge about how the world works (in a practical sense) so that I'd be able to see opportunities &amp; advantages in every corner (if you know what I mean). So I was hoping that I could streamline what I'm learning in my courses to optimize it toward this goal.

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.
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.