"Teach students the practice of coming up with three independent design schemes and developing each to the point that the merits and flaws of its underlying design concept is evident. Maybe one is worth developing."
That seems like a good idea but then you would need software designers and programmers because what is good for one is not good for the other. We're no were near this becoming a reality.
The idea of developing multiple independent schemes comes from my background as an architect. I mention it on the off chance that it won't the discipline of software development as long to incorporate it as the 4500 years since Imhotep.
I'm optimistic because functional programming is already seen as an often viable alternative to bashing on an array - garbage collection is a useful abstraction outside the computer too.