From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public From: rgilbert@unconfigured.xvnews.domain (Bob Gilbert) Subject: Re: What's the best language to start with? [was: Re: Should I learn C or Pascal?] Date: 1996/09/09 Message-ID: <511smf$b4h@zeus.orl.mmc.com>#1/1 X-Deja-AN: 179527137 references: <01bb9c05$ce5b9aa0$87ee6fce@timpent.airshields.com> organization: The unconfigured xvnews people reply-to: rgilbert@unconfigured.xvnews.domain newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada Date: 1996-09-09T00:00:00+00:00 List-Id: In article <01bb9c05$ce5b9aa0$87ee6fce@timpent.airshields.com>, "Tim Behrendsen" writes: > > In article <01bb9a1e$24c669e0$32ee6fcf@timhome2>, "Tim Behrendsen" > writes: > > > > > > > > > >There is no other view than the procedural view. I might not have as much of a problem with the above statement if you had said that all *implementations* are eventually procedural, but the word "view" implies a methodology, approach, or way of thinking to solve a problem, and there does exist non-procedural views. > Bob Gilbert wrote in article > <50p68s$cpi@zeus.orl.mmc.com>... > > I suspect our definitions of procedural vs non-procedural (e.g. object > > oriented) views are not the same. Non-procedural views do not imply > > "instantaneous" algorithms, the non-existence of a time axis, or whatever. > > The difference is whether I veiw the problem solution as being built by > > putting together a bunch of operations (procedures) that I can invoke to > > manipulate whatever data I happen to have, or I can view the problem > > solution as being built by putting together the appropiate data elements > > (objects) for which certain operations are defined. Are the basic > > building blocks procedures or objects? BTW, I'm not necessarily > > advocating one view over another, just trying to point out that there > > are views other than a procedural view. > > Object-oriented is perhaps not where you want to go to make > your point; the only difference between OOP and non-OOP is > how you bind the procedures to the objects. non-OOP you pass > an object to a procedure; in OOP, you execute the procedure > abstractly bound to the object. I was taking object-oriented design (OOD), not necessarily object oriented programming (OOP), which is simply the implemtation of an OOD. View vs implementation. > But to get back to the original point, which is teaching students > the procedural nature of the computer, it is essential that they > understand this. One of the most dangerous people in the world > is someone who writes SQL statements who doesn't fundamentally > understand what happens inside the mechanism. In theory, I > should be able to happily write SQL statements anyway I want to; > in practice, I *would* like my report to come out within this > millenium. > > Yes, teach them non-procedural languages in the Masters or PhD > programs. First teach them that everything boils down to > procedural mechanisms. I agree that a computer science student should have a through understanding of computer architecture(s), assembly language, and the various low level implementation details and concepts. I disagree that assembly should be the first programming language that the student is exposed to. I would also disagree that assembly should be the last language taught (perhaps a close second). I disagree that implementing algorithms in assembly is better for teaching the algorithm and it's development than using a HOL such as Ada, Fortran, or PL/I. Assembly should be used in conjuction with the study of computer architecture, but I contend that the required knowledge of the many architecturual details necessary to effectively program in assembly hinders the understanding of the algorithm (e.g. sorts, random number generators, data base, etc.), however implementing various algorithms in assembly is a good exercise for the student and certainly provides a better overall understanding (as well as providing knowledge to better design algorithms to the constraints of the machine). I wouldn't wait for Masters or PhD programs to teach many of the HOL programming issues (OOD, etc.). -Bob