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: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public X-Google-Thread: 10db24,4cf070091283b555 X-Google-Attributes: gid10db24,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 learn? [was Re: Should I learn C or Pascal?] Date: 1996/08/16 Message-ID: <4v1pnf$8du@zeus.orl.mmc.com>#1/1 X-Deja-AN: 174536222 references: <01bb89f1$31be4f60$87ee6fce@timpent.airshields.com> organization: The unconfigured xvnews people reply-to: rgilbert@unconfigured.xvnews.domain newsgroups: comp.edu,comp.lang.ada,comp.lang.c,comp.lang.c++,comp.unix.programmer Date: 1996-08-16T00:00:00+00:00 List-Id: In article <01bb89f1$31be4f60$87ee6fce@timpent.airshields.com>, "Tim Behrendsen" writes: > > But at some point you have to sit down and prepare an > implementation, and that's when you know whether the problem ^^^^^^^^^^^^^^ Key word here. Implementing an algorithm is a separate issue from creating an algorithm. This is not to say that having knowledge of how to implement doesn't or shouldn't affect the algorithm definition, but they are separate issues. > is truly understood or not. Solving a problem is not an > "abstraction" question, it's a question of breaking it down > into fundamental steps of data transformations. Guess it depends on your definition of "solving a problem". I see it as defining the problem, which usually requires a certain amount of abstraction, developing an algorithm which provides a solution (more abstraction), and finally implementing the algorithm in the machine (coding/programming). I think you are placing too much emphasis on the last step. > So what? You can always learn languages, but you only have > one shot at teaching someone to think like a programmer. You're loosing me here.. Why only one shot? > *Programming is not languages*. Right (sort of), and languages includes assembly. Programming is implementing. > What gets missed in all this is that *computers are simple*! Some (perhaps only a few) computers are simple. While computes are designed around some basic (simple) concepts, start adding caches, pipeline architectures, memory paging schemes, multiple register sets, any of the various DMA capabilities or co-processor's which provide for some parallelism, etc., and things get very complicated very quick. There aren't many computers made these days that don't employ most (and many more) of the above features. To effectively program in assembly one must fully understand these architectural issues, and to me that is one of the advantages of teaching a HLL first as it allows the student to study and understand the development and implementation of algorithms without being distracted by all the low level architectural details. > Look at ol' Darin; if he didn't have enough brainpower left > to focus on the algorithm at hand, what was he being confused > by? Perhaps an attractive girl in the class :-). > I think it was by all the language and abstraction, I always though abstraction was used to avoid confusion by elevating away from all the little low level details. Let's you see the forest for the trees kind of thing. > which is not what programming is. Right, studing algorithms is not programming. Programming is implementing algorithms. > If he had been given a solid > foundation of the simple nature of the computer, I think he would > always have a "comfort zone" he could return to whenever he > didn't understand something, because it's *always* implemented > in the fundamental terms. Sorry, I just don't follow this reasoning. -Bob