As far as I'm aware, any university level CS (now dubbed computer studies and not science) has a required module where you learn processor logic down to the flip-flops, you make machine code in an emulator and you make your own "OS" which is really just a string processor that can interleave the strings as if they were tasks.
To get through CS you need to at least see this stuff and achieve a 60 or higher. Sure, the language they teach you abstract data types has changed over the years. When I started it was Pascal in the intro course and standard C in the abstract data type courses. Then C++ in the object oriented courses until midway through my studies they switched over to Java for things like the machine learning and simulations courses. Generally you could use whichever languages you wanted for your submitted work, however.
That said, I was always surprised by the skill-level of people who were able to temporarily remember the material for said courses but who could not grok it for the life of them. Usually, I hope, these were people from other majors who wandered into a CS course to fulfil a requirement. I shudder to think that some of them intended this as a career.