In Math and Physics in high school and college, you can just study what you're supposed to study, do the problems you're supposed to do. You can mostly do that in CS too, of course, but that's not ubiquitous. In CS you're programming, and when programming you're running into bugs and devising work-arounds. Some stuff does not work like it's supposed to. Sometimes the best implementation for a purpose is a clever but not-quite-correct shortcut that's way faster. Some of my CS classes had automated code submissions testing and grading systems, and some students managed to hack the system in novel ways, and were given full points for doing so. My experience in school is that the smartest girls studied a lot more, and the smartest guys messed around a lot more. CS is programming and programming is a lot of messing around.
My dangerous 2c ;)