Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!ginosko!uunet!philmtl!philabs!linus!community-chest!mitchell From: mitchell@community-chest.uucp (George Mitchell) Newsgroups: comp.lang.misc Subject: Re: Which language to teach first? Message-ID: <64381@linus.UUCP> Date: 17 Aug 89 15:32:58 GMT References: <2552@aplcen.apl.jhu.edu> <6204@hubcap.clemson.edu> <5594@ficc.uu.net> <30666@ucbvax.BERKELEY.EDU> <1504@l.cc.purdue.edu> Sender: news@linus.UUCP Reply-To: mitchell@community-chest.UUCP (George Mitchell) Organization: MITRE-McLean Software Engineering Laboratory Lines: 43 In article <1504@l.cc.purdue.edu> cik@l.cc.purdue.edu (Herman Rubin) writes: > >One of the great difficulties with the languages is that they give a very >distorted view of what a computer does. A computer does nothing but bit >manipulations and transfers of control. Some of these bit manipulations >are organized in certain ways for convenience and efficiency. Some bit >manipulations are done in hardware by some computers and not by others, >but any computer can simulate any other on a clearly defined task. > This discussion has now covered the entire range from Register Transfer Languages to 4GLs. Is it possible that "none of the above" is a better answer? Although I started my journey with assembly language on a 12-bit machine (PDP-8), I do not see why others should repeat the trip. I will admit that RTLs and ALs will give the student a better appreciation of the underlying hardware, but most practitioners of computer science are shielded from the hardware by layers of system software. Understanding that, should be of higher priority than understanding the hardware. Why does any language need to be taught in an introductory course. Aren't there enough concepts to cover without introducing a particular programming language and requiring the student to "write programs"? When the student leaves the school, will the task be to write programs or to develop software? Before the student gets started down the same path as other "DISMAL" programmers, why not teach the concepts of program design without relying on a particular programming language? I would suggest the use of Nassi-Schneiderman diagrams as an appropriate tool for the student to acquire the ability to develop and follow program/algorithm designs. Since many new graduates are initially assigned as maintenance programmers, the debugging of programs is as important as writing them. If any language is to be used in the course, its use should be restricted as follows: 1. No input to compilers 2. Code fragments only 3. Emphasis on debugging, not writing 4. Minimize syntactical considerations If the above restrictions are followed, structured English should suffice. After completing the introductory course, Ada should be a more than satisfactory choice for the first/principal programming language. /s/ George 703/883-6029 GB Mitchell, MS Z676 Easiest: gmitchel@mitre.org MITRE, 7525 Colshire Drive Best: mitchell@community-chest.mitre.org McLean, VA 22102