Of course, I go to a university that seems very biased towards practical engineering sorts of topics over theory, so your experience may vary.
Except for basic stuff like set theory and Boolean logic, math was for the required math classes.
I didn't get the background really necessary to really understand the type-theory parts of this notation until I took a graduate course in programming language theory.
Personally, I loved studying CS (my degree was in logic so I straddled the worlds of Math and CS). It's a topic I find infinitely interesting.
Having siad that, Engineering is also very interesting. All the CS theory in the world isn't going to save you when you're trying to complete a large system full of lots of moving parts - many of whom are developers :)
At least it was so when I graduated many many moons ago.