@jmw150 i'd be in favour of teaching the low level stuff rather more than less. look at the state of how programming is done today in reality. it's bad abstractions stacked upon each other, the usual fix is to throw more hardware onto it.
secondly, while there are valid applications of neural nets, you end up with a statistic black box. this isn't desireable for the majority of things where you'd rather have a proveable solution, which only a classic algorithm can give you (be it parallel or not).
imho, parallel algorithms is topic which is really interesting but shadowed by "throw a neural net into it!". neural nets are just evolutionary algorithms parallelized, it's kind of boring in a sense.