Path: utzoo!utgpu!watserv1!watmath!att!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!wuarchive!kuhub.cc.ukans.edu!cs300 From: cs300@kuhub.cc.ukans.edu Newsgroups: comp.edu Subject: Pascal as a first Language Message-ID: <24994.26a7079d@kuhub.cc.ukans.edu> Date: 20 Jul 90 18:31:09 GMT Organization: University of Kansas Academic Computing Services Lines: 32 I'm teaching my first course in programming (I'd taught the survey course in CS previously), and am wondering what other people are using for the language they teach. I am forced by the curriculum to teach Pascal and I seriously question the wisdom behind teaching this language as the first one. Some of my reasons: The main technique to learn is abstract data types and modularity. Pascal adds all kinds of syntactic overhead to the structuring of data (e.g. "." vs "[]" for essentially the same thing: compound data) Pascal forces everything to be declared globally if it is to retain its value (i.e., there is no private data) Pascal punishes one for recursion (unless tail recursion is implemented) Procedures and functions are not first class data items and hence only a small subset of programming techniques is learned. Polymorphism is only difficultly achieved to a partial degree. Now, granted, some of these topics aren't always suitable for a first course, but the teaching of Pascal means that in order to learn them, one has to drop pascal (and all the bad habits its taught) and pick up a reasonable language. What's reasonable? If forced I'd teach Ada or C, but I prefer scheme(lisp). I'd like to think that I'm preparing my students for more that just FORTRAN and COBOL careers (or at least giving them the option to not choose those careers). Does anybody have any supporting or competing experience? I'm considering lobbying for an experimental course using scheme. Thanks, David (my opinions? you just got them).