One of the things I hear from university computer science faculty on a regular basis is that they have trouble retaining students. What happens is that students sign up to be computer science majors but after a course or two they give up. Computer science isn’t what they expected it to be. Professors hear things like “I didn’t know there would be programming involved.” Seriously! Or it is harder than they expected. Some students expect it to be all fun and games. But basically students didn’t understand what they were signing up for. And why would they if they never had any real computer science in school before university?
This is sad and it is a real waste. It is a waste of time and energy on the professor’s part. It is a real waste of time and energy and money on a student’s part. Students who have had computer science in high school are much more likely to finish a computer science major than students without HS CS in their background. It’s not just that they know more computer science. In fact often students, even AP CS students, aren’t ready to skip courses in college. Oh some may skip a course or two but many find it better to still start with the first course for majors. The big difference is that they know what they are getting into.
This is not universal by any means. Some people do take their first computer course in college and fall in love with the subject. I did. And some who took a CS course in HS find out that the university level is not for them. This happens in all majors from time to time. But the odds are improved the more a student knows what they have gotten themselves into.
Now some people say “computer science is hard and that scares some away.” If hard work were enough to scare people away how do we wind up with so many students in pre-med that many American students have to go to medical school outside the US? A motivated student is not afraid of hard work but challenged by it.
If we had more high school CS programs a) more students would get a chance to be exposed to the subject in a somewhat less stressful environment at a lower cost. And b) more students would get to university knowing what they are getting into. We might not have more students going into the major (though we might) but we’d have a lot better chance of retaining those students. Now that would be a good thing.