Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!lll-crg!gymble!umcp-cs!chris From: chris@umcp-cs.UUCP (Chris Torek) Newsgroups: net.lang Subject: Re: Proofs &c (was Re: Trichotomous String Comparison Example) Message-ID: <2316@umcp-cs.UUCP> Date: Wed, 9-Jul-86 13:26:56 EDT Article-I.D.: umcp-cs.2316 Posted: Wed Jul 9 13:26:56 1986 Date-Received: Fri, 11-Jul-86 04:44:57 EDT References: <12221138454.23.PATTIS@WASHINGTON.ARPA> <2308@umcp-cs.UUCP> <2313@umcp-cs.UUCP> Reply-To: chris@maryland.UUCP (Chris Torek) Organization: University of Maryland, Dept. of Computer Sci. Lines: 110 >In article <2308@umcp-cs.UUCP> chris@maryland.UUCP (Chris Torek) writes: >>Incidentally, the introductory programming course at the University >>of Maryland actually *does* avoid integers. For their first year, >>students use something called `CF Pascal', in which the only legal >>data types are characters and files. In article <2313@umcp-cs.UUCP> smd@maryland.UUCP (Stanley Dunn) writes: >For the first semester course (CMSC 112) the students use CF Pascal. >In the second semester course (CMSC 113) the students are exposed >to the full language in a disciplined fashion. All right, one semester; that sounds a bit better to me, although I do not know just what length of time is `best'. Less than a semester is likely to be too short; more than a year is likely to be too long. >> The students are supposed to >>be able to prove their programs correct, and having few data types >>(one) and `Turing-tape-like' stores (files) helps keep the proof >>complexity down. >They are able to prove their programs correct. You mean those who make it through the course are able. There will always be those who do not make it---thus the words `supposed to be'. >But more importantly, they have learned how to solve >problems rigorously. This is true, but was not relevant to the original context to which the quoted text was `incidental' (see the first quoted word!). >> I do not believe that these restrictions are >>sensible beyond the stage of learning to write and prove algorithms, >>and I am not even certain they are sensible there. It does provoke >>novel solutions to old problems, however. >I am sure that many others agree, however this is exactly >the point of view that people have to change. Many others agree with what? (Hold on to that thought for a moment.) >Many students feel that CF Pascal is a "crutch" and that they should >be allowed to use the full language. At least the students have an >excuse in that they are young and inexperienced. The fact >of the matter is that the opposite is true - everything beyond >CF Pascal are merely shorthand notations for cumbersome operations >in CF Pascal, and that if the programmer has mastered the >concept of Procedural Abstraction there should be no conceptual >difference. Back to the first paragraph: agree with what? That the restrictions are not sensible once a programmer understands algorithms? Are you arguing that they are? I do not believe you are. Rather, you seem to think that I said that the CF Pascal restrictions are not sensible in an introductory programming course. I DID NOT SAY THAT. I said that I am not positive that they are sensible. I *think* they are, but I cannot be certain: especially not certain, given my limited experience with the results. I *am* certain that `shorthand ... for cumbersome operations' *is* necessary in order to get things done. It is conceptually equivalent for me to type in strings of ones and zeros now rather than ASCII characters, but I would never get anything done that way. I could write a Turing machine simulator and write all my code in that: it is conceptually equivalent to (say) C. I would never get any useful work done though. A proper foundation is essential, but I am not going to live in an unroofed basement. >Learning a science is not learning all the details about >the tools you are working with - that sort of training >makes you a technician. To be a scientist or an engineer >requires that you have a deeper level of understanding >of the properties of the tools you are using to solve problems. Agreed. >Computer Science should be no different, and CF Pascal >helps development the thought processes of the >students (with appropriate exercises, of course). You seem very confident---but then you have taught the course and seen the results. All I have seen is `from the outside', where it looks good, but I am not willing to make a final decision. >This approach to teaching should not be condemmed without >a thorough understanding of the material, after which you >can give a mature, educated evaluation. I was not, I *am* not, condemning it! The original context to which my remarks were `incidental' concerned program proofs; I wanted to mention CF Pascal because it is such a provable language. It may also be a good language for teaching computer science; I *think* so, but I will not say `this is incontrovertible fact'. I repeat: I am not *certain* that the restrictions in CF Pascal are sensible in a first programming course. If you are, fine; but you have more information than I. (Sorry to go on for so long, but I hate being misinterpreted.) >Next week a short course is being offered here (Dept. of Computer >Science, UMCP) for those interested in teaching Computer Science with >the Mills' text and this structured approach (CF / D / O Pascal). How does one find out about these things? I have participated in a few short courses on Unix and C; but I heard of them only by being asked to help teach! -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 1516) UUCP: seismo!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@mimsy.umd.edu