[comp.lang.eiffel] Eiffel for undergrads - summary

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