I upvote Discrete math. Computer science is abstraction. learning to think like a Mathematician is very helpful.
I also wanted to add to what S.Lott said about languages. Learning a bunch of TYPES of languages is important too. Not just compiled vs scripting. But functional (ML, Lisp, Haskell) logical (Prolog) object oriented (C++, Java, Smalltalk) imperative (C, Pascal, FORTRAN even).
The more programming paradigms you know, the easier it is to pick up new languages when the hot new language comes along!