[comp.edu] Using assembly lang... what about Scheme?

emo@iuvax.UUCP (06/09/87)

From: Eric Ost <emo@iuvax.cs.indiana.edu>

Greetings,

I am wondering how many people are using the programming language Scheme
in introductory computer science and electrical engineering courses?
I know of a few schools (and have learned about a few more in recent
responses) that are, but how widespread is this interest?
In addition, what types of hardware are, or would be, used for such
a course?  Are CS departments aware of the (ever lowering) low-cost
of systems such as those offered by Commodore, Atari, Apple, and others?
Might these not make perfect programming environments for beginning
computer science and electrical engineering students?

Scheme programs are built from an easy to learn syntax and provides
a vehicle for the programming of many different computational paradigms.
As for the integration of routines written in a particular assembly
language, some of the currently available implementations of Scheme
offer this as a documented feature, e.g. MacScheme and MacScheme+Toolsmith.

The first programming language that I learned was UCI Lisp that ran
on a DEC-10 (accessed via a 300 baud TRAN telephone link) in 1979.
I then learned Pascal followed by 6809 assembly language.  C came into
view only several years after beginning to study computer science.
I am very much in favor of using interactive programming languages,
such as Scheme, in introductory courses.  However, it is mandatory
that students also know what is happening in industrial settings
for this is (probably) where they will be working after graduation.
Scheme provides a way to teach the fundamentals before progressing
to the conventional languages, e.g. C, Pascal, Modula 2, etc.
Students will become familiar with the abstract notion of what
computation is rather than being initially burdened with also
figuring out how this abstract notion is implemented in today's
computing systems.  It's not that Scheme forbids one from gaining
this knowledge, but rather that it is easier to concentrate on
the "whats" rather than the "hows" in such introductory contexts.
Remember, computing systems will continue to change and evolve.
I believe that it is equally important to understand both 
"what" computation is (i.e. what you want to do) as well as
"how" to implement it (i.e. how to do it) given today's computing
hardware.  But, you have to know what you are looking for before
you'll be able to recognize that you've found it.

For those who are interested in more information concerning Scheme,
please refer to the most recent description of the language
published in the December issue of ACM's SIGPLAN Notices.  The
article is entitled "Revised^3 Report on the Algorithmic
Programming Language Scheme" edited by Jonathan Rees and William
Clinger.  This is also available as an A.I. Lab Memo (#848) from MIT 
as well as a technical report (#174) from the Computer Science Department 
at Indiana University.

eric

#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t#f#t

Eric Ost		     CSnet:   emo@indiana
Computer Science Dept.       Usenet:  emo@iuvax
Indiana University           Arpanet: emo@iuvax.cs.indiana.edu
Bloomington, Indiana 47405
(812)-335-5561