> If there's value in understand how a program actually executes on a computer, why not teach that at the same time as "loops and functions"?
Because that's doubling the amount you have to learn in early CS courses. Most students already struggle with wrapping their heads around basic programming, algorithms, and data structures. Adding the challenges of pointers, memory allocation, etc. into the mix can only drive up dropout rates.
I don't think anybody should graduate with a CS degree if they don't know C, but I also don't see any value in forcing them to learn it first.
Because that's doubling the amount you have to learn in early CS courses. Most students already struggle with wrapping their heads around basic programming, algorithms, and data structures. Adding the challenges of pointers, memory allocation, etc. into the mix can only drive up dropout rates.
I don't think anybody should graduate with a CS degree if they don't know C, but I also don't see any value in forcing them to learn it first.