3 ms·
It's reasonable for us. Most people (who are not into programming) would find it ridiculous and pointless.
by hasenj 16y ago
It's reasonable for us. Most people (who are not into programming) would find it ridiculous and pointless.
- dkarl 16y agoIt's a reasonable way (the only way) to develop a skill -- even after you have a conceptual understanding of how to do something, you still have to practice a little bit at it. Practice is required first of all to clarify your understanding, but even then practice is necessary to polish your skill enough that you can use it to accomplish something. (I.e., you have to be able to execute the skill and have enough attention left over to understand something else.) So many problems in education come from the stigmatization of anything resembling practice as "rote" and "unstimulating." When you stigmatize repetition, you make it very hard to develop skills. In effect, students are expected to develop "understanding" (the fun, easy part) without developing any skills (the boring, repetitive part.) Unfortunately, working without any polished, dependable skills is awful. It's anxiety-inducing. You have a little bit of doubt about every single step, and as you complete step after step, your confidence in getting the right answer goes down and down. Having a set of solid skills gives you base of confidence, a security blanket that reassures you while you tackle new ideas.
- hasenj 16y agoI think you missed the point. Most people find first year of computer science very hard. For me it was easy, but plenty of people found it hard, and I think many people changed majors because of that. Now imagine if it was mandatory in high school. Teachers probably won't understand it much. The curriculum will probably focus on "formula"-like things (perhaps, patterns?), syntax maybe, and a whole bunch of boring details, and ignore the most important part: problem solving. Students might study (read: memorize) all kinds of functions for doing things. Grade 8: loops for sorting numbers, loops for finding min and max numbers, loops for calculating factorials. for-loop synatx in C. for-loop syntax in python. Grade 9: recursive functions for sorting (e.g. merge sort), recursive functions for calculating factorials, recursive functions for finding min/max numbers in a list. I only realized this very recently, but math has a lot in common with computer science. Its core is about problem solving. Unfortunately, that's not how it gets taught in high school. In high school, math is a set of arbitrary formulas you have to memorize and use to "solve" arbitrary equations. We were given a lot of "practice problems"; they were the most boring thing in the world. They didn't teach you anything; their only purpose is brush up your muscle memory so that when you see a problem of the form "A B C" you know which formula to use and how to use it.
- dkarl 16y agoProblem solving relies on a lot of muscle memory. Imagine doing a calculus problem when you have to painstakingly work your way through every algebraic operation: x^2 + 3x - 3x^2 + 3x + 5 x^2 - 3x^2 + 3x + 3x + 5 1x^2 - 3x^2 + 3x + 3x + 5 (1 - 3)x^2 + 3x + 3x + 5 -2x^2 + 3x + 3x + 5 -2x^2 + (3 + 3)x + 5 -2x^2 + 6x + 5 Okay, what problem was I solving again? What does this have to do with what I was learning? What was I going to do next? When you have to concentrate on grouping and reducing polynomials, it's next to impossible to solve any kind of interesting calculus problem, much less learn anything, because you don't have any time to think about calculus. It's boring to do math that way, not to mention anxiety-inducing, because you spend all your time worrying about getting the old stuff right. But that's the way teachers are supposed to teach math: once the kids can work their way through one kind of problem somewhat reliably, they are supposed to move on before it becomes routine. That leads to a pretty sorry state of affairs -- the kids have to think hard about everything they do. You shouldn't think hard about algebra while you're doing calculus. When you can do the algebra quickly using your muscle memory: x^2 + 3x - 3x^2 + 3x + 5 -2x^2 + 6x + 5 Then you get to spend your time actually thinking about calculus, the stuff you're supposed to be learning and exploring. The thing about problem solving is that it's just one end on a continuum from exploration to mastery. When you say "the core of math is problem solving" you're basically saying all the fun and glory is in exploration. It's true! I don't disagree at all. All I'm saying is that you can't have exploration without mastery, because you explore new territory using the tools you've previously mastered. Trying to learn calculus when you haven't mastered algebra, when algebra isn't part of your "muscle memory," is backwards and frustrating. My favorite example of this is freshman college physics. Different people have vastly different experiences of freshman physics. For kids who are pretty good at calculus, freshman physics is amazing. It's a year-long parade of learning cool, powerful ideas and using them to solve challenging problems. For kids who haven't mastered calculus, freshman physics is a horrific calculus death march. They spend ten minutes setting up some equations (the only part that relates to the fascinating new stuff they learned in class) and then spend an hour trying to make the answers come out right. They spend ten hours doing the weekly problem set and wonder why it's so boring and why they're having such a hard time learning physics. It's because in that ten hours they spent one hour thinking about physics and nine hours struggling with calculus! When students spend ten hours working and only get one hour's worth of exposure to the course material, it's no wonder they struggle in the class. The kids who enjoy physics are the ones who spend ten minutes setting up the equations and then five minutes solving them. Those kids get to spend most of their time thinking about the fun stuff: interesting concepts and problems. The difference is that the first group of kids "sees a problem of the form 'A B C'" and just solves it. The second group of kids, when solving the calculus equations, has to think through the concepts and "problem solve." That would be great if they were learning calculus, but since they're trying to learn physics, it's an interruption that detracts from their learning. A skill has to feel routine, even boring, before it can serve as the basis of learning another skill. Shaky fundamental skills are like the intrusive noises in "Harrison Bergeron" -- they make it very hard to maintain a coherent train of thought about anything else. So you can't problem-solve and have fun in freshman physics until calculus is routine. How do calculus computations become routine if, in calculus class, the teacher is supposed to stop drilling you as soon as you figure out how to think your way through each problem? If the goal is for the computations to become routine, then boring practice problems are exactly what you need. (I suspect in your case, the problem was that you needed less practice than the other kids, and you had to keep practicing long past the point where it really would have been appropriate to move on.) You might say that if some kids are never going to go beyond calculus and will never do any hard-core science coursework in college, then it's appropriate to just teach them the concepts of calculus and not worry about their ability to solve problems. Well, that's fine. But they will have a hell of a time learning the concepts of calculus if algebra and trigonometry monopolize their attention. The only class where it is appropriate to shoot for "understanding" without skills is the last math class a student will ever take.
- randrews 16y agoYou're right, and I think that's why it's a very optimistic question to expect. The current math textbooks have questions that are ridiculous and pointless for everyone, whether they're interested in math or not. Why expect future CS textbooks to be any better?