collberg@dna.lth.se (Christian S. Collberg) (06/04/90)
The following is a summary of the responses I got to my post regarding the use of Eiffel as a teaching language for undergraduates. I haven't done much editing, and include the messages pretty much the way I got them. Thanks to all who responded. Chris Collberg collberg@dna.lth.se --------------------------------------------------------------------------------- From: eiffel!potter@uunet.UU.NET (John Potter @ Interactive Software Engineering I Hello I'm on sabbatical at ISE (the Eiffel people) from University of Technology, Sydney. We've been teaching Eiffel to our undergrads (first years from the beginning semester), with some success, and some problems. I've just written a review of Eiffel 2.2 for JOOP in which I made some observations about teaching with Eiffel along the lines of: The students will like the language very much, but will ask for textbooks and Mac and/or DOS compilers, which are non-existent, as of yet. Because of this current restrictions, we still rely on Pascal as well. Teaching both at once is interesting. It doesn't breed as much confusion as you might expect, and makes the students appreciate the data abstraction capabilities of Eiffel, lacking in Pascal. There has been some whiff of a DOS version of Eiffel in the air, but I'm not privy to the details. I wouldn't rely on anything other than the Unix based Eiffel compiler at the moment. The lack of textbook is a problem. We've been developing our own material which is hard work. As the material is directed at a first semester course, it may be too introductory for you. My colleague Dr Rob Rist has done most of the work on these materials so far. You may wish to ask him about them directly ... His email is: rist@ultima.cs.uts.oz.au Another item of interest: I will be chairing a panel discussion on Teaching Object-Oriented Methods at the TOOLS '90 conference in Paris, late June. I will be presenting a paper on our experiences at UTS. Maybe I'll see you there? Regards John Potter --------------------------------------------------------------------------------- From: mjl@cs.rit.edu (Lutz Mike J) I tried this in a junior/senior level seminar on object oriented concepts, with mixed results. The students had been previously exposed to the concepts of encapsulation and abstract data types, so I thought the transition would be smooth -- however, some of them may have been immune :-) Anyhow, they were overwhelmed by the system, because it both emodies an unfamiliar paradigm (OO) and some fairly sophisticated software engineering concepts built on this base (specifically class invariants and pre/post conditions). The fact that Eiffel is compiled, and not very quickly at that, made it hard for them to experiment much. So I dropped back to Tim Budd's Little Smalltalk, and things went much smoother. The students were able to experiment a bit, and get a feel for the paradigm (like the difference between reading a car's specs and taking it out for a test ride). After this, many returned to Eiffel with an increased appreciation for what it provided, and several teams did their term projects in Eiffel. So I'd say results are mixed. If you've got a hot bunch of students, Eiffel might be the way to go, but you'd better be prepared to do a lot of handholding. Mike Lutz Rochester Institute of Technology P.S. Nothing in this message should be construed as a criticism of Eiffel per set -- I still believe it is one of the most significant developments in software development and engineering in the past few years. It's just that it can be difficult to get across all of its benefits to novices. Mike Lutz Rochester Institute of Technology, Rochester NY UUCP: {rutgers,cornell}!rochester!rit!mjl INTERNET: mjl@csrit.edu --------------------------------------------------------------------------------- From @SEARN.SUNET.SE:PHILBRCK@MAINE.BITNET Fri May 11 05:36:59 1990 Hi, There are a couple of graduate students at Maine who took a look at Eiffel. They were not really impressed. I think you'd get into all kinds of trouble teaching it to undergrads in their second programming course. For specifics, contact: grumpy@alpine.umcs.maine.edu Tell him stevep@alpine.umcs.maine.edu sent you. Lotsaluck, Steve Philbrick University of Maine. --------------------------------------------------------------------------------- Reply-To: <mikero%microsoft%uunet@samsung.com> T I had Eiffel as an Undergrad at RIT. (Maybe they have responded to you already??) In my opinion, it was far too slow to be useful as a teaching aid. (That, of course, was in part due to our hardware. I'd make sure you have horsepower to run Eiffel under... Also, they may have improved the system by now.) If your first language is C, Pascal or Modula, why not go for a nice interpreted environment like Smalltalk or Lisp?? (My personal favorites :) ) mike --------------------------------------------------------------------------------- From: bthpyd!gossett (Eric Gossett) Message-Id: <9005111335.AA04075@bthpyd.bethel.edu> To: collberg@dna.lth.se Subject: Eiffel as a teaching language Status: R Some reasons Eiffel is a good teaching language: 1. the language has preconditions, postconditions, and invariants as native structures 2. ISE provides some useful environment tools (in particular, the class abstracter `short' and the class browser `good') some reasons Eiffel is a poor teaching language: 1. ISE's implementation has poor error reporting (a critical concern for student use) A. The compiler often gives erro messages which are not precise enough for students B. run-time errors cause an exception chain to be printed (nice), but list only the routine names, not line numbers (terrible). C. there is no run-time debugger. the class viewer is insufficient. For --------------------------------------------------------------------------------- From: greg@eemips.tamu.edu (Greg Economides) In response to your question about folks who are using Eiffel as a teaching tool, we haven't begun using it yet for that purpose but we will starting next Spring. I am doing my thesis research using Eiffel right now. My advisor, who will be teaching the class (in the Electrical Engineering Curriculum) wants to see it used before he starts using it as a teaching tool. It is looking VERY good, right now. Unfortunately we have no real teaching experience with teaching it to undergrads right now. However, one senior undergrad just finished a control system project in Eiffel and we were all quite pleased. Regards, %%%%%%%%%%%%%%%%%%%% Greg Economides Internet: zadok.tamu.edu Texas A&M University eemips.tamu.edu "This sentance is false" --------------------------------------------------------------------------------- From: GPIKE%MAINE.BITNET (Gregory G. Pike) Greetings, Sorry it's taken me so long to get back to you, but things have been busy with the end of the semester and all... The work I did with Eiffel was at GTE Laboratories, where I evaluated it as a development language for their projects. As far as a development language, Eiffel is far out of the question. It has many limitations, and the version that is currently shipped is little more than an alpha test of the language (even the example programs that are on the distribution tape won't compile unless you fix them). The tools that come with Eiffel (for viewing class hierarchies and such) are seriously flawed and crash frequently. In short, it's a shity product, considering that it's distributed commercially. As far as using Eiffel for a teaching language, Bertrand Meyer's book (Object-oriented Software Construction) is an excellent intro to object oriented programming and design. Meyer is VERY opinionated, and his book is full of flames against other languages such as Ada and Modula-2. Meyer's book might be a good text for a second semester programming course, and (if you can get it cheap enough) Eiffel may be a good example language for OOP. I would not base an entire course on Eiffel, simply because of the problems with the language; rather it could be used as a primary language in conjunction with langauges such as Smalltalk and Ada to compare language design issues. Ada is used here at UMaine as a primary language in advanced courses, primarily because of its widespread use in government and industry. For the record, GTE Laboratories no longer uses Eiffel as an environment for anything, and I suspect that other companies that are listed in the Eiffel adds have done the same. Talking to Bertrand Meyer was much like talking to IBM; the answer to any question was "That's not a bug! It's a feature!" Best of luck... /*********************************************************************/ /* Gregory G. Pike | GPIKE @ MAINE.BITNET */ /* Dept. of Computer Science | grumpy @ chevette.umcs.maine.edu */ /* 237 Neville Hall | grumpy @ alpine.umcs.maine.edu */ /* University of Maine | grumpy @ porky.umcs.maine.edu */ /* Orono, Maine 04469 | */ /*********************************************************************/ -------------------------------------------------------------------------------- From: "Andreas Hense" <hense@cs.uni-sb.de> I have been using the Eiffel book in a seminar for undergraduates. The seminar was about OOP in general, and while many students had problems with their papers the ones who had to talk about parts of the Eiffel book did very well. Andreas V. Hense Fachbereich 14 Universitaet des Saarlandes Im Stadtwald D - 6600 Saarbruecken 11 Tel.: 0681/302-2464 e-mail: hense@cs.uni-sb.de --------------------------------------------------------------------------------
jwg1@gte.com (James W. Gish) (06/16/90)
In article <1990Jun3.221055.15967@lth.se> collberg@dna.lth.se (Christian S. Collberg) writes: > > From: GPIKE%MAINE.BITNET (Gregory G. Pike) > For the record, GTE Laboratories no longer uses Eiffel as an > environment for anything, ... Sorry, but for the record, Greg hasn't worked here for two years and can't speak for the record for GTE Laboratories. In fact I HAVE used Eiffel extensively at GTE Laboratories since Greg left. Also, please note that Greg used an old version of Eiffel and many of the frustrations that he experienced have been corrected. However, I would agree that the current compiler leaves something to be desired for a teaching environment - the error messages do not give line numbers and may be difficult for novice programmers to understand. The compiler usually gives up on the first serious error - it does not do error correction. This, coupled with a slow edit/compile/link/test cycle and the absence of a source code debugger may easily frustrate students (as well as professionals!) Note, however, the reasons for the slow edit/compile/link: automatic system build facility that computes class dependencies and automatically recompiles (i.e. no make files required), and the brain-dead Unix linker that requires a full link each time instead of allowing incremental changes. ISE is fully aware of the deficiencies of the current implementation and is making efforts to correct them. Keep in mind that the language is clean, elegant, and embodies current concepts of software engineering and could be a great pedagogical tool in the right hands. The class libraries, compiler and tools may prove problematic in the hands of students, who because of their inexperience manage to put software of all kinds to an acid test. I would definitely recommend that Eiffel be taught, but I would be hesitant at this point to assign a whole semester of programming assignments with it unless you are prepared to do a modest amount of hand-holding (so what else is new with programming courses? :-) ...just my humble opinion -- Jim Gish (jgish@gte.com)
tonyo@batserver.cs.uq.oz.au (Tony O'Hagan) (06/28/90)
jwg1@gte.com (James W. Gish) writes: >In article <1990Jun3.221055.15967@lth.se> collberg@dna.lth.se (Christian S. Collberg) writes: >I would definitely recommend that Eiffel be taught, but I would be >hesitant at this point to assign a whole semester of programming >assignments with it unless you are prepared to do a modest amount of >hand-holding (so what else is new with programming courses? :-) For your interest ... Andreas Rosel and I have just completed a new undergrad course titled "Object Oriented Software Construction" which included teaching Eiffel and Zortech C++ . I agree with your comments about hand holding. Most students liked Eiffel but hated the slow developement environment. Security was also an issue at the start with Eiffel libraries directories having to be writeable. Tony O'Hagan -- Tony O'Hagan Phone: +61 7 223-2868 Fax: +61 7 229-1510 School of Computing Science, Queensland University of Technology, GPO Box 2434, Brisbane, AUSTRALIA 4001. tonyo@earth.qitcs.oz UUCP: ...!uunet!munnari!earth.oz!tonyo