I feel it depends on what type of programs you'll be writing. If your into operating systems, network flow or data mining etc, advanced math plays a huge role. Proving that your program works is very important. In Computer Science, designing the solution to a problem is what is important. Converting it into a programming language is rather trivial if you know the language well enough.
But, since you asked, specifically, I think Discrete Math and any 400-level or higher math classes will enable you to think more logically about how you approach problems, but experience is the best teacher. However, if you are considering Computer Science as a major, then you will be forced to learn many Mathematical concepts along the way regardless. So, racking some experience doing proofs will put you into a great position.
BTW, Denis, I like programming in machine language!