4 ms·
I think both you and the grandparent are making a mistake. He assumes children dislike math. You assume children will like karel. I think the truth is that chil
by Confusion 14y ago
I think both you and the grandparent are making a mistake. He assumes children dislike math. You assume children will like karel. I think the truth is that children have different interests and that you can only bring them to programming by latching on to those interests. Many children like math. Many other children will not like karel.
The result: to engage as many children as possible, you need several introductory tracks: one that uses math, one that uses puzzle solving, one that uses drawing, one for another common interest, etc. Also be aware of the way interests change with age.
Teaching is hard and almost every approach invented seems to rely on yet another silver bullet.
- pflats 14y agoIt's dated, slow, ugly, and poorly-supported, but in my experience, Alice is the easiest introduction and call to action for a 7-10th grade proto-programmer. You create 3d animations using an OO syntax. Like Karel, you build up from basic methods, but you get to animate a scene, rather than have a robot/dog pick up and drop stuff. My students have really enjoyed it, and it let me get to deeper concepts far faster than other instruction. edit: http://www.alice.org http://www.alice.org and it looks like development has actually woken up. The blog is active and there's a new version out. Big improvement over last year when I went there.
- jkeesh 14y agohaha yes, you make a good point. I do think that including several ways to try to connect with beginners is important, and that is what we hope to do. I really like the logo the turtle approach as well. I think my main concern with the previous comment is that the dominant method for introducing programming is too syntax-heavy, math-heavy, starting with a language with a lot of overhead for beginners, so ours is an alternative. Not everyone will like our intro, as you note. But I think it has a very different feel than the way many students are introduced to programming in school (see AP Java class).
- MikeAmelung 14y agoI think this is a good point, but I'll take it a step further. The kid that likes drawing doesn't have to be a programmer, so stop trying to teach it to him and let him draw without the constraints that programming brings. We don't all have to be the same.
- cpressey 14y agoMeanwhile, the kid who likes programming will probably be drawn to it naturally, as well. I know I was, a long time ago. I can appreciate wanting to lower the barrier to entry for such kids, but I honestly don't think it's excessively high to start with.
- hamoid 14y agoFriends of my age who were drawn into programming did so probably because when you turned on the (8bit) computer it was waiting for you to write a program. It was the default action. How would an iPad user be naturally drawn into coding? If you don't have friends around you who do it and serve as an example (or a classroom where you are presented with that possibility), I think few would come up with the idea of writing programs themselves.
- jkeesh 14y agoThe point you make here (and one made by many others) is a straw man/reductio ad absurdum argument. People who advocate that everyone should learn to code (like myself) to not advocate the absurd conclusions that are used by others to refute this standpoint. I do think people should learn to code. This does not mean I think: 1. Everyone should be a professional programmer. 2. "Everyone should be the same" You can make similar arguments to a person who says "everyone should learn to read," but then you misunderstand the spirit of the discussion.
- MikeAmelung 14y agoI'm not interested in logical fallacies. I don't think this is a particularly logical subject. When you say "people" should learn to code, do you mean everyone? I posit, completely illogically, that some people will contribute greater good to society without ever having their brain trained to solve a problem via algorithm. Even without contributing any good, maybe they'll just be happy. Of course I'm not against making things more interesting for those who do have an aptitude or drive for it, so please don't misunderstand that.
- mich41 14y agoNobody assumes that children inherently dislike maths. They can't dislike something they don't even know. The point is that children start to dislike maths once they go to school. And they do - all kids in my class either already knew basic maths before going to school or were completely bored by it. The same will happen with programming once it will be "taught" in schools as well. Think of it this way - if you want people equally competent as you to teach your child in school, you have to pay them 1/n of your salary, where n is the number of students in class. If you pay them less, they will find a better paid job elsewhere like you did. And you don't want n to be large since it's hard to pay attention to more that a dozen of kids at a time. Hence, school must either consume 5% to 10% of your salary per child, or be ran by people less competent than you. It seems that usually the latter is the case.
- eru 14y agoI appreciate your math, but it is slightly flawed. You can get a bigger n, not by increasing class sizes alone, but also by letting teachers teach for longer per day than children learn. I.e. use you math per hour taught, not for salary. What this means in practice is, use teachers for higher value added work, but let computers (or somebody less qualified) oversee other parts of the learning process. What seems to work fairly well (I remember a study about it), is to let students read material at home, but solve problems in class. That's the opposite of the traditional getting lectured-at in class / exercises as homework approach. Khan academy is another vector for leveraging teachers. It does not replace a good teacher, but it can augment a teacher.
- mich41 14y agoThe problem is that if you tell schools to implement "computer supervised" coding learning, they will tell the students to write a factorial implementation and then they'll test it for bit-perfect match with some "perfect" solution. This way they will verify correctness, good indentation, meaningful naming of variables and so on. Because somebody in the school/government heard that this is what professionals care about. IMO launching a media campaign which pushes schools to "teach" every child to program, without any plan prepared by professional teachers and developers and then permanent, ongoing support from such professionals, is asking for disaster. And the grandgrand...parent provided an example of such disaster.