Why are most CS programs so bad at teaching programming as a skill in itself?
All I am saying is that majority of the undergrad population will be employed as a coder somewhere directly or indirectly. Very few people will go to grad school. Then why do we just touch upon programming in most schools? There are schools where a typical undergrad Algorithms class has no coding assignments. Ofcourse there are schools where there are courses with extensive programming requirements. I am not talking about those. Those are exceptions.
Just as an analogy, can a person majoring in architecture not do drawing or designing? Even they have courses that teach principles. Then why are CS programs so practicality averse? Why not accept that programming is a good and powerful tool and like any other tool, the mastery of it can be taught (through guided practice and not only lone practice). Lone dedicated practice is important. But someone who has enrolled in college can expect guided practice from their program. Don't say, that it is the job of companies where they intern to teach them to get better at programming? What legal or moral obligation do they have to perform that as a duty?
Is it because most academicians are bad programmers (it may be a fact, nothing wrong in that, don't get offended, I'm just asking)? Or are there other reasons.
There will be people who will point out the exceptions to my topic. I am very open to hear about those experiences too. Maybe we will get to know about some great teachers, books, courses, etc.