4 ms·
The problem is that the majority of CS is taught as a pure subject with a smattering of applied theory. Curriculum wise UIUC actually does an excellent job of
by tsally 16y ago
The problem is that the majority of CS is taught as a pure subject with a smattering of applied theory.
Curriculum wise UIUC actually does an excellent job of addressing this issue. I imagine other schools are similar. We basically have our three core theoretical courses and everything else involves programming. Every course that isn't a theory course involves several significant programming assignments. For example, in our networking course the final programming assignment (in C) is to implement TCP over UDP. We have a seperate course called Programming Studio that is required. The entire course just focuses on learning programming well. And students can opt to do a large software engineering project instead of a thesis their senior year (the vast majority do software engineering, not a thesis).
I think all these measures help, but despite the heavy emphasis on programming, a lot of graduates are still horrible programmers. I think the root cause is that we are still learning how to teach programming well; we've had a much larger head start on learning to teach mathematics.