Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!gamma!epsilon!zeta!sabre!petrus!bellcore!decvax!decwrl!amdcad!lll-crg!seismo!ut-sally!ark From: ark@ut-sally.UUCP (Arthur M. Keller) Newsgroups: net.lang.pascal,net.college Subject: Re: pascal ass intro. language Message-ID: <4306@ut-sally.UUCP> Date: Thu, 27-Feb-86 03:39:32 EST Article-I.D.: ut-sally.4306 Posted: Thu Feb 27 03:39:32 1986 Date-Received: Sat, 1-Mar-86 01:39:36 EST References: <192@bu-cs.UUCP> <4253@ut-sally.UUCP> <557@hoptoad.uucp> Reply-To: ark@sally.UUCP (Arthur M. Keller) Organization: U. Texas CS Dept., Austin, Texas Lines: 72 Xref: watmath net.lang.pascal:488 net.college:1148 In article <557@hoptoad.uucp> laura@hoptoad.UUCP (Laura Creighton) writes: >In article <4253@ut-sally.UUCP> ark@sally.UUCP (Arthur M. Keller) writes: >>(1) The object of an introductory course that includes programming is to >>teach problem solving techniques using a computer. Teaching a programming >>language is a necessary vehicle for this (unless you wish only to use >>canned programs, and even there you have some sort of language). > >I am not sure that this is the actual goal of introductory programming courses. >I know introductory courses which teach ``what is a function'' and >``what is a loop'' and ``what is an if-then-else'' and ``what is >a linked list''. For a great many people, especially those who have >only a passing interest in computer science but think that having ``a few >computer courses'' will help them be better economists (or whatever it >is that they *are* interested in) this is about all that they can handle. > >I don't consider this ``problem solving'' -- just like learning how to >recognise and use a saw and hammer doesn't make you a carpenter. I >also think that it is far more important to teach your course in a >language for which there is an excellent text book than to teach your >course in a ``better'' language. >-- >Laura Creighton >ihnp4!hoptoad!laura utzoo!hoptoad!laura sun!hoptoad!laura >laura@lll-crg.arpa I did not mean to imply that every intro computing/programming course teaches problem solving using a computer. However, when I teach intro CS, that is what I teach. There are several parts to problem solving: (1) analysis of the problem, (2) having sufficient knowledge of useful and relevant tools, (3) choosing the relevant tools for the problem, and (4) applying the relevant tools to solve the problem at hand. Number (2) can be further divided into three parts: (2a) having a list of tools, (2b) knowing what each tool does, (2c) and knowing how to use it. Teaching "what a loop is" is essentially teaching (2b). But you don't really understand it unless you also know (2c). The only wait to learn (2c) is to practice doing (4). I claim that this paradigm is useful outside of computer science, but is well illustrated in CS; you need to master it to master a CS course involving significant programming. Learning more about steps (1), (3), and (4) are very useful to anyone, even if you never interact in any way with a computer again. Steps (2) are necessary to apply the other steps to the discipline of computer science, and they are the ones that depend significantly on the programming environment (not just the language) that the students use. Learning how to recognize and use a hammer and saw does not make you any more a carpenter than taking an intro CS course involving programming makes you a programmer. But not any less either. Learning how to use a hammer involves banging nails into things. To motivate it, maybe you build a doghouse or something. How is that different from writing toy programs to solve toy problems? When I teach intro CS, I tell my students that this one course will not make them "programmers". (On the other hand, how many people build things at home on weekends just from the knowledge gained in one semester shop class in high school?) I agree with the importance of a good book. (After all, I think I wrote one.) But don't underestimate the importance of a good environment: programming language, debugging tools, operating system environment, etc. I believe that there will be a choice of Modula2 intro programming books wwithin a few years. "When the only tool you have is a hammer, it is tempting to think of everything else as a nail." Arthur -- ------------------------------------------------------------------------------ Arpanet: ARK@SALLY.UTEXAS.EDU UUCP: {gatech,harvard,ihnp4,pyramid,siesmo}!ut-sally!ark