I studied Computer Science at NC State. Your experience will depend entirely on what you hope to get out of a CS education:

At some schools, the CS curriculum is focused on "pure" computer science. These curricula are packed full of theoretical CS and rigorous mathematical courses, and are great for people who hope to go into CS research or academia.

At other schools, the "CS" curriculum would be better called "software engineering." These curricula focus on programming and applied CS, giving more "practical" skills for people planning to proceed straight to industry.

At NC State, the undergraduate CS curriculum was a pretty good balance between both. You'll get a mix of both theoretical and applied CS, the downside being that you won't get very deep coverage of either. However, I feel that I was well-prepared to enter industry after graduation, and I've been pretty successful in my line of work.

Here's a small subset of what I studied as an undergrad at NC State:

Theoretical | Applied
-------------------------------------------------------------
Discrete mathematics | Java
Automata theory | C
Computability & complexity | x86 assembly language
Linear algebra | Software engineering

and some courses that offered a healthy mix of both:

Mix
----------------------------
Data structures & algorithms
Operating systems
Computer graphics
Artificial intelligence
Database management systems
Multimedia systems
Human-computer interaction

Of course, there are a lot more courses offered than just these, but this is a subset of the ones I took, along with how I would categorize them. Using your restricted and free electives, it's definitely possible to plan a degree that leans one way or the other: more theoretical or more applied, but the way the required courses are laid out, your foundation will always be a bit of both. There's also a "Senior Design" capstone project, where you're put into a small team (~4 students) and given a project from a local sponsor company. You'll work closely with some contacts at that company on a real-world software project. I formed lasting bonds with my team mates, and we still keep in touch to this day. Two of us were also offered full-time positions at EMC (our team's sponsor company), where I worked for about 2 years before leaving for greener pastures.

Another benefit of NC State is that it's in the NC Research Triangle area, and the Research Triangle Park is only about 10 minutes down I-40 from campus. RTP is home to a TON of tech companies, so there are plenty of opportunities for relevant employment, both for students (internships, co-ops) and for recent graduates (full-time work).

Raleigh is also a great place to live and work. Plenty to do, great job availability, low cost of living, and traffic is never too bad. The only downside is that the public transportation story isn't nearly as good as, say, D.C.'s (the bus system isn't terrible, though -- I generally found that I could get where I wanted to go in a reasonable amount of time, and there are connecting buses that will take you to nearby Durham (Duke) and Chapel Hill (UNC)).

I very much enjoyed my time at NC State, and if I could go back and choose a university again, knowing what I know now, I'd choose NC State again.

I hope this helps! Feel free to ask me questions :)