On Fri, Dec 17, 2004 at 12:09:16AM -0800, Ben Hencke wrote: > As ugly, malformed, and abused as basic is, I think it is the best > language to teach to 5th graders. Both the University professor and the programming language designer in me are both screaming: NOOOO!!!!!! > > Java, smalltalk or any OO language is probably not the best place to > start. The concepts that are required to make good OO programming is > too complex and are in addition to the basic coding of the methods > themselves. I think even C & derivatives are too complex in syntax, > kids get buggy eyed with all the curly braces really easily. The problem with pure BASIC are threefold: 1) Virtually no structure. GOTO/GOSUB are the order of the day. 2) Lack of declaration of variables. 3) No parameter passing mechanism to speak of. BASIC will get a kid from 0 to 10 (mph/kph). But after that? > > I have a 10 year old, and he seemed to pick up basic but I think > anything more complex would be too tough especially to start with. I > imagine teaching a room full of kids would be much more difficult. > > You gota remember that basic programming is still going to have a lot > of concepts that are totally new to them (at least most of them). True. But since you get the concepts in any language, you may as well get them in a better structure. The most important thing to understand is that kids do better with examples than they do with abstractions. Most programming is an abstraction. For kids it's always better to show them something concrete, then have them abstract the concept after they get it. So I'm going to throw out two suggestions associated with the comments above: 1) Python. It's simple. Clean. Structured. Has OO but you're not obligated to use it. Enforces indentation, which is a lifesaver. Real simple to start but robust enough to generate real applications. 2) Guido van Robot (http://gvr.sf.net) is a visual manipulation language based on python. With it you can teach the concepts and structure of programs while manipulating a visual world in the process. The language is a subset of Python, so once a kid gets the hang of it, (s)he can graduate to the real deal without too much trouble. GVR type worlds are the best thing to use to teach programming. That's why the LOGO turtle, Karel, GVR, and others are useful. I wrote a simple one named MILO the monkey using the same concept. If you can get kids to understand why you need variables, why you need selection, why you need repetition, why you need procedures/functions, then they'll know how apply it in any programming language forever. Just my two cents. BAJ (Who started with TRS-80 Model 1 basic but quickly graduated to Z80 ML) _______________________________________________ http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist