Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rochester!ritcv!rocksvax!rocksanne!sunybcs!cald80!bob From: bob@cald80.UUCP (bob) Newsgroups: comp.lang.misc,comp.edu Subject: Re: How to teach computers Message-ID: <782@cald80.UUCP> Date: Tue, 3-Feb-87 23:59:43 EST Article-I.D.: cald80.782 Posted: Tue Feb 3 23:59:43 1987 Date-Received: Sat, 7-Feb-87 04:24:38 EST References: <2030@batcomputer.tn.cornell.edu> <269@rabbit1.UUCP> <12556@cca.CCA.COM> <2980@gitpyr.gatech.EDU> Reply-To: bob@cald80.UUCP (bob) Organization: Calspan Advanced Technology Center Lines: 57 Xref: mnetor comp.lang.misc:234 comp.edu:89 In article <2980@gitpyr.gatech.EDU> scott@gitpyr.UUCP (Scott Holt) writes: > > I once heard an idea from a professor of mine: teach them the >theory first, save the programming till later. The more I think of this >the better I think it is. > In a typical beginning computer science course, you are given >a programming language and taught how to use it. Usually by examples of >particular problems solved in the language. Basicly, you are being >taught `this is how you do such and such in this language.' I think >a much better approach would to first teach them what types of things >are typicly done. Teach them the basics of problem solving, algorithms >problem decomposition, etc. Once they know how to formulate solutions to >problems, they will begin to ask the question `how can I implement this >solution in this language?'. Then give them the programming language, or >maybe even their choice. Then they can see languages for what they >are worth, they will be able to see the strong and weak points of the >different programming languages. They will begin to see programming as >a tool and not a discipline ... and will be able to chose the best tool >for the job they want to do, not just the one they are most familiar >with. BRAVO!! I was wonering if anyone out there thought the way I do. I remember the very first project that I was given in my first computer class: Write down the instructions for tying your shoes (no pictures). Most of the answers came in at about 2 paragraphs. The correct answer is done in about a page and a half. The idea was to show that computers are actually very stupid; they only do what you tell them; no more, no less. You could tell the students that would be good programmers by the amount of ambiguity and the number of assumed steps. We then proceeded to learn about problem solving on the computer. We were taught to solve problems by hand first (how would I rearrange these numbers if I only have one extra spot to put them?). Making the code to do that wasn't much more than "how do I tell the computer to do what I just did?". We didn't even get accounts on the system for about 2 weeks. The first language that we used was APL (ouch! no flames) but the lessons learned weren't lost when I moved to other languages (BASIC, FORTRAN, C). I later took a PASCAL course a local University and was surprised at the number of people who couldn't even solve a basic bubble sort or check for a series of numbers in a list without *LOTS* of help from the instructor. I better get out of here before I write a book. My command of the English language is not nearly equal to programming (too many ambiguities for me). -- Bob Meyer Calspan ATC seismo!kitty!sunybcs!cald80!bob decvax!sunybcs!cald80!bob