Haven't gotten to that point yet, but I can definitely attest to the significance of good materials and enthusiastic teaching. Because I started out as a engineering major, I had taken the entire Calc sequence up through Diff. Eq's, but I ended up having to take Prob/Stats and Discrete when I Switched to CS. I was sick of taking math classes at that time, but my Discrete prof was awesome and motivated me to see how far I could go with it. I went into fall semester never wanting to take another math class again; now I'm taking more so I can get a minor in it. I'll be taking combinatorics in the fall and topology(?) the following spring to close it out.