Computer science is taught the wrong way at universities. Problem solving isn’t the best way to learn how to solve problems; Programming isn’t the best way to learn computer science. Computers are an instrument of computer science, but not the field, just as trumbones are an instrument of music, but not music. I reckon universities ought to offer computation courses, and programming courses.
The general rule of teaching is to progress from specific things to more general things. (As opposed to explaining the general things first, when the students are unable to imagine a specific example. Or when the students only know one specific example, so they are unable to understand what is the benefit of speaking abstractly.)
I suspect the issue with programming is related. “Write a program that solves problem X” is too abstract for a beginner, who hasn’t seen yet enough specific examples of “a program that solves a problem”.
The correct way is to start with giving examples: “program P1 solves the problem X1 (now let’s look how exactly it accomplishes the task)”, “program P2 solves the problem X2″, “program P3 solves the problem X3”, etc. Only after practicing this is the proper time to ask “what would be a program that solves a problem X”.
Whether to start from the specific or the general probably depends on the student—I have a general memory (sorry for lack of details) from someone who couldn’t learn a programming thing until they had a explanation of what it was supposed to do.
I’m not sure if this is the same thing, but I couldn’t do word problems until realized that I was supposed to translate the words into equations and then crank it through mechanically. I thought I was supposed to read the problem and then perceive the answer directly. (It’s quite possible they told me to do translation, but I wasn’t paying attention.)
I think the article was making a stronger statement: programming isn’t the best way to learn programming (at least at first). Sounds bonkers to me, but I don’t trust my pedagogic intuitions.
Computer science is taught the wrong way at universities. Problem solving isn’t the best way to learn how to solve problems; Programming isn’t the best way to learn computer science. Computers are an instrument of computer science, but not the field, just as trumbones are an instrument of music, but not music. I reckon universities ought to offer computation courses, and programming courses.
The general rule of teaching is to progress from specific things to more general things. (As opposed to explaining the general things first, when the students are unable to imagine a specific example. Or when the students only know one specific example, so they are unable to understand what is the benefit of speaking abstractly.)
I suspect the issue with programming is related. “Write a program that solves problem X” is too abstract for a beginner, who hasn’t seen yet enough specific examples of “a program that solves a problem”.
The correct way is to start with giving examples: “program P1 solves the problem X1 (now let’s look how exactly it accomplishes the task)”, “program P2 solves the problem X2″, “program P3 solves the problem X3”, etc. Only after practicing this is the proper time to ask “what would be a program that solves a problem X”.
Whether to start from the specific or the general probably depends on the student—I have a general memory (sorry for lack of details) from someone who couldn’t learn a programming thing until they had a explanation of what it was supposed to do.
I’m not sure if this is the same thing, but I couldn’t do word problems until realized that I was supposed to translate the words into equations and then crank it through mechanically. I thought I was supposed to read the problem and then perceive the answer directly. (It’s quite possible they told me to do translation, but I wasn’t paying attention.)
I think the article was making a stronger statement: programming isn’t the best way to learn programming (at least at first). Sounds bonkers to me, but I don’t trust my pedagogic intuitions.
I think most people are in it to learn programming though, if we redefine comp sci like this then it sort of changes what it means.