[racket] "The Disadvantages of High School Programming"
It's mainly a practical issue. Public high schools know that the vast
majority (including some in "advanced" classes) of students won't end
up at major research Universities. They also typically don't have
enough funding to offer multiple, say, computer science courses (my
high school didn't have any programming courses). Many community
college CS departments have explicitly vocational purposes due to the
nature of demand and available funding. Hence, the main goal of these
programs is to teach students basic familiarity with programming
languages viewed as tools. Nothing's particularly wrong with this, but
it sacrifices theory and design technique for concreteness and instant
practicality. Likewise, many people learn how to compute derivatives
and integrals in high school with no (or very little) conceptual
understanding and end up at a disadvantage in freshman calculus.
Most "good" CS courses (like some "Scheme-based" courses) require that
students understand program design conceptually and put less emphasis
on the syntax, libraries, or other features of any particular
language. Students with high school experience expect that programming
isn't intellectually challenging, so the courses fail to meet
students' expectations. It's similar to why some students freak out in
freshman calculus or physics.
---Karl