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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID 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: 103376,97188312486d4578 X-Google-Attributes: gid103376,public X-Google-Thread: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public From: "Alf P. Steinbach" Subject: Re: What's the best language to start with? [was: Re: Should I learn C or Pascal?] Date: 1996/08/04 Message-ID: <320433CE.6D5A@online.no>#1/1 X-Deja-AN: 171939429 references: <31FDFB6C.2781E494@att.com> <01bb8023$4bfe7a80$96ee6fcf@timhome2> <4u19gq$f1g@solutions.solon.com> content-type: text/plain; charset=us-ascii organization: Telenor Online mime-version: 1.0 newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada x-mailer: Mozilla 2.0 (Win95; I) Date: 1996-08-04T00:00:00+00:00 List-Id: Peter Seebach wrote: > > In article <01bb8023$4bfe7a80$96ee6fcf@timhome2>, > Tim Behrendsen wrote: > >Yes, but if they don't even know what hexadecimal is (or by extension > >the fundamentals), do they *really* understand what an abstract data > >type is, or what call by reference means? I'm sure they could quote > >the book definition, but do they really *understand* it? > > Certainly. Knowing hex won't buy you anything WRT abstract data types. The question had nothing whatsoever with the benefits of knowing hex, but with the absence of knowledge of such a fundamental matter. Knowing that a car needs gasoline won't buy you anything with respect to driving a car (when this matter does not make itself important, as the matter of hex numbers could make itself important, e.g. while designing iostreams). However, I wouldn't entrust a car to a person not knowing about gasoline. > Knowing the bottom half of the machine might help you understand the > *mechanics* of call by reference. It would not help you understand the > *implications*. You can explain the implications easily using metaphors, > and most students will quickly grasp why these operate differently. I have a really hard time understanding why students should *not* learn about the physical machine. If they're not able to grasp a simple thing like hex and binary, then they most certainly will not be able to grasp abstract datatypes (design, implementation and usage of). Not for lack of the fundamentals -- as you've pointed out, it is possible to reason at any given level of abstraction -- but for lack of brains. Any reasonably intelligent student will understand hex & bin after just a few minutes of explanation, and will understand conversion methods after just an hour so of carrying out exercises. If not, then the person has nothing whatsoever to do studying C.Sc. or programming. So, the cost of learning the fundamentals is very low, while the payoff is great. It's a simple & fundamental principle of teaching and learning: build up from the known and concrete, instead of down from airy abstractions. And I expect you do the same (I do!): when confronted with some problem which seems too abstract and complicated, I always find it beneficial to consider a simplified and more concrete version first. Leaving out the fundamentals simply means the student will fill the vacuum at the bottom with something out of fantasy and intuition. I can't see any good reason -- or even any reason at all -- for actively suppressing / leaving out this information. - Alf