Most of these (except maybe OS specifics) were taught in my CS degree two decades ago. I'd be surprised to see the curriculum change drastically since then, as these are pretty foundational topics. That said, different universities have different approaches, so perhaps worth it to keep looking.
That said, the order of courses wasn't "from first principles". We shared with programming foundations (via SICP), then data structures, and only then machine structures.