If a kid gets a 5 in AP comp-sci, the college will still make him take the intro base CS courses.
College is also set up for majors to be chosen without any understanding of those particular areas of study in high-school.
So, yes, your intro class should be for kids with no former compsci exposure, just like every other major your college offers. You then allow AP compsci students to waive some of the intro classes.
Of course, the real question is why should the kid pay money to hear this guy when, if the kid already has an interest and some knowledge of CS, learn with MIT open courseware and iTunes University?
Do you think CS professors are the best at presenting/explaining the material? I believe it depends on the professor.
Music is much more difficult than compsci. In addition to the mental, you have to hear/listen, and possess excellent muscle coordination.
So, yes, your intro class should be for kids with no former compsci exposure, just like every other major your college offers.
I think his point is that no other major starts from scratch. The standard first-year math course is calculus, which builds on algebra, geometry, and trigonometry. First-year English and history classes are very much like high school English and history classes. First year classes in most subjects actually provide a misleading degree of continuity, with second or third year classes suddenly taking a college-level turn: proving theorems, writing seminar papers, etc.
To make an analogy with math, imagine if a student's prior exposure to math was just basic arithmetic to calculate change, scale recipes, and figure out how many weeks until their birthday. Then they go to college and take an "intro" course that covers all of high school algebra, geometry, and trigonometry. They're floundering because of the pace of the class, and they look around and see that about 20% of the kids are utterly bored and itching to get to trigonometry, because they already learned algebra and geometry in their spare time in high school.
That's the situation college CS programs find themselves in. How in the world do you take someone with no prior exposure to one of the fundamental skills of the field and, in four years, turn them into someone to whom it would be appropriate to give a college degree in computer science? Programmer isn't just a neat and useful skill. It's the skill by which computer science is traditionally explored and learned -- we don't know any other way except mathematical theory -- and it's the skill to which computer science knowledge must be wedded for a computer science graduate to make themselves useful. (Not every computer science graduate needs to be a programmer, but they all need to program, unless they also have a degree in another field or plan on going to graduate school.)
>> How in the world do you take someone with no prior exposure to one of the fundamental skills of the field and, in four years, turn them into someone to whom it would be appropriate to give a college degree in computer science?
You don't, unless they have the passion, drive and natural aptitude. The author makes very apt comparison to music and expresses that there's really no way out of the conundrum in that field, but wants to find one for CS. Just like music, if you want a university-level program where anyone can come in and succeed in a limited amount of time, you have to rely on high school curriculum to provide the foundations.
The problem is perception. Given a standard high-school curriculum, it's obvious that a student won't succeed in a university-level music program without becoming specialized in high school, but it seems like students should have the foundational knowledge to succeed in a university-level computer science program. Unfortunately, it's just simply not true.
The author says this in the comments:
I don’t want to effectively require students to choose early in high school whether or not they want to study Computer Science in college. While computing skills are clearly beneficial for everybody, I hesitate to make the claim that computing courses are more worthy of limited curriculum time than other disciplines such as foreign language.
Unlike the author, I don't hesitate to make that claim at all. People often lament that students graduate high school knowing basic history, algebra, physics, biology and the like, but don't understand how a credit card works, what happens when they push the gas pedal in their car, or most importantly, simply how to think logically and critically. Shifting part of the mathematics curriculum to focus on logical thinking, regardless of whether it's presented using programming or not, would go a long way towards enabling success in fields like computer science, and would make graduating high school students more well-rounded to boot.
I like the analogy to music, but honestly, I think programming itself, divorced from knowledge of operating systems, theoretical computer science, mathematics, web design, or other complementary skills, is not on the same level of technical difficulty as music. You don't need to start as a child to become sufficiently competent to become a computing professional. You do need practice, though, and that is what is sorely lacking in the curriculum. His concern about the lack of sufficiently engaging practice problems is spot on. When all the programming assignments are about CS topics, they're trying to teach CS and get programming as a freebie, instead of teaching programming as a skill in itself.
I agree with you about teaching programming in high school and lower grades. Programming would be much more beneficial for most kids than advanced algebra, trigonometry, and calculus. Average people today need to understand their computers, their taxes, their employers' benefits policies, and other logical and algorithmic systems much more than they need to understand radio waves, flow rates in pipes, or falling objects. The standard curriculum should include some programming at the expense of sequences and series, trigonometric identities, possibly any math beyond geometry, basic algebra, and using a calculator's sine and cosine functions to compute the sides of a triangle.
(Actually, I would be hesitant to suggest such a thing because many college-bound kids need as much math as is currently offered and more. If a kid is going to take freshman calculus in college anyway, you might as well teach him some programming in high school instead of pushing all the way through a math class he's going to retake in college. On the other hand, every high school needs to offer a complete calculus course for kids who will be able to ace the Advanced Placement test and skip calculus in college. There are so many ways for educational reform to go wrong, and I have so little faith in the people who would carry it out, that sometimes I'm glad the system is unlikely to change significantly any time soon.)
College level music studies are more difficult primarily because they have to be. As the program gets easier, enrollment can tend to go up because the pool of people who both want it and can do it becomes larger. College music programs have to cut their pool size down by raising the bar or they'd be flooded. In terms of intrinsic difficulty, well, in a way they aren't that different; anybody can pick up an instrument and with effort attain basic fluency, anybody can pick up a programming language and attain a basic level of fluency.
I disagree. I have personally known physically disabled individuals who are excellent programmers yet are physically incapable of playing musical instruments.
> If a kid gets a 5 in AP comp-sci, the college will still make him take the intro base CS courses.
That's not true (at my university, anyway). You can skip the first two semesters of the CS curriculum with a 5 on the AP CS AB exam.
I personally chose not to use most of my AP credit to give myself a relatively easy first year during which I instead developed lifestyle/social skills. One of the best decisions I ever made.
College is also set up for majors to be chosen without any understanding of those particular areas of study in high-school.
So, yes, your intro class should be for kids with no former compsci exposure, just like every other major your college offers. You then allow AP compsci students to waive some of the intro classes.
Of course, the real question is why should the kid pay money to hear this guy when, if the kid already has an interest and some knowledge of CS, learn with MIT open courseware and iTunes University?
Do you think CS professors are the best at presenting/explaining the material? I believe it depends on the professor.
Music is much more difficult than compsci. In addition to the mental, you have to hear/listen, and possess excellent muscle coordination.