Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!decvax!decwrl!amdcad!lll-crg!topaz!lear From: lear@topaz.RUTGERS.EDU (eliot lear) Newsgroups: net.lang.pascal,net.college Subject: Re: pascal ass intro. language Message-ID: <4478@topaz.RUTGERS.EDU> Date: Mon, 24-Feb-86 03:00:16 EST Article-I.D.: topaz.4478 Posted: Mon Feb 24 03:00:16 1986 Date-Received: Wed, 26-Feb-86 06:03:30 EST References: <204@bu-cs.UUCP> Organization: Rutgers Univ., New Brunswick, N.J. Lines: 69 Xref: linus net.lang.pascal:477 net.college:1106 Barry Shein @ Boston University writes: > I agree, an intro course should be a survey course. It should be shallow > and a good intro into 'the great ideas' of the field just like any intro > course in the sciences (bio, phys, chem etc). Some programming should be > taught as in any good intro lab course (laboratory practices and methods, > remember intro chem, bio...) At Rutgers, our intro class IS an Introduction to Computer Science. We do some minor programming in PASCAL but the emphasis is not placed on programming at all. If your intro course is a survey course for languages, you waste too much time teaching the languages instead of giving the students a good taste of Computer Science. In fact, since I've been at Rutgers, the intro course has always used a computer with software that would make it easiest to program in. For example, when I got here the course was on Teraks using the Cornell PL/CS Synthesizer, which uses templates. In 1984, the CS111 and CS112 moved to Mac Pascal. The idea was that the student should NOT play 'Shuffle the semi-colon' yet get the strong type checking needed for beginning programmers. > Personally, I hate Pascal and consider it the scourge of computer science, > if I had to choose one language I would go with either C or Lisp..... > ..... I would go for LISP because it's easy to get into, a reasonable > interpreter works well with an editor, debugger and tracer. The problem I have with LISP is that it involves recursion, a subject that most of the people here were not very comfortable with until after their intro course. C, however, would not be a bad idea - especially if you do not want to waste time in the future explaining the quirks of that language. It is a lower level language in many ways but it still supports the higher level operations. However, you lose with weak type checking. > I have decided to step into the fray here. ARK @ SALLY.UTEXAS.EDU adds: > (1) The object of an introductory course that includes programming is to > teach problem solving techniques using a computer. Teaching a programming > language is a necessary vehicle for this (unless you wish only to use > canned programs, and even there you have some sort of language). I am glad you did. This is exactly my point. At Rutgers we have two survey courses involving languages - one for non-majors that teaches BASIC, a text formatter, and a spread sheet; and the other is a 300 level course that discusses in depth the structure/uses/limitations of various languages. The idea behind the first is to give the person who doesn't use a computer a chance to discover its usefulness. The reason the second course is 300 level is that by this point, the student is expected to be able to grasp languages faster. In the past, this course has covered SNOBOL, LISP, SETL, and PROLOG in depth while glancing over other languages. My point is that the introductory course should NOT be a language survey course and it should use a language that has a strong enough back- bone that it will catch silly mistakes and leave student to worry about the logical errors. Later on (s)he can pick up as many languages as (s)he wants. That knocks C out of the water and since I don't consider recursion an introductory idea, that knocks out lisp too. As far as assembly language is concerned, I have a feeling I would have become a better programmer if I got an intense shot of assembly first but I doubt I would have gotten an introduction to the analysis of algorythms in the process. Also, one of the most important topics in our intro classes is that of data structures. eliot lear [lear@topaz.rutgers.edu] [{allegra,seismo}!topaz!lear]