[net.ai] Course Announcement -- Lisp: Language and Literature

BrianSmith.PA@PARC-GW.ARPA (03/22/84)

         [Forwarded from the SRI CLSI bboard by Laws@SRI-AI.]

The following course will be the CSLI Seminar on Computer Languages
for the Spring Quarter [at Stanford].  If you are interested in attending,
please read the notes on dates and registration, at the end.

                Lisp: Language and Literature

A systematic introduction to the concepts and practices of programming,
based on a simple reconstructed dialect of LISP.  The aim is both to
convey and to make explicit the programming knowledge that is
typically acquired through apprenticeship and practice.  The material
will be presented under a linguistic reconstruction, using vocabulary
that should be of use in studying any linguistic system.  Considerable
hands-on programming experience will be provided.

Although intended primarily for linguists, philosophers, and
mathematicians, anyone interested in computation is welcome.  In
particular, no previous exposure to computation will be assumed.
However, since we will aim for rigorous analyses, some prior familiarity
with formal systems is essential.  Also, the course will be more like a
course in literature and creative writing, than like a course in, say,
French as a second language.  The use of LISP, in other words, will
be primarily as a vehicle for larger issues, not so much an object of
study in and of itself.  Since LISP (unlike French) is really very
simple, we will be able to teach it in class and lab sessions.  Tutorial
instruction and some individual programming assistance will be provided.

Topics to be covered include:

   -- Procedural and data abstraction;
   -- Objects, modularity, state, and encapsulation;
   -- Input/output, notation, and communication protocols;
   -- Meta-linguistic abstraction, and problems of intensional grain;
   -- Architecture, implementation, and abstract machines;
   -- Introspection, self-reference, meta-circular interpreters, and reflection.

Throughout, we will pay particular attention to the following themes:

   -- Procedural and declarative notions of semantics;
   -- Interpretation, compilation, and other models of processing;
   -- Implicit vs. explicit representation of information;
   -- Contextual relativity, scoping mechanisms, and locality;
   -- Varieties of language: internal, external, theoretical;
   -- Syntax and abstract structure: functionalism & representationalism.

Organizational Details:

   Instructor: Brian C. Smith, Xerox PARC/Stanford CSLI; 494-4336 (Xerox);
      497-1710 (Stanford), "BrianSmith@PARC" (Arpanet).

   Classes: Tuesdays and Thursdays, 2:00 - 3:30, in Room G19, Redwood
      Hall, Jordan Quad.

      NB:  Since we will be using the computers just now being installed
      at CSLI, there may be some delay in getting the course underway.
      In particular, it is possible that we will not be able to start until
      mid-April.  A follow-up note with more details will be sent out as
      soon as plans are definite.

   Registration: Again, because of the limited number of machines, we
      may have to restrict participation somewhat.  We would therefore
      like anyone who intends to take this course to notify Brian Smith
      as soon as possible.  Note that the course will be quite demanding:
      10 to 20 hours per week will probably be required, depending on
      background.

   Sections: As well as classes, there will be section/discussion periods
      on a regular basis, at times to be arranged at the beginning of the
      course.

   Reading: The course will be roughly based on the "Structure and
       Interpretation of Computer Programs" textbook by Abelson and
       Sussman that has been used at M.I.T., although the linguistic
      orientation will affect our dialects and terminology.

   Laboratory: Xerox 1108s (Dandelions) will be provided by CSLI, to be
      used for problem sets and programming assignments.  Instructors &
      teaching assistants will be available for assistance at pre-arranged
      times.

   Credit: The course may be listed as a special topics course in Computer
      Science.  However (in case that does not work out) anyone wishing
      to take it for credit should get in touch, so that we can arrange
      reading course credit.