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: 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: jah@cais.cais.com (John A Hughes) Subject: Re: Should I learn C or Pascal? Date: 1996/07/23 Message-ID: <4t36d1$37h@news2.cais.com>#1/1 X-Deja-AN: 169706286 references: <01bb73e3.1c6a0060$6bf467ce@dave.iceslimited.com> <4sjmtk$e95@herald.concentric.net> <4sntoi$i71@ns1.sw-eng.falls-church.va.us> organization: Sent via CAIS Internet newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada Date: 1996-07-23T00:00:00+00:00 List-Id: In article <4sntoi$i71@ns1.sw-eng.falls-church.va.us>, Philip Brashear wrote: >In article <4sjmtk$e95@herald.concentric.net>, >Mark McKinney wrote: >> >>This raises a big concern I have always had about how programming is taugh >>in general. Problem solving techniques, style, methodologies etc. should >>be taught or learned prior to a programming language. The "this is how you >>do it and then this is how yu do it well" approach seems highly >>ineffective. >>-Mark > >This reminds me of the high school English teacher who said "Teach them >grammar in elementary school, and I'll teach them how to write (compose)." > >How do you learn grammar without writing (composing)? How do you learn >problem solving techniques, style, methodologies, etc. without actually >solving problems, creating programs according to certain styles, using >a programming language to apply a methodology? Might as well try to teach >a child the mathematical discipline of knot theory before teaching her how >to tie her shoes! I personally think the one doesn't preclude the other. Programming *is* a little more than just problem solving. A lot of times people around here have bizarre bugs they can't find that end up depending on the language-- some flaky syntax fact or a well-known obscure implementation detail (and yes, I did intend to write that-- computation is rife with well-known obscurities :). All that needs to be learned all at once. What doesn't need to be learned is linguistic fossilization. The particular language doesn't matter much except as a source of trivia; however, the PROCESS of USING a precise language PROPERLY is very important. I think classroom-style instruction for computer science is bogus. The typical ratio of lecture to lab should be inverted in my opinion-- 3 labs to each lecture. And lectures should introduce the labs and then discuss problems in the labs, and the broader significance of problems people had or differences in various solutions, NOT the other way around, where labs are some kind of vesigial "illustration" of lecture concepts. I also think at more advanced levels the labs should really teach collaborative programming, where everyone must work on a large project, everyone must discuss how the project should be broken up, and maybe teams should have to trade software components during implementation to teach them how to write maintainable code. This kind of class would be very hard to design and teach, and would be a total blast. jah