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.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!news.uzoreto.com!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!buffer1.nntp.dca1.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail NNTP-Posting-Date: Mon, 02 Jul 2018 12:28:57 -0500 From: Dennis Lee Bieber Newsgroups: comp.lang.ada Subject: Re: Teaching C/C++ from Ada perspective? Date: Mon, 02 Jul 2018 13:28:58 -0400 Organization: IISS Elusive Unicorn Message-ID: References: <856189aa-fa00-4960-929e-174f352310ad@googlegroups.com> User-Agent: ForteAgent/8.00.32.1272 X-No-Archive: YES MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-tH1TSC2w4IttdnX+jbmmlATILHKyc61tjgfFwr8bzz3+4jnT/0uSQOLvDIS7Z3uoljzaFWiXkV6YjzM!9froU2tdp3msnUTonBIi92G/wExSAASZwmsqHOgCviyNgBkX/VZft0BmUpdhAHHRwF8zIjg4 X-Complaints-To: abuse@giganews.com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 3131 Xref: reader02.eternal-september.org comp.lang.ada:53511 Date: 2018-07-02T13:28:58-04:00 List-Id: On Mon, 2 Jul 2018 10:10:00 -0700 (PDT), kouaoua16@gmail.com declaimed the following: > >The course is too start with Algorithms first and then end with programming. Perhaps this is counterintuitive as students will then tend to learn the Algorithms part by heart. But if I start with programming first and move on to Algorithms, then students will better understand the logic of the presentation. What is your opinion? Ideally, algorithms should be language agnostic... Basic conceptual building blocks: sequential statements, branching (if/else; switch/case -- I'd try to avoid goto), functions/procedures (or in ancient FORTRAN terms: function subprograms and subroutine subprograms); data structures: arrays, record structures, linked lists (in my day, taught by using static arrays with tags for the index -- no dynamic allocation in FORTRAN-IV), hashes (for my data structures class we had the assignment of implementing a hashed head multiple-linked list "phone directory" -- we were allowed to use any language the instructor was familiar with [so no SNOBOL or APL, and no C in 1979 Sigma CP/V, just FORTRAN IV, COBOL, Assembler, BASIC -- maybe UCSD Pascal if one had access to the two LSI-11s]; on a whim I used BASIC, chain-loading functionality as the BASIC only permitted four open data files at a time). Converting an algorithm to an implementation language is a different matter from understanding algorithms. And if these are truly beginners, you probably don't have time to introduce object-oriented analysis/design (which should also be language agnostic -- you later map what the design comes up with into the features of the implementation language). Which likely also means that the OO features of C++ will barely be touched... -- Wulfraed Dennis Lee Bieber AF6VN wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/