[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon May 2 08:58:55 1997 
Subject:Re: teaching text 
From:Aaron Sloman See text for reply address 
Volume-ID:970502.02 

[Apologies for bogus email address to defeat bulk email advertisers.
See signature for reply address.]

Hi Terry,

terryd@cit.gu.edu.au (Terry Dartnall) writes:

> X-Relay-Info: Relayed through cs.bham.ac.uk MAIL->NEWS gateway
> Date: 29 Apr 1997 21:32:29 GMT
>
> I'm looking for something a bit different to Iain McKay (actually I'm
> not looking for anything remotely like him, since I'm looking for a
> book).
>
> I need a teaching text for first and/or second year AI (a cog sci flavour
> is optional), that uses Pop.  Mike Sharples' Computers and Thought isn't
> as young as it used to be.  Is there a successor?

I find that students, including MSc students on our Cognitive
Science introductory Pop-11 course, still really like the Sharples et.
al. book as an introduction to computational cognitive science/AI.

There's also:
Chris Thornton \& Benedict du Boulay (1992)
    {\em Artificial Intelligence Through Search }
    Kluwer Academic (Paperback version Intellect Books)
    Dordrecht Netherlands & Norwell, MA USA (Intellect at Oxford)
    ISBN 1-871516-24-2
    ISBN 0-7923-1868-4
    (Uses both Pop-11 and Prolog for all its examples.)

