I don't know how much it applies to your situation, but I've come across
the realization that education is vastly different from training,
especially when it comes to computer science.
Many, it seems, enter into a university CS degree program with the
intention that it is going to give them qualifications to get a job later
on.. and many employers expect CS degrees as a way to find qualified people
to work on their corporate applications.
All of this is really really bad.
Most people would probably be much better served by having a vocational
training school were they learn to program and deal with real-world
situations using existing technology and concepts. Learn some CS, to be
true, but mostly just concentrate on understanding existing systems and
practical application of programming in the real world situation.
I don't think it is too much about "good" vs "bad" students, its just about
what people actually want through their education.. if people are not
really interested in CS as a discipline, but are interested in programing
as a career then there should be a acceptable and employer-friendly outlet
for people like that.
Were as people that are more interested in research and mathematics and are
passionate about pushing technology and that sort of thing should still
have CS to throw themselves at.
Its like you don't need to have a degree in physics to be a excellent
mechanic or automobile engineer. You need to know some physics, chemistry,
and metalergy; but it is more about finding creative ways to apply known
concepts and practices rather then pushing the boundaries of knowledge.
Just like to be a physicist you don't need to know how to weld or
understand the proper techniques to aid in the creation of crystals in the
form of grain in the metal that will either increase the strength and
flexibility or increase stiffness at the expense of brittleness based on
the application of heat and coolness to the metal prior and after wielding
Its like the Minix vs Linux thing. Real-world software systems are very
complex. Unless you have a way to deal and work within that complexity then
your solutions are worthless to people that care about making software
people can use.