In my educational career (which involved a lot of wandering between schools), I found that *every single school* forces you to re-take cs101, even if you already know the language, even if you've already (literally) take 4 other cs101 courses. So your son should be aware that taking a programming course won't get him into higher level courses.
Of course, programming is a whole lot of fun, so if he wants to take a course for it's entertainment value, he should go for it. Check your local community college - I've had great luck with community college courses (though I've never tried programming courses at one, more like networking and IT courses). Don't even think about a vocational school. If possible, try to find one that teaches C/C++, since most computer science courses in college are in Java, which isn't that useful of a language. Avoid C# courses, since C# teaches poor programming habits.
Lastly, and slightly off topic, if your son wants to avoid a college career of nomadically wandering between schools, then make sure he realizes that the main objective of school is to learn things, including things that aren't as much fun to learn (like African History or Music Theory).