Both books use "old" pop-11 which assumes that dynamic variable
binding is the norm for input and output locals. A more up to date
overview of Pop-11 for people with some programming experience is in
my Primer which is available from the Birmingham Poplog FTP site
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog
in several formats (plain text, postscript (single page or double
page printing), latex.

However this is not an introduction to AI, and unfortunately it has
very few exercises, and no specimen answers. It's also by no means a
complete overview of Pop-11, and the section on object oriented
programming is very small.


> ....If not, how do people
> teach AI/cogsci in Pop11 these days?

Many of the students I teach have no previous programming
experience, so they have to start by learning to program. I have
revised a lot of the Pop-11 teach files that I used to use at
Sussex. The new versions, and associated code libraries are all
available via the Birming Poplog ftp site in the teach, help, auto,
and lib subdirectories. I've put together a selection of them in
a compressed tar file for our students using linux poplog on their
home computers, in
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/linux/bhamteachtar.gz

which you are welcome to copy. My introductory sequence includes the
following, which not all students can manage in a semester along with
all their other courses, though some of the brighter ones get beyond
this:

    1. get used to VED and email. (Can take as long as two weeks)

    2. TEACH RIVER (i.e. solve the river crossing problem, then
        express the solution in Pop-11 using a library of
        relevant high level procedures). This introduces
        basic programming ideas (instruction sequences, procedures,
        subroutines, variables, errors) and some ideas about knowledge
        representation (using lists to represent facts)
        People with previous programming experience can play with
        TEACH GSTART, to learn about pop-11's graphics and a taste of
        list processing.

    3. TEACH RESPOND (introduction to a simple eliza, which
        introduces more programming concepts, e.g. conditionals,
        loops, handling user interaction, pattern matching, pattern
        variables, creating lists, strings)

    4. TEACH RIVER2 (more programming constructs including explicit
        manipulation of the database to represent information,
        checking preconditions and consequences of actions,
        iterating over the database for various purposes,
        documenting programs)

    5. TEACH RIVERCHAT (combining the previous two in order to
        produce an English like interface to a program that
        manipulates a representation of a domain. Can introduce
        the notion of a compiler or interpreter.

    6. TEACH GRAMMAR: introduces the notion of a formal grammar
        to show the limitations of the eliza-like approach, and
        begins to illstrate concepts of parsing, parse tree, as well
        as the use of a grammar to generate sentences

    7. TEACH TOWER: introduces combinatorial searching with a simple
        example and shows how to implement various kinds of searching
        strategies in a uniform framework (depth first, breadth first,
        best first, etc.) and also introduces ideas of heuristics

    8, TEACH SEARCHING: generalises the above to show how to
        produce a general purpose search engine which can be applied to
        different problems with different kinds of heuristics, etc.
        An exercise is to use the search engine to create a program that
        finds a solution to the river crossing problem: an introduction
        to planning

    9. There are then several files that introduce rule-based
        programming on problems of increasing sophistication, including
        simple expert systems and another planner to solve the river
        crossing problem. I now use Poprulebase rather than prodsys for
        this as although it is far more powerful than necessary at this
        stage it is useful for more sophisticated tasks later on, and
        can also be a lot more efficient.
        See TEACH RULEBASE, TEACH POPRULEBASE. The poprulebase system is
        in the ftp directory in the prb/ subdirectory or
            ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/prbtar.gz

    10. Brighter students can also begin to learn about object oriented
        programming using Objectclass, via teach oop, teach
        advent_objectclass, which provides the framework for a simple
        adventure game with interacting agents. The really advanced
        students can then go on to learn about the sim_agent toolkit,
        which combines rulebased programming with object oriented
        programming.
        See TEACH SIM_AGENT, TEACH SIM_DEMO. The sim_agent stuff is
        in the sim/ subdirectory of the ftp site, and in
            ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/simtar.gz
        The toolkit provides a framework for project work involving
        "complete" interacting agents with quite complex internal
        processing, e.g. separate concurrent planning, perceiving,
        motive generation, etc. For an overview see
            http://www.cs.bham.ac.uk/~axs/cog_affect/sim_agent.html

    11. Riccardo Poli has some teaching materials introducing Genetic
        Algorithms and Evolutionary computation in Pop-11. If desired
        I can ask him to make these available at our FTP site.

    12. To develop fluency with list processing so that students can
        build their own inference engines etc. when necessary I've
        updated the following files
            TEACH SETS, TEACH SETS2 (with answers), TEACH RECURSION
        all in the above directories and bhamteachtar.gz

    13. To help students who want to build sophisticated graphical
        interfaces (without having to fight propsheet) I've now added
        a lot of high level graphical stuff, including buttons, menus,
        pop-up text displays, moving pictures, etc. all based on
        rc_graphic windows and objectclass.
        This, as mentioned in an earlier message, is in the rclib/
        subdirectory and this compressed tar file:
            ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rctar.gz
        I am still adding things to this regularly. Parts of it are used
        in the sim_agent tutorial, e.g. to show the movement of
        simulated agents. The most recent additions involve a variety
        of types of buttons for menus or asynchronous control of running
        programs.

Addtional Notes:
1. There's quite a lot more stuff in the ftp directory, e.g. an updated
version of the strips demonstration program (lib newsolver, referred
to in TEACH NEWSOLVER), and a brief introduction to rule-induction
TEACH INDUCE_RULES.P

2. There are also files on how to formulate a project proposal, how to
plan a project, how to write up a project.

3. I should point out that much of our stuff using the Pop-11 pattern
matcher makes use of a pattern prefix "!" which transforms Pop-11
patterns so that pattern variables become lvars.
    e.g. this now works

        lvars x,y;
        foreach ![?x ison ?y] in database do
            [^x ^y] =>
        endforeach;

This generally makes the programs more modular and secure (reducing
interaction bugs) and sometimes clearer. See
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/help/readpattern
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/lib/readpattern.p
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/auto/!.p

If you have trouble fetching the last file because of its name,
it's included in the bhamteachtar.gz. In any case it has only one
line:
    uses readpattern;

4. Unfortunately, for efficiency, poprulebase does not use the linear
Pop-11 database as it indexes items on their first element, which for
some programs produces a dramatic increase in speed. This can cause
confusion as students switch from the Pop-11 database to poprulebase.

Thanks to prodding from Monika Sester at Stuttgart, I have produced an
overview of the main differences and how to deal with them, in the
    help/prb_database
file in the prb/ directory. I.e.
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/prb/help/prb_database


5. Some of our third year student projects could be the basis of new
teaching material when we have had time to package them, e.g. two recent
Maths & AI student projects, one on a model checker and one on a proof
checker.

Some of my colleagues have been producing their own Pop-11 based
teaching material for their courses, e.g. second and third yar courses.
I could ask if they are willing to make this material public, though
some of it is still in a first draft form.

A third year Geography and AI student (Tim Gamble) produced a WWW
interface to a Pop-11 program that can generate maps and answers to
queries about routes. See

   http://www.cs.bham.ac.uk/~trg/wwwgis.html

I think there's a lot of additional useful pop-11 based AI teaching
material in the Sussex local library but for some reason it is not
publicly accessible as far as I know.

Finally:
Java may be sweeping the world, but I suspect that for some time
Pop-11 will remain a better language for introducing a wide range
of AI concepts and techniques. Perhaps there will later be extensions to
Java with good support for list processing, pattern matching, etc. But
in the meantime I'll continue to use Pop-11 especially as the main
objective is not to produce commercial/industrial programmers but to
stretch our students' minds as far and as fast as possible with
important generally relevant concepts and techniques!

Later they can learn whatever is currently fashionable, if they need it.










As background I tell them to read Sharples books mentioned above and
then to move on to explore standard (but more difficult)
introductions to AI (Russell & Norvig, and some of the older ones,
e.g. Rich&Knight, Winston, Luger & Stubblefield, and also some
higher level overviews, and critiques of AI e.g. Stan Franklin's
Artificial Minds, Dreyfus.


>
> Terry
> ==============================================
> Terry Dartnall
> School of Computing and Information Technology
> Griffith University Nathan Brisbane
> Queensland 4111 Australia
> Phone:  61-7-3875 5020
> Fax:    61-7-3875-5051
> ==============================================
-- 
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs )
School of Computer Science, The University of Birmingham, B15 2TT, England
EMAIL A. Sloman @ cs. bham.ac.in uk(||| MAKE BULK EMAIL ADVERTS ILLEGAL |||)
Phone: +44-121-414-4775 (Sec 3711)       Fax:   +44-121-414-4281