Xref: utzoo comp.edu:2362 comp.lang.misc:3169 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!uw-beaver!ubc-cs!grads.cs.ubc.ca!manis From: manis@grads.cs.ubc.ca (Vincent Manis) Newsgroups: comp.edu,comp.lang.misc Subject: Re: Which language to teach first? Message-ID: <4603@ubc-cs.UUCP> Date: 28 Jul 89 21:18:55 GMT References: <8514@batcomputer.tn.cornell.edu> Sender: news@cs.ubc.ca Reply-To: manis@grads.cs.ubc.ca (Vincent Manis) Organization: The Invisible City of Kitezh Lines: 53 In article <8514@batcomputer.tn.cornell.edu> lacey@tcgould.tn.cornell.edu (John Lacey) writes: >My own predjudices are to use Scheme. Another choice, considerably more >conservative, would be Modula/2 or Oberon. Ada, to my own taste, is >completely out of the picture. I think that deciding upon the language to use first is most definitely the wrong paradigm. Imagine deciding first whether to use alternating or direct current when teaching physics! You should look at what you want your course to accomplish before deciding upon the particular tools to use. A first-year major-level science course ought to try to present the discipline as an integrated whole, covering not just the current consensus, but also the historical process by which that consensus was developed, and the questions which researchers in the field are currently investigating. It should also try to lure outstanding students into that field. Teaching programming is clearly going to address none of these issues, as the report of the ACM Task Force on the Core of Computer Science (Jan CACM, I believe) states forcefully. Rather, we should concentrate upon characterising what computer science is, which in my mind constitutes such concepts as abstraction and automata fully, and demonstrating how these concepts intertwine. Applications are important, but they should be significant ones, not just producing paycheques (mea culpa! mea culpa maxima!). Not surprisingly, I consider Abelson and Sussman a seminal book in the field, because it does exactly what I have stated. Abelson and Sussman happen to use Scheme, and therefore, if one is using their book, the laboratory work (*not* programming assignments!) would be done in Scheme. I can imagine using Prolog or Oberon, but Scheme is already such a good candidate that there seems no point. We at UBC expect to switch over to Abelson and Sussman fully in the fall of 1990 for our major students. The final negotiations for getting University approval are at present just getting started. 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. We're looking at the UC Berkeley computer literacy course, `Computing Unbound', to serve this group. ____________ 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