brad@looking.UUCP (Brad Templeton) (02/24/86)
I hate Pascal as much as anybody who's had to implement one, but I will second it as the choice for an introductory course. Your audience in an introductory course is quite broad. Some are going on to further education in CS. Others want something they can use. If you give them fortran or cobol, you won't give much in the way of CS concepts to those going on. If you give them something unusual like lisp, they will have trouble using their lisp skills in the real world. You need something that's widely accepted, fairly standardized (at some level) and that contains the basic concepts you want to deal with in a complete degree program. This leaves you with C and Pascal. Pascal was designed for teaching, and much of what is wrong with it is that people have forgotten this. (Although I will never forgive writeln myself) If you put Pascal in a nice interactive environment (like mine; plug, plug, plug) this is your only choice. This is not a statement to be proud of, necessarily. Nonetheless, what is being used in the real world does control what can be taught to some exent. -- Brad Templeton, Looking Glass Software Ltd. - Waterloo, Ontario 519/884-7473
robt@molihp.UUCP (Robert L Thurlow) (02/26/86)
[] In article <497@looking.UUCP> brad@looking.UUCP (Brad Templeton) writes: >I hate Pascal as much as anybody who's had to implement one, but I will >second it as the choice for an introductory course. > I also cast my vote for Pascal, but think that more exposure is to other languages is necessary, especially to an assembly language. I learned Algol-W and FORTRAN first and got an idea about algorithms, and then engineering gave a feel for limited resources with assembly language on an 8080 (gack, barf, even worse than an 8088! :-) with almost no memory. Then I got into Pascal, 'C' and the other things, and I found I had a lot more respect and understanding for the machine and the problems you can get into. What highlighted this was the System/370 assembler they throw in at the end of the second-year computer science courses at UBC; a large portion of the class were fighting just to get the concepts of memory and registers straight while the engineers were basking in the luxury of the architecture compared to the 8080. (Hey, Al, this thing does floating point math! All by itself! :-) Most of the class was fuzzy about looking around for the resources you have and using them properly, anf this was only due to lack of exposure to what is REALLY going on under there. If your teaching Pascal can spit out assembly code, perhaps showing the students what it looks like would help. # UUCP : ...!ubc_vision!molihp!robt Robert Thurlow # <DISCLAIMER : my thoughts are my own, and are void where prohibited by law.> # "There was something fishy aboout the butler. I think he was a Pisces, # # probably working for scale." - Nick Danger #
jimb@tekcbi.UUCP (Jim Boland) (02/27/86)
In article <497@looking.UUCP>, brad@looking.UUCP (Brad Templeton) writes: > I hate Pascal as much as anybody who's had to implement one, but I will > second it as the choice for an introductory course. > > > Pascal was designed for teaching, and > much of what is wrong with it is that people have forgotten this. > (Although I will never forgive writeln myself) >From: latham@bsdpkh.UUCP (Ken Latham) >Ah yes.... PASCAL.... >Why PASCAL ....? > I think this is the real point ... The compiler has to be > so strict as to not let the student get too inventive ... > like C ... The objective is to learn Algoritmic Representation > not the language. > Even though the language keeps a tight reigh it also has a > sufficient array of types ( structures, pointers, sets, etc.) > and an expressive enough syntax and semantics to do just about > anything. > There I admit I am a C programmer (and Computer Scientist) > that actually LIKES PASCAL!!! I have had to learn and use various languages while in school (BASIC, FORTRAN) and later on jobs. I hve programmed in Basic, Basic+, Pascal, and C. Each language has it's good points and bad points. Each has merits. Basic is quite easy to learn and do things. However, I sure don't like to look at code I didn't write or haven't seen for a year and try to figure out what the heck is going on. With all the line numbers and goto's and gosub's, one can get lost real fast. Then along came Pascal. I sure didn't like it at first. However, after using it for a while, I started to see real merits in it, particularly in reviewing code at a later date or trying to see what someone else had done. I have no real problems with that. Then along came C. I like the way some things are done and I like what I can do with it. Yes, I currently am a C programmer, also. However, I must say that if I had my choices, I believe I would lean more towards Pascal. But then, I have been programming Pascal since 1975. If I had been programming C since then, and started Pascal recently, I would probably prefer C. Sorry, It doesn't work the same for Basic. I started that around 1970. And nope, I would never prefer it over C or Pascal. (Except for a few applications) If you are just passing through a course, will only program for 3 months and never do it again, Basic is probably sufficient.
ark@ut-sally.UUCP (Arthur M. Keller) (03/01/86)
In article <528@tekcbi.UUCP> jimb@tekcbi.UUCP (Jim Boland) writes: >If you are just passing through a course, will only program for 3 months and >never do it again, Basic is probably sufficient. I suppose that if you are just passing through foreign language literature course, will only read foreign literature for 3 months and never do it again, foreign language newspapers are probably sufficient. I don't buy that. If you are taking a 3 month course and will never directly apply the knowledge, then learning concepts is probably the most important because you will forget the details. It is easier to learn the concepts of programming (the basis for learning Computer Science, but not *all* of CS) using Pascal as many are simply not expressible in Basic. (Don't bug me about Turing equivalence, and I won't ask you to write a universal Turing machine in Basic.) On the other hand, if you are teaching a "computer literacy" course, that is, a primarily non-programming course, it may be worthwhile to use Basic because the start up costs are low, programming is a minor part of the course, and you are not attempting to teach programming concepts but rather have the students write a few trivial programs. Pascal is also a problem for students who have not yet mastered high school algebra and who may be able to manage some simple Basic programs. Probably better to teach them Logo or Karel the Robot. Arthur -- ------------------------------------------------------------------------------ Arpanet: ARK@SALLY.UTEXAS.EDU UUCP: {gatech,harvard,ihnp4,pyramid,seismo}!ut-sally!ark
goldberg@SU-Russell.ARPA (Jeffrey Goldberg) (03/02/86)
In article <4346@ut-sally.UUCP> ark@sally.UUCP (Arthur M. Keller) writes: [Some stuff deleted here, basically Keller was expressing the need for expressing algorithms, structure, etc. a vote for Pascal] > >On the other hand, if you are teaching a "computer literacy" course, >that is, a primarily non-programming course, it may be worthwhile to >use Basic because the start up costs are low, programming is a minor >part of the course, and you are not attempting to teach programming >concepts but rather have the students write a few trivial programs. At UC Santa Cruz the computer literacy course used C. This was a required course for some students who had no background with computing at all. We started with "This is a terminal, and that is a computer. Try not to get them confused." and finshed with recursive function calls. Along the way we taught vi and a little nroff, binary arithmatic, manipulating files and directories (on BSD4.2), tr, diff, grep, head, tail, and other filters, and extremely small bit of shell programming (they never had to write any), and some C. All of this was done in a 10 week course with 200 students, two instuctors, and 15 undergraduate TAs (I was one of them). The course was went over very well. (there were problems, but they were the result of a group of students who thought that they course would be so easy that they would never need to come to class (and I mean 'never').) We used C for three reasons. 1) Structured programming 2) We could show them that what they were writing was (in some ways) no different from the programs they had been using earlier in the quarter. This 'demystifies' things like nothing else can, and that is what a computer literacy course is all about. 3) We wanted something close enough to the machine to force people to think about the machines representation of the data. I.e. What is the machine really doing? The course was taught by two linguistics faculty, and about half of the TAs were linguistics students; the rest were CS. The intro CS series uses Pascal (those wimps) which is no doubt an improvement overwhat they used to teach: ALGOL W. (Actually, I don't know anything about ALGOL; I've just heard lots of complaints.) The point is is that if you don't scare them, they can learn a lot. Also, there were some people who were turnd on to computing as a result of this course. I don't think they would have been if we used BASIC. Nor were the bound to end up programming through other routes. One was a literature major the other theater. >Pascal is also a problem for students who have not yet mastered high >school algebra ... Don't you have entrance requirements at your school? (Actually, I'm all for certain sorts of special admission, but there are remedial courses that special admittees are supposed to take first.) >Arthur -Jeff PS: I leave the "wimps" comment in with reservations. There are plenty of good Pascal programmers out there, and I am intending a little friendly rivalry and nothing more serious than that. If anyone wants to get into the old C vs. Pascal debate just mark you subjects accordingly so I don't have to read any of what we have all seen enough times before. The "wimps" comment is purely :-) . -- /* ** Jeff Goldberg (best reached at GOLDBERG@SU-CSLI.ARPA) */