Path: utzoo!attcan!uunet!samsung!umich!gumby!smaug!news From: jipping@smaug.cs.hope.edu (Mike Jipping) Newsgroups: comp.edu Subject: Re: SEEKING SUGGESTIONS FOR TEACHING A LANGUAGES COURSE Message-ID: <1990Aug14.123438.9207@cs.hope.edu> Date: 14 Aug 90 12:34:38 GMT References: <6717.26c20a9a@vax1.tcd.ie> Sender: news@cs.hope.edu Organization: Hope College Dept. of CS Lines: 42 >> I'm teaching a two term course in programming languages. I want to >> stress principles rather than specific languages. I'm finding it a >> difficult subject to teach. Last year, I ran through "features" (data >> structures, control structures, etc.) the first term and languages the >> second. It didn't seem to work well that way. > The point here > is that perhaps you should concentrate on first teaching people a lot of > different languages and then they'll be able to pick up the ideas. Say your > students have learned a language like C which is suitable for software > engineering. You could try giving them introductions to FORTRAN, COBOL, BASIC, > Lisp, Forth, Algol etc. and hope they pick up some ideas of what programming > languages are about. At the very least it'll teach them to appreciate the good > qualities of whatever language they've been learning for mainstream programming > :-). But it won't teach them much else... That method will give them the mechanical ability to say "in this situation, I use C and in this situation I use Ada", but it won't give them the ability to intelligently CHOOSE a language which fill the application's need. For example, fully exploring concepts like data abstraction or static and dynamic identifier scope will teach knowledge that a tutorial approach never will. You can't "hope they pick up some ideas" and expect students to learn what the "hole in scope" problem is and how to avoid it. Learning CONCEPTS is the only way to adequately prepare a student for big world of languages. That isn't to say that "first doing practice" must be avoided. Examples, lab experiments, and programs programs programs can be given (and MUST be given in a good course) to illustrate both the point of the current concept and a particular way that a language implements a concept. I've taught a course in PL concepts for several years and a colleague and I have authored a 1990 book on PL concepts. So maybe I'm biased. But it's my claim that a student with concepts under his/her belt will be able to pick many more languages faster than the student having had a tutorial course. Mike Jipping Internet: jipping@cs.hope.edu Hope College BITNET: JIPPING@HOPE Department of Computer Science Voice: Hey!