Learning Lisp from Franz
Wednesday, December 14, 2005
For some time,
Franz have offered an online
"Allegro CL Certification Program" which teaches both Lisp programming
(in general) as well as some specifics on the Allegro toolset. The courses are
very good and cover a lot of material. I attended a classroom version
of the Intermediate (Level II) training a few years ago and was
impressed by the quality of both the instruction and instructor. Now, they
are offering both scheduled, online versions of the training as well
as pre-recorded training that you can watch in your own time. The
following movie snippet (reproduced with permission) shows a few
slides from one of the sessions (this one deals with method combinations
and the class precedence list):

Their training is pretty comprehensive. There are three separate
courses, with each course
being an increased level of
difficulty. Each course consists of three, two-hour weekly sessions and
includes lecture and
homework assignments
(the homework
assignments are reviewed in
class but not handed in).
The 3 different levels are:
- Lisp Programming Series Level I: Basic Lisp Essentials
- Session 1:
- Overview of Lisp: Explains the history of Lisp and discusses some of the features that make it uniquely suited to doing rapid programming of large and complex systems
- Coding Style in Lisp: Indentation, naming conventions, and comments
- Compiling and Running Code using the IDE
- Evaluation of Lisp forms
- Defining functions
- Assigning values to variables
- Session 2:
- Control flow: conditionals and non-local exit
- Special and Local variables
- Iteration and recursion
- Packages
- Session 3:
- More about lists
- Numbers
- Arrays, Sequences, and Strings
- Streams, Pathnames and File I/O
- Session 1:
- Lisp Programming Series Level II: Specialized Components of Lisp
- Session 1:
- Using and calling functions, including &key, &optional, &rest arguments, as well as funcall and apply
- Structures and Hash Tables
- Bits and bytes
- Macros
- Closures
- Session 2:
- Using the Common Lisp Object System (CLOS)
- Classes, instances, and slots
- Methods and Generic Functions
- Inheritance and class precedence lists
- Multiple dispatch
- Session 3:
- Performance considerations with CLOS
- Garbage collection
- Error conditions and error handling
- Building interfaces on Windows using the IDE
- Session 1:
- Lisp Programming Series Level III: Advanced Functions of Lisp
- Session 1:
- TBD
- Session 2:
- TBD
- Session 3:
- TBD
- Session 1:
If someone wanted to learn Lisp from scratch and hit the ground running, these classes would provide a good way to do that. In 2 days (using the pre-recorded versions of the classes), you could get through all of the Level I and Level II material and would be ready to start learning some Practical Common Lisp.

