In all honesty, I had experience going into my computer science program to the extent that a couple of the graduate student instructors would check with me to make sure they were teaching the language right. There were some mathematical things I learned that I find remotely helpful in day-to-day stuff, but unless you intend to end up specialize in a particular intense programming direction you really won't get much. Even beyond that, in order to specialize a post graduate degree with an emphasis in that discipline is often the preferred route.
I think the most beneficial things I got from my computer science degree were some advanced instruction in Boolean Algebra, analysis of algorithms and automata theory. These are all things you will pick up on the job, but I do find it handy in some of the more complex situations to be able to identify a particular problem mathematically or through a proper state diagram. Algorithm analysis was also handy because we learned the pros and cons of various sorting, searching and filtering methods.
There were some data structures classes that I found useful, but in all reality you would absolutely pick up all of this information on the job from a supervisor, peer or mentor. In most cases, the computer science degree is just an expensive piece of paper that gets you through the HR door. As for becoming a better programmer, that is all experience related. Everything changes so rapidly that the degree itself is fairly superfluous.