chris@mimsy.UUCP (Chris Torek) (07/29/89)
In article <8514@batcomputer.tn.cornell.edu> lacey@batcomputer.tn.cornell.edu (John Lacey) writes: >P.S. What about comp.lang.paradigms? ... How about `comp.lang.models' instead? Not only is it easier to type (and spell), it is also the right word. A newsgroup for examples in particular computer languages does not seem very useful. -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163) Domain: chris@mimsy.umd.edu Path: uunet!mimsy!chris
tbc@hp-lsd.HP.COM (Tim Chambers) (07/31/89)
Having learned Lisp as my first language under the instruction of Sussman, I agree with the points made by manis@grads.cs.ubc.ca. The language should be irrelevant. I won't try to speak about the current MIT environment, but during my enrollment (1980-84), one was hard-pressed to find any course that taught a language. I was immersed in the philosophy that the theoretical material (data abstraction, automata, algorithm design, etc.) should be taught during the class and that programming languages should be given no more attention by the instructor than was necessary to make it possible to accomplish the lab work. We were given a reference manual and sent off to do the assignments. Examples during class were limited to discussion about the concepts, and Lisp syntax was freely used, but minimal attention paid to Lisp semantics. I do not understand what Mr. Manis implies by the following, though. |There is, however, the non-major population, who clearly neither want |nor need Abelson and Sussman. With this group, programming is clearly |not the major issue, and Pascal is quite suitable. If programming is *not* the major issue, why force them to study the theories using Pascal? If you want to teach abstract concepts, what better vehicle than a language that requires thinking in terms of a few fundamental concepts -- atoms, lists (ordered sequences), and recursion? Sussman stressed that we were using Lisp because it was a simple, yet powerful language to practice the concepts being taught. Arrays, structures, vectors, complex numbers -- all were introduced to us in their abstract form and then we practiced manipulating the abstract types by representing them with lists. I learned Pascal on-the-job during a summer internship after learning Lisp and CLU in school. The semester I returned, I confronted my software engineering professor about why I had to learn CLU to do my labs instead of using an "industrial" language like Pascal or C. He reinforced the school's philosophy that precious class time should not be wasted teaching language particulars; rather, if we had learned a basis for software design, we could apply those principles to *any* language we might encounter. (Indeed, CLU was a "pet" language of the department, but it was *tuned* for teaching good object-oriented design techniques before Ada or, I believe, C++ and Objective-C, were available.) After five years in the "real world" I can attest to the wisdom of that approach. I have seen the merits of Pascal, Gosling's Mock-lisp, C, Ada, Objective-C, C++, Smalltalk, Prolog, and assembly language debated during my career. My education allowed me to adapt to whatever language my employer has required me apply. Please, teach the concepts *first* with *minimal* attention to the language representation. Then introduce languages as *examples* (some better than others, of course :-) of the concepts of data abstraction and algorithm design.
manis@faculty.cs.ubc.ca (Vincent Manis) (08/02/89)
In article <7870002@hp-lsd.HP.COM> tbc@hp-lsd.HP.COM (Tim Chambers) writes: >I do not understand what Mr. Manis implies by the following, though. >|There is, however, the non-major population, who clearly neither want >|nor need Abelson and Sussman. With this group, programming is clearly >|not the major issue, and Pascal is quite suitable. >If programming is *not* the major issue, why force them to study the theories >using Pascal? Tim then points out that all of the Pascal concepts can be better taught with Lisp. Most non-major students will never, ever, write a program again (or will use dBase or Hypercard or something). The issue is not so much to teach them a particular language, or even a particular semantic base for a language, as to give them something of a taste of what programming is. Since it is not likely that they will understand much of the semantics, the major goal is to have them get a grasp of what programming is, and what major concepts such as conditionals and repetition are. If I were to write a literacy book, I would no doubt use Scheme, but Pascal is as suitable at that level. The book we're looking at happens to use Pascal. The fundamental point is that while I consider Scheme to be my language of choice, I don't feel that that choice really matters to a group which is extremely unlikely to pursue programming. Issues such as the quality of the text, and the availability of instructors who can teach the material, become much more significant. ____________ Vincent Manis | manis@cs.ubc.ca ___ \ _____ The Invisible City of Kitezh | manis@cs.ubc.cdn ____ \ ____ Department of Computer Science | manis%cs.ubc@relay.cs.net ___ /\ ___ University of British Columbia | uunet!ubc-cs!manis __ / \ __ Vancouver, BC, Canada V6T 1W5 | (604) 228-2394 _ / __ \ _ "There is no law that vulgarity and literary excellence cannot ____________ coexist." -- A. Trevor Hodge