[comp.object] Teaching an Object-Oriented Programming Course - Need Your Help

pcg@cs.aber.ac.uk (Piercarlo Grandi) (09/14/90)

On 10 Sep 90 04:08:59 GMT, mariam@unocss.unomaha.edu (mariam) said:

[ incidentally, I have redirected followups to comp.object, and removed
comp.std.c++ from the cross post list, because it was wholly
inappropriate ]

mariam> First, on the language to be used: Based on your
mariam> experience/knowledge, which OO language do you suggest?

It depends on which languages your students already know -- I hope the
course would be an OO programming course, not an OO language course, so
minimizing language learning efforts would be important.

It depends on which machines you have and how much you can pay for a
compiler.

Let me give you some preferences: if you unlimited machine power, UNIX,
and loads of money, and are inclined towards classical things, get PARC
Place Smalltalk-80. If you have MACs, get Simula-67. If you have PCs,
get either Borland Turbo C++, or XScheme. If you have normal UNIX
workstations and want something cheap, get GNU C 2.0 and teach
Objective-C (preferably) or C++. If your students know Lisp, get T or
XScheme (preferably) or CLOS (ugh!).


mariam> Several languages are fairly popular: C++, SmallTalk,
mariam> Actor (not Hewitt's but the one from the Whitewater group).

I would hardly call Smalltalk or Actor "popular", especially in
industry; they are (small) niche languages, right or wrong it may be.

mariam> But C++ seems to be the most popular, especially in the
mariam> industry. Am I right? 

I would not recommend C++ unless the students are already well versed in
C; it also is a particular OO language, in that most other OO languages
are quite different. Smalltalk is classic, but hardly popular in
industry.

There are other possibilities; if your students are familiar with Lisp,
you could use T from Yale, which is an OO Scheme, and very elegant. Or
XScheme from Dave Betz, which has OO extensions to Scheme. Both are
free. You can also get CLOS, which is however I think too large and
difficult to teach as first OO language. But again, if your students are
accustomed to Common Lisp, nothing will overwhelm them.

Another good idea would be the prototypical OO language of them all,
Simula 67. There are many ideas in Simula 67 that have not appeared in
other mainstream languages.

Another possible choice would be Objective-C; it is far simpler than
C++, and more mainstream OO.

You could go for Eiffel. Eiffel is very OO, has a full design philosophy
behind it, and is fairly portable. I don't like some of the design
decisions though.

If you want something really elegant and exceedingly rare and snobbish,
get MDL, an OO language of its own, from MIT.

Another possibility would be Oberon or Modula-3, even if they are not
wholly OO.

mariam> Now, if I choose C++, where would I get a free/inexpensive
mariam> C++ compiler? (We only have SmallTalk and G++ languages.)

I think that if you have PCs the best bet is Borland's Turbo C++; to
Universities it is sold for a few dozen dollars per copy.

For Unix G++ cannot be beaten as to cost/benefit, or even benefit alone.

As to Smalltalk implementations, UNIX ones are fairly resource hungry;
there are a couple of slow but free ones from Berkeley and some UK
University, but you need to have a Xerox Smalltalk license. Otherwise
you can use PARC Place's very good one, but it is fairly expensive, even
at academic prices. For PCs you can get PARC place again (still
expensive), or get Digitalk's Smalltalk-V (good and cheap). There are
also some MAC implementations.

T can be had from Yale for free, and runs on most common Unix
workstations. XScheme is available for free from many servers, and is
portable to nearly everything. CLOS can be had for free with many Common
Lisp implementations; or you can get AKCL for Lisp and then load PCL
from Xerox into it (both are free). Or you can buy Allegro CL for MACs,
and it includes a CLOS port. Any CLOS implementation will require
*large* quantities of memory.

For Simula 67 there is a free high quality compiler for MACs and Ataris
(I do not know about PCs), from many servers.

For Objective C, you can get it from Stepstone at academic prices for
nearly any machine, or if you have NeXTs it is included, or you can wait
for GNU C/Objective-C/C++ 2.0, a compiler that will support all three
languages.

Eiffel implementations are only available from Eiffel, and they are
resource hungry and expensive.

MDL has been ported to many machines; I think it can be obtained fairly
easily from the MIT LCS, the Programming Research Group.

For Oberon you can have free Mac and Sun implementations. For Modula-3
there is a free compiler that emits C source for most UNIXes, available
from DEC.


Note: this list of possibilities is far from exhaustive. I don't think I
need to say that comments are welcome.
--
Piercarlo "Peter" Grandi           | ARPA: pcg%uk.ac.aber.cs@nsfnet-relay.ac.uk
Dept of CS, UCW Aberystwyth        | UUCP: ...!mcsun!ukc!aber-cs!pcg
Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk

timm@runxtsa.runx.oz.au (Tim Menzies) (09/21/90)

There's been some talk in this group about lack of Smalltalk applications.
Whatever the past situation has been,  I'd expect to see more Smalltalk/V
applications in the near future. Smalltalk/V PM and the soon-to-be-released
Smalltalk V/ Windows are tools that let a programmer make sense of the
nightmaring horror that is Windows 3 and the presentation manager. As 
evidence of this, consider this: IBM
has designated Smalltalk V/PM as a "strategic internal product". 

In general, as more and more users fall in love with Mac-style interfaces,
and more and more change requests emerege that amount to "make it look like
a Mac please", programmers will have to use high-productivity tools to manage
GUIs. Enter Smalltalk V/PM and Windows 3.0. As far as the IBM-micro world
goes, I don;t know anything that beats it.

But I shouldn't get carried away. The big question in my mind is "will
Smalltalk V/Windows code be compatiable with Smalltalk V/PM code?". If not,
boo-hiss.

--
 _--_|\  Tim Menzies (timm@runxtsa.oz)         #include usual.disclaimer
/      \ HiSoft Expert Systems Group,          "Its amazing how much
\_.--._/ 2-6 Orion Rd Lane Cove, NSW, 2066      'mature wisdom' resembles
      v  02 9297729(voice),61 2 4280200(fax)    being 'too tired'."

klimas@iccgcc.decnet.ab.com (09/25/90)

> But I shouldn't get carried away. The big question in my mind is "will
> Smalltalk V/Windows code be compatiable with Smalltalk V/PM code?". If not,
> boo-hiss.
	Digitalk claims it will be.  Let's hope it's more than the
	"Compatibility with Smalltalk/V on PC and Macintosh" to date. 

klimas@iccgcc.decnet.ab.com (09/26/90)

As this topic seems to be getting some net bandwidth, I'd like to call
peoples attention to an article in Digitalk's newsletter called Scoop.
The article "Carleton University uses Smalltalk/V-286 as first programming
language" by John Pugh, Director, School of Computer Science, Carleton
University (Ottawa Canada). Some highlights....

Carleton has reengineered its computer science curriculum to use Smalltalk as
the introductory programming language for all Computer Science majors....

A concern with Smalltalk is the lack of good textbooks.  For some schools this
could be a problem.  Fortunately Carleton has a prominent research group in OOP
and therefore considerable Smalltalk experience is avaialable.  We were willing
to develop our own course materials although we are eagerly awaiting new books
on the horizon.....

Our experience with Smalltalk has been extremely positive... Students with
prior high school programming experience are no longer bored.  The
availablility of the class library has permitted assignments of a much more
realistic nature....

...the use of Smalltalk has allowed instructors to focus on more real-world
problem solving than on abstract computer science problems.


<As a personal asside, we have seen summer students from high school (allbeit
they're rather bright) develop Coad\Yourdon type case tools in Smalltalk in a 
few weeks!>