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=3.8 required=5.0 tests=BAYES_00,INVALID_MSGID, RATWARE_MS_HASH,RATWARE_OUTLOOK_NONAME 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: "Tim Behrendsen" Subject: Re: What's the best language to start with? [was: Re: Should I learn C or Pascal?] Date: 1996/08/21 Message-ID: <01bb8f19$9a89d820$32ee6fce@timhome2>#1/1 X-Deja-AN: 175446444 references: <01bb8df1$2e19d420$87ee6fce@timpent.airshields.com> <4vcac4$gm6@zeus.orl.mmc.com> content-type: text/plain; charset=ISO-8859-1 organization: A-SIS mime-version: 1.0 newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada Date: 1996-08-21T00:00:00+00:00 List-Id: Bob Gilbert wrote in article <4vcac4$gm6@zeus.orl.mmc.com>... > In article <01bb8df1$2e19d420$87ee6fce@timpent.airshields.com>, "Tim Behrendsen" writes: > > Bob Gilbert wrote in article > > > Yes, exactly. I understand that theoretically computers > > can be defined in terms of any architectural abstraction, > > but that's not the point. The point is to give the students > > a foundation to build on, and a very simple computer > > architecture is much simpler than complex language syntax. > > Apples and oranges. Learning problem solving and understanding > basic computer architecture are two different things, although > I do agree that understanding the underlying architecture helps > in developing solutions (gives a target to shoot for), it can > also hinder the process by prejudicing the student's thinking > into terms of the limited set of known targets. Perhaps, but you have risk prejudice somewhere. The first language you pick is going to give them some kind of abstractional prejudice. > > All computer problems have certain things in common; they have an > > input, they have an output, and they have a set of procedures > > in between. Teaching the student how to think in terms of > > breaking problems into procedures is by far the most difficult > > task in teaching someone to program. > > A very procedural point of view. Many of the proponents of object > oriented design might have a problem with this view, and demonstrates > my point about allowing the details of implementation to obscure the > higher level problem solving process. There is no other view than the procedural view. There is no such thing as an algorithm that exists in zero time. Even if there is only one operation, or (n) operations that happen simultaneously, it is still (n) data transformations that take place over time. > > I'm reminded of the one guy > > on another thread that said "I learned Quicksort, but I didn't > > really understand it." This is what happens when you focus on > > packing knowledge, without teaching understanding. > > Agreed. Sorting is a good example of a classic problem domain for > which there exists many mature solutions. I still fail to see how > implementing one or more of these solutions in assembly vs a HOL > improves the understanding of the problem domain or even the specific > solution (Quicksort, Bubble sort, whatever). How can someone implement *any* sort in assembly language, and "learn it but not really understand it"? To implement it, you have to do it in great detail, and you simply can't do the "push and prod until it works" approach to programming, which is what I think a lot of students do. -- Tim Behrendsen (tim@airshields.com)