When we teach students we have to balance employability, pedagogical utility, interest, and learning curve.
The majority of students won’t need to know C to be employable. Teaching an Algos course in JS helps web dev. In Python helps data science. Java is still pretty popular for enterprise.
The majority of students will find it quite difficult compared to most languages they use.
C does not reflect a truly low level machine. You might be able to teach them the same thing with an assembly language.
The kids who want to know C will teach themselves. And they will be taught some in operating systems.
I think it's best to teach in a high-level, multi-paradigm language that isn't one of the popular languages. It resets the playing field, provides a nice language to have in their tool belt, and still allows easy transition to other languages.
I don't know C for what it's worth, but learned a different low-level language and found the experience to be enlightening, even after programming most of my life.
The majority of students won’t need to know C to be employable. Teaching an Algos course in JS helps web dev. In Python helps data science. Java is still pretty popular for enterprise.
The majority of students will find it quite difficult compared to most languages they use.
C does not reflect a truly low level machine. You might be able to teach them the same thing with an assembly language.
The kids who want to know C will teach themselves. And they will be taught some in operating systems.