This is why I feel the recentish (last 10-15 years) shift in decoupling CS curricula from EE and CE fundamentals in the US is doing a massive disservice to newer students entering the industry.
DSP, Control Engineering, Circuit Design, understanding pipelining and caching, and other fundamentals are important for people to understand higher levels of the abstraction layers (eg. much of deep learning is built on top of Optimization Theory principles which are introduced in a DSP class).
The value of Computer Science isn't the ability to whiteboard a Leetcode hard question or glue together PyTorch commands - it's the ability to reason across multiple abstraction layers.
And newer grads are significantly deskilled due to these curriculum changes. If I as a VC know more about Nagle's Algorithm (hi Animats!) than some of the potential technical founders for network security or MLOps companies, we are in trouble.
I graduated in 2020 and I took a circuit design class and was taught Nagles algorithm. I guess I could have learned more but I thought the degree was packed enough with enough when you consider all the different parts of it, from the math to systems programming to ML stuff.
I came into a CS and math background without CE or EE, and took two dedicated optimization courses (one happened to be in a EE department, but had no EE prereqs), as well as the optimization introduced in machine learning classes. To be honest a lot of the older school optimization is barely even useful, second-order methods are a bit passe for large scale ML, largely because they don't work, not because people aren't aware (Adam and Muon can be seen as approximations to second-order methods, though, so it is useful to be aware of that structure).
Isn't Nagle usually introduced in a networking class typically taken by CS (non-CE/EE) undergrads?
Just because EEs are exposed to some mathematical concepts during their training doesn't mean that non-EEs are not exposed through a different path.