Date: Wed, 9 Sep 1998 11:26:06 +0300 (IDT) From: Eli Zaretskii To: Tom Breton cc: djgpp AT delorie DOT com Subject: Re: Teaching a child to program in C In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Precedence: bulk On Wed, 9 Sep 1998, Tom Breton wrote: > Pardon me for making a suggestion that you may have already decided > against, but have you considered LOGO? It's the only language I can > think of that is meant for a child. Hear, hear! There's nothing like LOGO to stimulate kids to explore the world rather than exploit it (do I sound old enough? ;-). There will be a DJGPP port of UCB LOGO soon (and that's a promise). > If he picks up LOGO easily and seems bored with it or frustrated with > how little it can do, then is the time to introduce real languages. Excuse me? Who said LOGO isn't a ``real language''? I hope you know there's much more to LOGO than just turtle graphics, do you? LOGO is based on lists, like Lisp (but its syntax is much easier to read), and its built-in primitives are extremely powerful, so you can do amazing things with just a few lines. "Computer Science Logo Style" is a book that teaches the entire CS curriculum using LOGO, and one of the last projects there is a compiler for a Pascal subset which is about 1000 lines; another project is STUIDENT, a 1100-line AI program that can solve several broad categories of problems(1). Can you do something like that in so few code lines in C, or in any other procedural language? In fact, I submit that any serious programmer should try LOGO. Once you did that, you will forever change the way you think about programs. (1) Here are some examples of problems STUDENT can solve (this is the actual text you type into the program, so it includes a natural language parser as well): a. The distance from New York to Los Angeles is 3000 miles If the average speed of a jet plane is 600 miles per hour, find the time it takes to travel from New York to Los Angeles by jet. b. A number is multiplied by 6. This result is 68. Find the number. c. The sum of Sally's share of some money and Frank's s Sally's share is twice Frank's. Find Frank's and Sally's share. I know some 5-graders that will choke on these ;-).