[net.lang.mod2] modula-2 classes summary

jsq@ut-sally.UUCP (John Quarterman) (11/04/84)

I posted this question a couple of weeks ago:

	Message-ID: <41@ut-sally.UUCP>
	Date: Thu, 18-Oct-84 14:34:38 CDT

	What schools are teaching courses on or in modula-2,
	what is the content of the courses (introductory programming,
	operating systems, etc.), and what compilers are being used in them?
	Would the instructor of the course be interested in communicating
	with others elsewhere teaching courses involving modula-2?

Here is the summary.  There were not enough responses to draw many
conclusions, but perhaps the various instructors would be interested in
exchanging information.  Mail from England is sometimes extremely
garbled, and there were no responses (surprisingly) from the continent
of Europe or Australia (maybe they don't get net.lang.mod2).

Number of courses by (broad) area: programming:  5;  operating systems:  3;
	data structures:  1; compiler design:  1; software engineering:  1.

I have not included Len Tower's information on private sector seminars
in the above numbers because it wasn't obvious how to fit them in.  His
summary is the first mail message quoted whole below, and after it are
messages from other people, in the order of the brief list immediately
below.  Since no one explicitely said whether or not they would be
interested in communicating with others teaching modula-2, I have
assumed that all addresses were intended for inclusion in the summary.
Apologies if anyone wanted to be anonymous.


school
instructor			courses			compiler
address

U. Washington			first year programming		?
Richard Pattis			second year programming		?
<PATTIS@WASHINGTON.ARPA>

U. North Carolina, Chapel Hill	operating systems		?
Rick Snodgrass			compiler design (eventually)
seismo!decvax!mcnc!unc!rts

Imperial College of Science and Technology
180 Queensgate, London SW7 2BZ England
seismo!mcvax!ukc!kcl-cs!ic-cs!susan	programming		M2M
and someone else (in E.E.)	real time programming		M2M

Georgia Tech.
Prof. Kim King			software engineering		?
gatech!gitpyr!kim

cal poly - slo
jim beug			eventually			?
trwrb!csuslo!jlb0016

University of Reading, UK
Adrian Pell			operating systems	New South Wales M2
{mcvax,edcaad}!ukc!ru-cs44!adrian

U. Texas Austin			programming			decwrl
Jeff Brumfield			data structures			decwrl
jab@ut-sally.ARPA		operating systems		decwrl
{ihnp4,seismo}!ut-sally!jab


Here are the actual mail messages, with superflous headers deleted.
In some cases, I have had to munge From headers to something that
approaches a UUCP route that would actually work for return mail.
Where the organization was not obvious from the text or headers of a
message, I have added an appropriate Organization: header with
information from the Internet, USENET or UUCP maps.

Once again, I have assumed that if you sent me a message, it was for
inclusion in the summary, and apologies if I offend anyone by doing so.


>From inmet!tower@ihnp4.UUCP Wed Oct 24 08:09:52 1984
Date: 24 Oct 84 07:42:59 CDT (Wed)
Subject: Re:  Modula-2 classes

Here is an excerpt from a recent study I did.
Awaiting your summary to the net.

-len tower		UUCP:     {ihnp4,harpo}!inmet!tower
 Intermetrics, Inc.	INTERNET: ima!inmet!tower@CCA-UNIX.ARPA
 733 Concord Ave.
 Cambridge, MA  02138	(617) 661-1840
 U.S.A.


     Training Seminars

     Training Seminars have started to appear on Modula-2.  The
     titles, lecturers, and sponsoring organizations have been:

             Modula-2: An Alternative to Ada
             Lecturers: unknown

             Software Engineering with Modula-2
             Lecturers: unknown

             Continuing Education in Engineering
             University of California Extension
             2223 Fulton Street
             Berkeley, CA  94720

             Modern Software Engineering Using Object-Oriented Design
             and Modula-2
             Lecturers: Dr. Richard F. Sincovec
                        Dr. Richard S. Wiener

             Western Software Development Seminars
             c/o Journal of Pascal, Ada & Modula-2
             P.O. Box 384
             Orem, UT  84507


     The existence of these seminars indicate that Modula-2 is
     maturing as a language, and is being used by many software
     developers.



>From: Richard Pattis <PATTIS@WASHINGTON.ARPA>
Date: Sat 20 Oct 84 19:56:45-PDT
Organization: University of Washington
Postal-Address: Department of Computer Science, FR-35
		Seattle, Washington 98195


Hi,

I just saw your net note about modula-2.  This is a slightly modified copy
of a note I sent to John Brumfield.  I'm teaching Modula-2 here at UW, to
mostly first and second year students (in their first programming course).
I'm a bit bored with Pascal, and I want to see if I can recreate the
jump in power that occured between assembled and compiled languages.

I am going to experiment this quarter, and teach a very object oriented
approach to the subject.  For example, even the basic types (INTEGER,
BOOLEAN, etc) will be discussed as abstract types, with appropriate
operations.  I hope that this will promote a very uniform approach towards
learning new things, and focus on new data-objects and their operations, as
opposed to control structures and the programming methodologies that their
focus highlights (e.g., stepwise refinement).

Given enough time to implemenent things, I'd like to teach students how to
conceptualize/use objects like arrays (yes, not as a new, built-in
syntactic feature, but as a new object with operations like Create, Get, Put,
etc.), sorted-lists, windows, trees, etc., all done as abstract types.
For examples, completely covering trees and recursion fairly early, without
explaining pointers (using operations like FollowLeftSon or CreateLeftSon).
Of course, we could use pointers as a blackboard notation for talking about
trees, but we can also use an embedding notation, like that of pure recursive
data structures (this sounds vague, I know).  Decisions like this cause me to
exclude infix operators (they don't generalize, and procedures and functions
are more important anyway), and replace FOR loops with builtin generators for
each new object.

I'm interested in hearing any comments and observations you have about
Modula-2 and teaching.  Do you know others using it in a first programming
course?  For another, I've been reviewing Modula-2 books in which the authors
write generic modules that totally subvert type-checking (they are unreadable
to novices, and look to me alot like C hacking).  Do you consider this
approach to be in the spirit of the language?  I'm currently trying to
discover an easy way to allow students to plug together modules in a 
software engineering fashion, but to retain type checking (for example,
wiriting a rational package that one can create from INTEGERs or a package
of InfPrecsionIntegers).  I'm still fighting this battle.  It looks like the
module feature is more geared towards breaking down a large project into
sub-projects than to creating a library of useful objects.

Well, if you're interested in any of these issues, I'm looking for someone,
with more experience, to bounce ideas off of.  I am going to be teaching the
same course every quarter for 2 years, so I'll have pleny of chances to
experiment and get my notes into shape.  Actually, I hope to have everything
pretty well written by Fall next year.

Richard
-------


>From seismo!decvax!mcnc!unc!rts Sun Oct 21 18:18:41 1984
Original-From: Rick Snodgrass <rts@unc>
Organization: University of North Carolina, Chapel Hill
Postal-Address: Chapel Hill, NC 27514

I will be using Modula-2 in my operating systems course--we have two
simple operating systems written in Modula-2 that run on a simulated
Mcode machine.

We also plan on using Modula-2 in our compiler course, but that is
a ways off.

I would be interested in receiving a summary of the responses you
receive from your query.
			Rick Snodgrass


>From seismo!mcvax!ukc!kcl-cs!ic-cs!susan Mon Oct 22 14:24:25 1984
 [ if there was a real name in the header it was lost in transmission  -jsq ]
Date:     Mon, 22 Oct 84 11:49:35 GMT
Organisation: Dept of Computing, Imperial College of Science and Technology
Postal-Address: 180 Queensgate, London SW7 2BZ England

I teach Modula 2 as a first programming language to computer science students.
The students are extremely bright (probably comparable to MIT or CalTech) and
virtually all come in with a fair bit of programming experience. I use my own
material (its filled with data flow design stuff) and a version of M2M that
runs under Berkeley Unix.  I'd like to get Powell's compiler but haven't
got it yet.  The course consist of two lectures a week for 22 weeks and
doesn't use the low level stuff from M2.  Another member of staff teaches
M2 to M.Sc. students in EE and Robotics in a real time programming course.


>From ihnp4!clyde!jona Tue Oct 23 12:08:14 1984
Date: Tue, 23 Oct 84 09:34:31 edt

You may want to contact Prof. Kim King at the Georgia Institute of Technology.
I took a special topics course called "Software Engineering with Modula-2"
from him and know that he is very interested in Modula. I believe he is
even working on a textbook for Modula-2. You can probably make contact 
through the net to GaTech or get in touch with the school: 
  School of Info & Comp Sci
  Georgia Institute of Technology
  Atlanta, GA  30332

                                    Jon Allingham
                                    ATT Bell Laboratories
                                    Whippany, NJ  07981

[ gatech!postmaster says Prof. King's address is gatech!gitpyr!kim,
	but I've gotten no response from it.  -jsq ]


>From ihnp4!scgvaxd!trwrb!csuslo!jlb0016 Sat Oct 27 14:49:14 1984
Date: Sun, 21 Oct 84 01:54:42 pdt
Organization: California Polytechnic State University
Postal-Address: San Luis Obispo, CA 93407

dept of computer science at cal poly - slo is not yet, but would like to teach
modula2. we need a compiler (unfortunately it should run on the cyber 170
series and a text. we would like to see your results when you are done.

jim beug
..!trwrb!csuslo!jlb0016


>From seismo!mcvax!ukc!ru-cs44!adrian Tue Oct 30 04:50:57 1984
Date:     Mon, 29 Oct 84 10:26:15 GMT

Here in the Computer Science Department of University of Reading,
we use Modula-2 for teaching systems programming.  The language is
used as a vehicle for developing small standalone operating systems
to run on LSI-11's.  All programs are compiled on a PDP11/44 running
V7, using the New South Wales M2 compiler.

Whilst the overhead introduced by the context switching (especially
in the handling of interrupts) would be prohibitive in a production
environment, it is just about acceptable in a teaching envt., and
allows us to concentrate on the high-level design of op. sys. without
getting too tied up in the hardware interface.

I'm always interested in other peoples experiences with M2.
Adrian Pell		({mcvax,edcaad}!ukc!ru-cs44!adrian)
Computer Science Dept.
University of Reading
UK


Date: Thu, 18-Oct-84 14:34:38 CDT
>From: John Quarterman <jsq@ut-sally.UUCP>
Organization: CS Dept., U. Texas at Austin
Postal-Address: Austin, Texas 78712 USA
Newsgroups: net.lang.mod2
	[ this sentence was in my original posting  -jsq ]

There is one medium-level one-hour programming course here that teaches
modula-2, using Powell's compiler, mostly to people familiar with PASCAL.


Date: Wed, 24 Oct 84 17:10:04 cdt
>From: jab@ut-sally.UUCP (Jeff Brumfield)
Organization: CS Dept., U. Texas at Austin
Postal-Address: Austin, Texas 78712 USA

When you compile your list of Modula-2 courses, you might mention that
in addition to this semester's Modula-2 course I will be using Modula-2
in my data structures course spring semester and in undergrad operating
systems the next time I teach it.
-- 
John Quarterman, CS Dept., University of Texas, Austin, Texas 78712 USA
jsq@ut-sally.ARPA, jsq@ut-sally.UUCP, {ihnp4,seismo,ctvax}!ut-sally!jsq