Looking back at my CS University degree, I think the most valuable courses I had were those in computer structures (ie. what's an IRQ, DMA etc.), programming language design, CPU design, realtime systems, mathematical logic and some other courses. I did do an OO course and it was immediately clear that OO is just a thin layer on an existing language design, so dropping that and teaching the underlying structures would be a good thing (as universities should teach about abstract concepts, if you want hands on tutorials go to some college).
As to dropping math: it depends, there's good math (coding theorie to explain checkums and chiphers for example) and non-appropriate math (differential equations, while useful, are not really needed to explain concepts related to CS). On the other hand, giving more abstract concepts to think about is not bad perse, but should be added if we have nothing useful to say. So dropping OO and replacing that with, say, differential equations, would make sense imho.