ramsey (03/21/83)
#R:cbosgd:-326900:inmet:4700003:000:877 inmet!ramsey Mar 19 18:52:00 1983 I just had to comment on this comment: ---------- I know some of you out there think LISP is wonderful. I'm very happy for you. But I think you are in the minority. And I don't think LISP is a good teaching tool, primarily because it relies on recursion too much. Recursion is a VERY hard thing for a beginner to learn. (This same argument applies to LOGO as well.) ---------- I have taught short courses in LISP, BASIC and Pascal to beginners. Beginners seem to have as much trouble dealing with loops as they do with recursion. Teaching recursion is only a problem when you are dealing with someone who already knows how to program in a non-recursive language. You can always tell someone who learned to program in LISP (or LOGO) late in life, their programs look like FORTRAN with lots of extra parentheses. Marc Ramsey
wartik (03/22/83)
Here's my two cents on the issue of bad habits from interactive environments. I remember my undergraduate operating systems course, where I wrote the whole program (about 700 lines of Fortran) limited to 40 runs, and used only 36. These days, I'd probably spend 10 runs just getting out the syntax errors. There is no question in my mind that the more trouble it is to run a program, the more you think about it before you submit it. Thinking is especially important for the beginning programmer; no matter how well the language encourages data abstraction or top-down development, a certain amount of maturity in programming skills is required to properly use these concepts, and I feel the idea of "let's give the beginning programmer some room to experiment" leads to bad habits. If you've ever taken fencing, you know that they don't just throw a foil in your hand and set you at your opponent. Some teachers will require you to spend many months learning the footwork first. I think this should be an appropriate metaphor for learning to program, and I think languages like Pascal support this concept much better than Logo, BASIC, LISP, etc. I've read some personal experiences over the net that disagree with me, but my experiences teaching courses lead me to believe they are the exception and not the rule -- the majority of students benefit from the more disciplined approach to programming that compiling provides. I don't mean that we should all program using cards in Fortran because it encourages us to be careful, and that debugging tools lead to bad habits because they make programming too easy. But I first programmed in 1971, back when people were wondering why that fool Dijkstra wanted to eliminate something as necessary and powerful as the GOTO, and I remember how long it took me to overcome some of the terrible practices I picked up initially. -- Steve Wartik decvax!trw-unix!trwspp!wartik