I also had to go through a lot of heavy calculus courses which were very proof-centric and built from first principles. Rarely we skipped a proof of a theorem and we were expected to be able to reproduce and understand all of them at exams. I hated it often back then. However, these days I can appreciate the rigor it has taught me and I would wish I could send some of the programmers I met to similar courses so that they would learn to think clearly and precisely and be able to spot unmet or missing assumptions.
Our teachers and the creators of the curriculum were not stupid or naive. They knew well how much of hands on calculus we would use in practice vs. algebra or linear algebra. One of their main reasons for including calculus was to teach us rigor. I know that once someone overheard two teachers talking - the calculus teacher was asking someone from a CS department what to teach the CS graduates and the reply was that he can teach us whatever he wants, he just should make sure to teach us to think. I think they were quite successful at it even if it wasn't a very pleasant experience for most.
That also reminds me of this very relevant and true comic: http://savethepenguins.net/image/237344573 ("Wtf, man. I just wanted to learn how to program video games.")