Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!uwvax!rutgers!mcnc!xanth!kent From: kent@xanth.UUCP (Kent Paul Dolan) Newsgroups: comp.edu Subject: Re: First language taught in CSC degree track Message-ID: <1890@xanth.UUCP> Date: Sat, 8-Aug-87 14:50:36 EDT Article-I.D.: xanth.1890 Posted: Sat Aug 8 14:50:36 1987 Date-Received: Sun, 9-Aug-87 12:03:50 EDT References: <126@aiva.ed.ac.uk> Reply-To: kent@xanth.UUCP (Kent Paul Dolan) Organization: Old Dominion University, Norfolk Va. Lines: 74 Keywords: COMAL Scotland, Logo everywhere! Summary: Use a language that doesn't overwhelm the user 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!