A lot of the speed difference comes from having spent one's time learning the basics. After you've spent 5 hours debugging a mis-placed semi-colon, you tend to remember that kind of mistake and avoid it in the future.
But if the idea is to prevent wasted time while learning, there's a simple solution: have the students do pair-programming, preferably with someone who's already learned the basics. Or at least let them all do it in a lab, and have the prof walk around to help out students who are stuck. Not for their entire college career, but perhaps for CS 101.
Generally speaking I'm not a fan of pair-programming, but this seems like a good application for it.
But if the idea is to prevent wasted time while learning, there's a simple solution: have the students do pair-programming, preferably with someone who's already learned the basics. Or at least let them all do it in a lab, and have the prof walk around to help out students who are stuck. Not for their entire college career, but perhaps for CS 101.
Generally speaking I'm not a fan of pair-programming, but this seems like a good application for it.