upvote
IMHO, I think it's good to have some exposure to low-level stuff. There's a good amount of work you can't do without understanding the low-level stuff, but there's more work you can't do well without having at least an idea of the low-level stuff.

Start the kids off with high level stuff, but make them do some embedded systems on their way through. At least for an engineering degree. Also, do a bit of lower level communications somewhere in there; expose them to tcpdump/ wireshark, but they need not develop expertise.

reply
I think it is important to learn how to implement it because it gives the student an opportunity to learn precisely because it's been done countless times and debated over to death. There are many analyses and if one doesn't click, maybe another one will. A student can learn how to analyze the algorithms and try out different implementations to assess differences in performance.

Of course, if a student just breezes through it then I would agree. That would make no sense.

reply