LISP TUTORIAL
LISP TUTORIAL (Document)
By Eduardo Villamil
Abstract
The process of learning the LISP language is a bit difficult at the beginning,
especially for those people who have no experience with functional languages.
On the other hand, the fact that multimedia tools have become more accessible
encourages the production of a multimedia tutorial to help this learning
process.
LISP TUTOR is a World Wide Web tutorial that guides the student in the process
of learning the LISP language. It consists of several chapters that collect
the most important features. In each feature it interacts with the student
giving him/her an immediate feed back about him/her learning process; in this
way that the student can check him/her understanding of the material
that he just learned before going on to another topic.
At the end, the tutorial presents an On-Line TEST to be answered by
the student and returns the corresponding grade when the student finishes and
hands in the test.
The features, as the dynamic scoping, that give powerful capabilities to the
language and make Lisp not just another language to write programs, are not
presented here because it is better if it is learned when the student is more
familiar with the language.
It will be responsability of the student to research about it when
finishes with this tutorial; one way to begin the research is trying to find
out how to pass a function as a parameter to another function.
CONTENTS
Objectives
- Present a prototype for a multimedia application that is
implemented using the common tools available and give
guidelines to develop similar useful applications.
Show the use of the prototype as a client in client/server
system where the server can be a database engine, a C program
etc., leading the interaction problem to the multimedia
viewer, in this case the WWW browser.
- Implement a Tutor that teaches the basic concepts of LISP and
helps the student understand the development of programs using
LISP language. Allow the student to decide what topic and in which
order he wants to learn about LISP. Even though the topics are presented
as chapters, they can be reached in any order through the teacher
board. Also we can have the case in which the student requirs a
specific point within the topic, like the syntax of a function.
In this case the tutorial takes the role of a (small) reference manual.
SPECIFICATION PHASE
- Define the main topics that a student will need to begin programming
in LISP. It has been taken into account the topics that a regular student
(such as myself)
requirs when beginning to write the first Lisp Program. such as to define
variables, control structures, input/output, etc. For that reason it does
not intend to be comprehensive of all the Lisp features.
- Definition of the type of interaction required to provide
immediate feedback to the student. Definitely, we need some
interaction with the student in order to clarify his understanding of
topics, but the issue here is how to do it.
- One possibility is
to explain the material to the student, give him some examples
and ask the student to go to the Lisp Interpreter and do some
exercises, and trust that he will do it.
- It is also possible that the tutorial makes easier the student's
life by opening a new window with the Lisp interpreter and keeping it
in parallel waiting for the student to type the exercise.
- In this scenario, the tutorial explains the material, gives the
student some examples and help him to write some exercises.
Then the tutorial takes the exercise text written by the student and
interacts with the Lisp Interpreter to see the results.
- Study the option of an implementation using a Hypertext language
.
- Explore the ways to interact with another application (like a
LISP compiler).
Three types of interaction have been used:
- Interaction between the tutor an a C-program to check the
atoms that the user provides.
- Between the tutor and the compiler without preprocessing
the text given by the user. With that interaction the user
becomes familiar to the compiler.
- Between the tutor and the Lisp Compiler but preprocessing
the text given by the user to make it easier to understand
how to use the compiler.
- Try to evaluate the benefits of the LISP TUTOR.
- Prepare a QUIZ to be answered by the student and see how the
student improved his LISP skills. It has to be comprehensive in all
the topics that the Lisp Tutor has. In that way the student can see
if he/she has learned the material when he/she receives the results
of the test.
- Grade the TEST and store it to have the source of statistical
results using the level of expertise in Lisp programming and
also the time that the student spent using the tutorial (At this
time, it is too early to produce this results).
villamil@eecs.tulane.edu