> Every time there was an opportunity to learn something cool ... it was glanced over as 'technical details'.
That's interesting. The most common complaint in my program from students was that we weren't actually learning how to program. Actually learning how to use a language was considered (for the most part) a "technical detail", and the course was very heavy on algorithm analysis, theory of computation, math, how operating systems function on a theory level, writing a keyboard interrupt handler for a small embedded OS to support backspace (^H) and erase to beginning of line (^U), using threads with locks, etc.
> Computer science is just not very hard, while physics, math, and engineering is.
I think that depends quite a bit on the school you go to. I think the CS program at my school was quite hard compared to the math program. My school was by no means top-tier, and I was very self conscious of that for a while. Then I met a good friend that had a degree from Berkeley's CS program, and over the years I've come to the conclusion that the main difference between his CS program and the one I went through was the quality of the teachers, and I think it was actually a fairly small difference. Much more important seemed to be what you wanted out of the program, and what piqued your interested and caused you to follow it deeper (and good teachers could help quite a bit at this point, as they might have deeper knowledge of specific subjects that could help you).
My point is that I do not believe that CS is necessarily much easier than those programs from what variable experience I have with them, but CS is fairly wide in what it touches, so unless you decide to dive in deeper on a subject, you are likely going to be getting theory plus a survey of what's available. That said, if your school focused more on that actual art of programming than the theory, than might lead to different (but not necessarily worse) outcomes. People go to college for different reasons, and a good many in my class that were complaining about not getting much experience actually programming were looking for college to train them for a programming position immediately after college. That wasn't necessarily what I was there for, but that doesn't mean that a college putting a bit more of that in their program is doing the wrong thing, they're just responding to market realities (i.e. what their students want).
> mathematical theory behind cryptography
In our algorithm analysis class, we had to write a paper on some known algorithm examining its function and complexity. Being security conscious and having an interest in cryptography, I chose Diffie-Hellman key exchange. A lot of the benefit of college is making your own opportunities.