"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.