shaffer@operations.dccs.upenn.edu (Earl Shaffer) (07/15/87)
I have a questions which should stir up a debate. Which language should be taught first in the Computer Science track for incoming freshman? We are assuming that is possible to teach almost any (exceptions: Snobol, C++, Forth, etc.) and that it is phyiscally possible to teach any language (example: CICS COBOL, Burroughs Super Algol). The point of all of this is that back when I was in school, Pascal had just replaced Basic as the languages *generally* taught first in a CSC 101 type class. I hear that 'C' has gained in popularity enough that schools are using C rather than Pascal for intro courses. Remember, this is the course that will teach all the bad habits we learned from our first language(s)! (happy face) For example, I still use "I" for counters because I learned Fortran first. (yech!) Well, what do all of you think? (flames to /dev/null) cheers, ============================================================================== Earl Shaffer - University of Pennsylvania - Data Communications Department "Time was invented so that everything wouldn't happen at once." Steven Wright ==============================================================================
jholbach@wright.EDU (Jim Holbach) (07/16/87)
in article <1472@super.upenn.edu.upenn.edu>, shaffer@operations.dccs.upenn.edu (Earl Shaffer) says: > Xref: wright soc.college:94 comp.edu:381 > > I have a questions which should stir up a debate. > > Which language should be taught first in the Computer Science > track for incoming freshman? > English. J. Holbach
gcm@mtgzz.UUCP (g.c.mccoury) (07/16/87)
In article <1472@super.upenn.edu.upenn.edu>, shaffer@operations.dccs.upenn.edu (Earl Shaffer) writes: > Which language should be taught first in the Computer Science > track for incoming freshman? > > Remember, this is the course that will teach all the bad habits we > learned from our first language(s)! (happy face) For example, I > still use "I" for counters because I learned Fortran first. (yech!) Anybody know if they are still teaching Fortran as the intro CS class at Penn State these days? Just wonderin because it was such a *fun* class for me at the time ;-) Right after this class came IBM 360/370 assembler - this class really thinned out the crowd :-} From your local PSU graduate..... /*************************************************************************** * * * e N Grover McCoury * * B o ATT Laboratories(?) [was ISL] * * y r m a l ?? ...!ihnp4!mtgzz!gcm * * h * * W I refuse to have a battle of wits * * with an unarmed person... * * * ****************************************************************************/
credmond@orchid.UUCP (07/17/87)
In article <1472@super.upenn.edu.upenn.edu> shaffer@operations.dccs.upenn.edu.UUCP (Earl Shaffer) writes: > >Remember, this is the course that will teach all the bad habits we >learned from our first language(s)! (happy face) For example, I >still use "I" for counters because I learned Fortran first. (yech!) > And you think that's bad? (Another round of old-timer stories.) *I* learned my first bits of programming in a language called FORGO, which seems to have disappeared from the face of the earth. I think it must have been a subset of FORTRAN II. Probably explains why I ended up majoring in English and political science!
elg@killer.UUCP (Eric Green) (07/18/87)
in article <1472@super.upenn.edu.upenn.edu>, shaffer@operations.dccs.upenn.edu (Earl Shaffer) says: > Xref: killer soc.college:939 comp.edu:480 > > I have a questions which should stir up a debate. > > Which language should be taught first in the Computer Science > track for incoming freshman? Scheme, of course! With _Structure and Interpretation of Computer Programs_ out there, why bother with squashing semi-colons in Pascal, fer chrissakes? I spent most of my freshman year hitting errors like these: procedure barf (j:array[1..20] of char); .... if x > y and y < z then begin ... end; else ..... Whoobay. I can think of funner things to do! Was almost a relief to learn PL/1 -- just put a semicolon at the end of each line, and it's happy as a lamb (note that this was before Unix and "C" became popular). As for learning "C" as the first language... "C" has a fairly complex syntax, too. For example, if a freshsman first sees for(i=0;i<limit;i++) puts(trash[(i<maximum)?i:0]); "uh....... gee, does that work?" Much easier to just wrap parentheses around everything and forget totally about such nasty things... -- Eric Green elg%usl.CSNET Ron Headrest: A President {cbosgd,ihnp4}!killer!elg for the Electronic Age! Snail Mail P.O. Box 92191 Lafayette, LA 70509 BBS phone #: 318-984-3854 300/1200 baud
dnk@bucsb.bu.edu.UUCP (Danny Kumamoto) (07/19/87)
In article <145@wright.EDU> jholbach@wright.EDU (Jim Holbach) writes: >in article <1472@super.upenn.edu.upenn.edu>, shaffer@operations.dccs.upenn.edu (Earl Shaffer) says: >> Xref: wright soc.college:94 comp.edu:381 >> >> I have a questions which should stir up a debate. >> >> Which language should be taught first in the Computer Science >> track for incoming freshman? >> > > English. > > > >J. Holbach > Right on! English, English and more English, and throw in some extra grammar and writing classes (e.g., technical writing). -- Danny ARPANET: dnk@bucsb.bu.edu BITNET: cscjfsn@BOSTONU CSNET: dnk%bucsb@bu-cs UUCP: ..!harvard!bu-cs!bucsb!dnk Phone: (617) 547-5033 Voice: "Hey Danny" will do USnail: 14 Laurel St., Cambridge, MA 02139, U.S.A. "Joy is in the ears that hear." -- Saltheart Foamfollower
paradis@encore.UUCP (Jim Paradis) (07/20/87)
In article <1472@super.upenn.edu.upenn.edu> Earl Shaffer writes: >Which language should be taught first in the Computer Science >track for incoming freshman? > >Remember, this is the course that will teach all the bad habits we >learned from our first language(s)! (happy face) For example, I >still use "I" for counters because I learned Fortran first. (yech!) Believe it or not, at MIT they teach Lisp in their intro-CS course! (6.001 for you techies out there). When I was a froshling they used a strange dialect called Ulisp that ran on a DEC-20. By the time I left they were using Scheme on HP micros, and I think they'll be doing that for a while. Anyway, one of the reasons that they did this was because a LOT of MIT CS majors already had played with computers before coming to MIT, and so were chock-full of bad habits from their various "first languages". By using a language unlike anything most anyone had seen before, they hoped to be able to start on a cleaner slate. Of course, that didn't prevent ME from speaking Lisp with a heavy Fortran accent for a while... but I got over it eventually. +----------------+ Jim Paradis linus--+ +--+-------------+ | Encore Computer Corp. necntc--| | | E N C O R E | | 257 Cedar Hill St. ihnp4--+-encore!paradis | +-------------+--+ Marlboro MA 01752 decvax--| +----------------+ (617) 460-0500 talcott--+ You don't honestly think ENCORE is responsible for this??!!
rterrell@ncoast.UUCP (Roger Terrell) (07/21/87)
>Which language should be taught first in the Computer Science >track for incoming freshman? Modula-2 is an excellent language; it is useful for teaching structured programming techniques, is a high-level language (but can also do low-level things), etc. If one learns Modula-2 *properly*, then one has also learned good software developement too. It is much better than C (only my opinion) for these things, and certainly better than pascal. As powerful as Ada, but much easier to use and easier to learn. Roger Terrell Muskingum College UUCP: ...cbosgd!musky2!terrell CSNet: ccterrell%muskingum.edu@relay.cs.net
talbot@tc.fluke.COM (Todd Smith) (07/23/87)
In article <3263@ncoast.UUCP> rterrell@ncoast.UUCP (Roger Terrell) writes: >>Which language should be taught first in the Computer Science >>track for incoming freshman? > >Modula-2 is an excellent language; Indeed. Rumor has it that, begining this fall, Stanford will begin teaching Modula-2 in place of Pascal in it's 'Intro to Software Engineering' courses (CS 106A & B). Why? Because Modula-2 is much better than Pascal when it comes to modules and modular programming (In our implementation anyway) and these courses (esp. B) are *very* module oriented. Todd INTERNET: talbot@tc.fluke.COM, talbot@portia.stanford.edu UUCP: {uw-beaver, sun}!fluke!talbot
jcz@sas.UUCP (John Carl Zeigler) (07/24/87)
I have recently been convinced that the introductory language courses in Computer Science should teach C, Fortran, and Pascal. Lisp and Assembly should be demonstrated, but perhaps no assignments given. ONLY the languages' basic syntax differences and a discussion of the different problems the languages were developed to solve would Two or three simple assignments in each language would be presented. Later courses could deal with more theoretical differences, but a background in several languages and some discussion of the motivations behind their designs would more benficial than studying one particular language. At NCSU, we had a sequence of 3 hour courses that taught fundamental concepts, with many 1 hour courses to chose from that covered individual languages. All fundamental courses used PL/I (bleaaaa!), then later Pascal (arf, arf). In general, project courses allowed any language available to be used. -- --jcz John Carl Zeigler SAS Institute Inc. Cary, NC 27511 (919) 467-8000 ...!mcnc!rti!sas!jcz
roz@l.cc.purdue.edu (Vu Qui Hao-Nhien) (07/25/87)
In article <145@wright.EDU> jholbach@wright.EDU (Jim Holbach) writes: >in article <1472@super.upenn.edu.upenn.edu>, shaffer@operations.dccs.upenn.edu (Earl Shaffer) says: >> I have a questions which should stir up a debate. >> >> Which language should be taught first in the Computer Science >> track for incoming freshman? > English. Right. And maybe even, God forbid, grammar and paragraph development too !! It's true that many CS majors can't talk/write properly, but I guess the damage is usually not hereditary and won't go past one generation so it's OK :-) Anyhow, to get back to the real meaning of the original article, at Purdue, the intro course for CS majors (CS 230) teaches Pascal and C. They have always been teaching Pascal, and they don't want students of about the same class going on totally different tracks. Personally, I like that approach of teaching lisp if your students have all had programming experience and picked up bad habits here and there. -- "I tawt I taw a tootty tat" Hao-Nhien Q. Vu (pur-ee!l.cc.purdue.edu!vu) (vu@l.cc.purdue.edu) [That's "ell", not "one"]
aaz@i.cc.purdue.edu (Pete-Bob) (07/27/87)
In article <558@l.cc.purdue.edu> roz@l.cc.purdue.edu.UUCP (Vu Qui Hao-Nhien) writes: >In article <145@wright.EDU> jholbach@wright.EDU (Jim Holbach) writes: >>in article <1472@super.upenn.edu.upenn.edu>, shaffer@operations.dccs.upenn.edu (Earl Shaffer) says: >>> Which language should be taught first in the Computer Science >>> track for incoming freshman? >> English. >Right. > >Anyhow, to get back to the real meaning of the original article, at >Purdue, the intro course for CS majors (CS 230) teaches Pascal and C. >They have always been teaching Pascal, and they don't want students of >about the same class going on totally different tracks. > >"I tawt I taw a tootty tat" >Hao-Nhien Q. Vu (pur-ee!l.cc.purdue.edu!vu) > (vu@l.cc.purdue.edu) > [That's "ell", not "one"] When did Purdue start teaching C in their intro CS course (cs230)? Last I had heard, it consisted entirely of Pascal. Many of the courses at Purdue, even in the upper-division, require that students use Pascal. (For ease in compiling and grading) In fact, until recently, none of the C.S. courses taught C to undergraduates. They had to learn it on their own or take it from the EE department. (As I did.) Pete Apple aaz@i.cc.purdue.edu
jsnyder@uw-june.UUCP (J. R. Snyder) (07/29/87)
In article <1317@sputnik.COM> talbot@tc.fluke.COM (Todd Smith) writes: >In article <3263@ncoast.UUCP> rterrell@ncoast.UUCP (Roger Terrell) writes: >>>Which language should be taught first in the Computer Science >>>track for incoming freshman? >> >>Modula-2 is an excellent language; > >Indeed. Rumor has it that, begining this fall, Stanford will begin teaching >Modula-2 in place of Pascal in it's 'Intro to Software Engineering' courses >(CS 106A & B). The University of Washington made this switch several years ago. >Why? Because Modula-2 is much better than Pascal when it >comes to modules and modular programming (In our implementation anyway) and >these courses (esp. B) are *very* module oriented. Yup, those are the reasons, among others. Another way of saying it is that Modula supports abstract data types better than Pascal. (So does Ada, but it's clearly not suitable as a first tongue for many reasons.) jsnyder@june.cs.washington.edu.arpa John R. Snyder {ihnp4,decvax,ucbvax}!uw-beaver!jsnyder Dept. of Computer Science, FR-35 University of Washington 206/543-7798 Seattle, WA 98195
mikey@rocky.STANFORD.EDU (Mike Yang) (07/29/87)
In article <2893@uw-june.UUCP>, jsnyder@uw-june.UUCP (J. R. Snyder) writes: > In article <1317@sputnik.COM> talbot@tc.fluke.COM (Todd Smith) writes: > >Why? Because Modula-2 is much better than Pascal when it > >comes to modules and modular programming (In our implementation anyway) and > >these courses (esp. B) are *very* module oriented. > > Yup, those are the reasons, among others. Another way of saying it is that > Modula supports abstract data types better than Pascal. (So does Ada, > but it's clearly not suitable as a first tongue for many reasons.) > Actually, Todd's information was a little out of date. Stanford was going to switch to Modula-2, but has now decided to switch to Ada (yeech) as the first language taught later next year. Apparently, the Assistant Chairman for Undergraduate Education at Stanford's CS department feels that Modula-2 is on its way out. I wonder if he's aware of the many reasons why Ada is clearly not suitable as a first tongue... - Mike
jsnyder@uw-june.UUCP (J. R. Snyder) (07/30/87)
In article <455@rocky.STANFORD.EDU> mikey@rocky.STANFORD.EDU (Mike Yang) writes: >Actually, Todd's information was a little out of date. Stanford was going >to switch to Modula-2, but has now decided to switch to Ada (yeech) as >the first language taught later next year. > >Apparently, the Assistant Chairman for Undergraduate Education at Stanford's >CS department feels that Modula-2 is on its way out. I wonder if he's >aware of the many reasons why Ada is clearly not suitable as a first >tongue... > Stanford may be a special case here. My original comments about the unsuitability of Ada were the product of a thought experiment in which I tried to imagine explaining (or avoiding having to explain) concepts like overloading, generic packages, internal vs. external representations of data structures, and the like, to the same bemused sophomores at the University of Kansas to whom I, once upon a time, could hardly convey an understanding of where to put the "begins" and "ends" in Pascal programs. (I am assuming that we're talking about a small subset of Ada and don't need to give ourselves nightmares by including rendezvous in the above laundry list.) If the folks at Stanford think that their students can handle it, I'm not in a position to contradict them. I'm confident (pace Dijkstra) that a really good teacher can teach good programming practice even with Fortran or Basic, but that's getting away from the original question. It does seem to me irrelevant that Modula may be "on its way out." On its way out of where? Certainly no one has ever been able to argue that Modula-specific knowledge was going to be of any use to the student outside the academic environment. (Much better to teach Lisp, as someone suggested.) The issue is whether or not another language better supports the learning (I almost said teaching) of what we currently see as fundamental to good programming practice. I hope we are making these decisions rationally and not just jumping on bandwagons. I certainly hope that no one decides they have to have Ada just because Stanford has it. jsnyder@june.cs.washington.edu.arpa John R. Snyder {ihnp4,decvax,ucbvax}!uw-beaver!jsnyder Dept. of Computer Science, FR-35 University of Washington 206/543-7798 Seattle, WA 98195
ann@decwrl.DEC.COM (Ann Mei Chang) (07/30/87)
After talking to some people at work about the relative virtues of Ada, Pascal, and Modula-2 as an intro programming language, I have become more convinced that Stanford has made a reasonable choice in selecting Ada as its intro language. From what I gather, Ada contains all the "good" features that one would look for in a structured programming language. Of course, it contains many other more complex/confusing features, but these would be most likely avoided and discouraged in an intro course. The major advantage both Ada and Modula-2 have over Pascal is the concept of modules. Ada may also be considered a more reasonable language to teach than Modula-2 because it is well supported, and much "real" work has been done on it. One problem I think the department was worried about with Modula-2 was that they weren't sure if they could get a good compiler. I believe that Ada compilers are easy to come by, and the army will even give it to colleges for free. I guess my conclusion is that Ada is at least a reasonable choice for an intro language, provided that certain features are avoided. In addition, it is a reasonable language to use in some later classes for covering such issues as concurrent programming (for which Stanford has used Ada and C this past year). By the way, CS majors at Stanford are also exposed to and write programs in a number of languages other than the "intro" language. Although a single language, Pascal in the past, is often chosen for large projects, the core sequence for CS majors includes work in Lisp, Prolog, C, assembly language, and possibly others to a lesser degree.
dbcooper@violet.berkeley.edu.UUCP (07/31/87)
I think that covering `just the important parts' of Ada, and assigning `just the best parts' of several different languages in one term, are essentially the same thing: Feature Use 101. This approach to teaching programming is what concentrating on names and dates is to teaching history -- superficial, and encouraging of plug-in responses rather than thought and analysis. I can't understand why it is thought that programming badly in n languages would be preferable to programming well in one. Certainly, when a language is too brain-damaged to illustrate the currently major ideas of programming (like, say, BASIC or COBOL), then teaching only a single, simple language causes problems. However, a language like Modula-2 represents essentially the best-known solution to an extremely large class of programming problems. Its difficulty over Pascal, say, is in proportion to the increased ability it allows. On the other hand, while Ada solves a larger class of problems, it does so only at the expense of a considerably more complex solution set. As long as we remain willing to change the introductory language every so often (and not just reupholster it, a la FORTRAN) it seems reasonable to spend a term or two giving students the chance to learn the use of a single language well. There is plenty of time in later terms to introduce special-purpose languages, or languages that encompass a different world view. Maybe one question will help put this in perspective: Whose code would you rather read? That of someone who has learned the accessible parts of Ada (plus a few new features from last week)? That of someone who knows the high points of languages X, Y, and Z? Or that of somebody who is reasonably proficient in \all/ of one general-purpose language?
elg@killer.UUCP (Eric Green) (08/01/87)
in article <455@rocky.STANFORD.EDU>, mikey@rocky.STANFORD.EDU (Mike Yang) says: > > Apparently, the Assistant Chairman for Undergraduate Education at Stanford's > CS department feels that Modula-2 is on its way out. I wonder if he's > aware of the many reasons why Ada is clearly not suitable as a first > tongue... Hmm: Some reasons: * SCale: ADA is *HUGE*. So huge that it will CERTAINLY bog down freshmen... if Pascal causes "cancer of the semicolon", Ada causes "syntax overload explosion". Related to which: * Ambiguous syntactic requirements. There's usually four or five different ways to declare any given Ada data structure, all correct. For example, "junk: array(1..20) of integer;" "junk: array(integer range 1..20) of integer;" etc....... at least the syntactic requirements of a language such as Pascal or Modula ][ aren't so confusing to poor frosh. I must admit to being biased. USL uses Ada for two of its introductory CS courses (Pascal for the first, the rest in Ada), and frankly, I despise the language -- but then, that might be the "C"/assembler hacker talking. Still, recalling the talk of many years ago about the impossiblity of verifying the correct operation of the compiler because the language was so complex, what do they think that the language complexity does to the PROGRAMMER'S reliability?!. -- Eric Green elg%usl.CSNET Ollie North for President: {cbosgd,ihnp4}!killer!elg A man we can believe (in). Snail Mail P.O. Box 92191 Lafayette, LA 70509 BBS phone #: 318-984-3854 300/1200 baud
beth@brillig (Beth Katz) (08/01/87)
One practical reason for not using Ada as the first language is that most students run their programs through the compiler over and over again to get rid of syntactic and semantic bugs. You need fast compilers with descriptive error messages to handle this type of load. You also need a compiler that will not swamp your machine right before assignments are due. And that compiler should be affordable and available on the machines you use for classes. Although I haven't checked into Ada compilers lately (I'm not teaching Ada now, and the Ada compiler I am using for research works well on the Vax and Sun), I don't think you'll find an Ada compiler today that meets those requirements. The best (and closest to correct) Ada compilers are not cheap, and they tend to run on Vaxes. When I taught an upperlevel course on software design and development with Ada, we had to use a research machine because there wasn't a compiler available for our usual teaching machines (IBM 4341 and Sperry 1100 whatever). To keep the class from overwhelming the Vax, we limited simultaneous Ada compiles for class members (and kept it lower than we probably needed to, but that was the agreement). I thought the error messages were pretty good, but some of my students complained. Although I use both Ada and C for my own work, I don't believe either is the best language for a first programming class. I tend to prefer Maryland's approach to teaching the mathematical foundations of programming with a small subset of a language. Mastery of English (or one's native language) is essential. Beth Katz Dept. of Computer Science Univ. of Maryland - College Park beth@brillig.umd.edu
ken@aiva.ed.ac.uk (Ken Johnson) (08/05/87)
Some readers may know that there has been considerable discussion of this topic in Scotland. The reason is that the Scottish Education Department has been specifying new examination requirements for Scottish schools. Hence, the language they chose is likely to be commonly studied by students prior to university entry. In some parts of Scotland it will also become the only examinable computer language in schools. The chosen language is called "COMAL", which is a structured Basic. It runs on the Commodore 64 and on the BBC Micro, to my knowledge. I would be interested to hear any comments on the choice. (Personally I would have considered Logo but I happen to work with it.) What problems (other than purely administrative ones) does it solve? What problems does it create? Please E-mail to me: I'll summarise. Apposite responses may also be used in the public consultation exercise. I happen to disagree with their choice and it would be useful to have some more ammo in case war breaks out again on this issue. Ken Johnson (ken@aiva.ed.ac.uk) -- From Ken Johnson | Phone 031-225 4464 Ext 212 AI Applications Institute | Email ken@aiva.edinburgh.ac.uk 80 South Bridge | The University | EDINBURGH, Scotland EH1 1HN |
elg@killer.UUCP (Eric Green) (08/08/87)
in article <126@aiva.ed.ac.uk>, ken@aiva.ed.ac.uk (Ken Johnson) says: > > Some readers may know that there has been considerable discussion of > this topic in Scotland. The reason is that the Scottish Education Department > has been specifying new examination requirements for Scottish schools. > The chosen language is called "COMAL", which is a structured Basic. > It runs on the Commodore 64 and on the BBC Micro, to my knowledge. Comal solves only half the problems of structured programming. It allows for structured flow-of-control, via if-then-else, while loops, case statements, recursive procedures, etc. However, it doesn't allow structured data. The only complex data structure in Comal is the array. Shades of Fortran. This does not allow you to easily build linked lists, queues, or other such things which inevitably become necessary in the course of human events. Logo is a semi-good choice. The only problem I've seen is that most microcomputer Logo implementations have been toys, good enough for playing with turtle graphics, but useless for more complex programs, due to the lack of file i/o, etc. I know for a fact that Logo on the Commodore 64 is as close to useless as software can be. I don't know if BBC's Logo is any better, but I really doubt it. I haven't the foggiest notion what language you should teach in the place of Comal, though. As I recall, most school districts use 6502-based microcomputers, which rules out any "real" high level language such as "C" or Pascal (well, at least usable implementations of such). Comal's not THAT bad (I once programmed a small recursively-defined game in it -- worked great), but certainly is no winner, either. My first inclination would be to advise the purchase of "real" computers and use Pascal, but, I really doubt the funding would be available for such a drastic step.... -- Eric Green elg%usl.CSNET Ollie North for President: {cbosgd,ihnp4}!killer!elg A man we can believe (in). Snail Mail P.O. Box 92191 Lafayette, LA 70509 BBS phone #: 318-984-3854 300/1200 baud
kent@xanth.UUCP (Kent Paul Dolan) (08/08/87)
In article <126@aiva.ed.ac.uk> ken@aiva.ed.ac.uk (Ken Johnson) writes: [edited for brevity:] >Some readers may know that there has been considerable discussion of >this topic in Scotland. The reason is that the Scottish Education >Department has been specifying new examination requirements for >Scottish schools. The chosen language is called "COMAL", which is a >structured Basic. I would be interested to hear any comments on the >choice. (Personally I would have considered Logo but I happen to work >with it.) Personally, having taught Logo to my 4 year old daughter, my seven year old dyslexic son, and having watched my 10 year old son teach himself Logo from the tutorial manual (the latter IN ONE AFTERNOON), I would seriously propose this language to all CS curricula as the first language. We were using Apple Logo, I think the IBM PClone environment provides a much larger LOGO workspace, though. There has just been a PD posting of Logo to USENet, but I have no experience with it. Logo is, from one point of view, a demystified LISP with an excellent graphics interface. Because it has both an immediate and an interpretive mode of execution, and immediate visual feedback, it is an excellent first language in which to program. Because it supports modular programming, recursion, lists, using the source as data, garbage collection, and so on, it provides an excellent environment in which to teach the first concepts of computing. In spite of being simple enough to be picked up quickly by children, Logo is a powerful language. I ran out of room on the Apple, but I was half way through writing a job shop control scheduling package in Logo a few years ago - its expressive power helps big projects a lot. Additionally, the visual interface, with its "turtle" metaphor, offers an extremely powerful motivating mechanism for the student - Logo is fun to use for programming! I have noticed, having returned to the academic environment, that the first computer course is usually exceptionally painful for the majority of students, because they are fighting Pascal's semicolons, or LISP's paranthesis, or FORTRAN's FORMAT statements, rather than learning the concepts we want to teach to them. Logo suffers from few of these diseases, and offers many benefits. I have not seen a programming assignment for a beginning computer course (except COBOL!) that could not be accomplished easily in Logo. We just don't challenge our students much in the first classes! Please try it out and consider it for use in your program. Logo - it's not just for kids! Turtle power! [In response to the poster, I cringe at the thought of trying to teach anything useful to anyone whose first exposure to programming is a BASIC dialect, no matter how "structured". This raises memories from several years back; during a visit to a NASA facility, I ran across a document creating a mandatory standard language for a NASA operation; their "standard" was a BASIC dialect! Bleech! A decision only a long term, computer illiterate bureaucrat could have made!] Kent, the man from xanth. -- Kent Paul Dolan, LCDR, NOAA, Retired; ODU MSCS grad student // Yet UUCP : kent@xanth.UUCP or ...{sun,harvard}!xanth!kent // Another CSNET : kent@odu.csnet ARPA : kent@xanth.cs.odu.edu \\ // Happy USPost: P.O. Box 1559, Norfolk, Virginia 23501-1559 \// Amigan! Voice : (804) 587-7760 -=][> Last one to Ceres is a rotten egg! -=][> I code reactor power plant control in C. I add "count_of_recent_alarms" to "count_of_rods_to_lift". C has weak type checking; the compiler doesn't notice. A major coolant valve sticks, a spate of alarms occur. All die. Oh, the embarrassment!