TEACH TEACHFILES                           Updated A.Sloman Jan 2005

SOME OF THESE FILES HAVE BEEN MOVED TO

    $usepop/pop/lib/packages/teaching/teach/

If you first do

    uses teaching

Those files will become available.


TEACH FILES  - these provide tutorial introductions with more verbose
explanations than those found in HELP files. They are suitable for
beginners. There are also some introductions to Artificial Intelligence
concepts and techniques, including parsing, building expert systems,
searching, etc. This file assumes some knowledge of how to use the VED
editor.

See also
    TEACH *INDEX          - an index of TEACH files
    PLOGTEACH *TEACHFILES - an annotated overview of Prolog TEACH files
    PLOGTEACH *INDEX      - an index of Prolog TEACH files
    HELP * DOCUMENTATION  - overview of Poplog documentation files

The TEACH files are located in

    $usepop/pop/TEACH

How to find other sources of on-line documentation
    HELP *DOCUMENTATION

CONTENTS - (Use <ENTER> g with cursor on desired line, to access
            desired sections)

 -- Getting starting with the editor and files
 -- Basic overview of POP-11
 -- Some mini-projects - for beginners
 -- More detailed POP-11 exercises and explanations
 -- Introduction to grammars, parsing, sentence generation
 -- Teach files concerned with pictures or images
 -- Teach files concerned with Prolog
 -- Teach files concerned with Lisp
 -- Teach files concerned with AI techniques
 -- Miscellaneous

-- Getting starting with the editor and files -------------------------
A: An initial sequence:
TEACH       How to use VED to read teach files (using Visual 200)
or VT100    Using VED with a VT100 type VDU. (= TEACH TEACH, but for VT100)
VED         Using VED to alter or create files
MOREVED     Follows on from TEACH VED
MOREVT100   Follows on from TEACH VT100


SWITCHWINDOW    How to switch between two VED windows
BUFFERS     How to switch between more than two VED files
WINDOW      Switching window sizes
MARK        Marking a range of text in the buffer - and doing
            things to the marked range
LMR         Loading (compiling) a "Marked Range". CTRL-D
VEDPOP      Switching between VED and POP-11 or PROLOG, etc

B: More details:

FILES       Information about files and directories and purging
PURGE       On purging files
YANK        Using ENTER Y in VED to undo a deletion
See also VTURTLE below

-- Basic overview of POP-11 -------------------------------------------
Experienced programmers are advised to read:

     R. Barrett, A. Ramsay, A. Sloman
        POP-11: A PRACTICAL LANGUAGE FOR AI,
        Published 1985 by Ellis Horwood (UK), Wiley (USA)

This has now been translated into French, published by:
    Manuels Informatiques Masson

A sequel to this book describes AI techniques, often extending the teach
files and demonstration programs in POPLOG

    A. Ramsay and R. Barrett
        AI In Practice: Examples in POP-11
        Published 1986/7 Ellis Horwood and John Wiley

Less experienced programmers may find TEACH PRIMER easier:
PRIMER - draft primer of POP-11. This provides an introductory
    overview of POP-11 for people with some programming experience.


For absolute beginners, it is best, instead, to start with on-line
mini-projects listed below.

The Primer replaces all the following:
    POPSUMMARRY
    POPNOTES

-- Some mini-projects - for beginners ---------------------------------

The following has been found to be a good initial teaching sequence:
RIVER       Introduction to defining procedures (to solve a puzzle)
RESPOND     How to write a MINI ELIZA. Intro to MATCHES and IF
RIVER2      Writing a program to represent a mini-world
RIVERCHAT   Using the matcher to interpret 'river world' commands, etc.
BLOCKS      Using the database to represent the blocks world

others:
INFECT      A 'forward chaining' inference exercise using the database
ELIZA       A longish introduction to writing your own Eliza
ELIZA2      Continues ELIZA

-- More detailed POP-11 exercises and explanations --------------------

APOSTROPHE  Problems with using apostrophes in POP-11 lists.
ARITH       Arithmetic in POP-11 -- introductory exercises
ARROW       Use of "^" and "^^" in list expressions
BOXES       Representing lists as linked chains of boxes. See also WAL
BRACKETS    Information about POP-11 syntax: matching brackets
DATABASE    Introductory exercises using POP-11 database
DATASUMM    Summary of POP-11 database
DATATHINK   A simple exercise on 'forward chaining' inferences
DECIMALS    Decimal numbers in POP-11
DEFINE      Introduction to procedure definition formats
FOREACH     The 'foreach' loop form explained
LISTS       Introduction to list manipulation
LISTSUMMARY
LISTQUESTIONS list processing exercises
LISTANSWERS   answers to LISTQUESTIONS
MATCHES     Introduction to using the POP-11 matcher
MATCHES2    MATCHES continued
MOREMATCH   Follows on from MATCHES2
MSBLOCKS    Using LIB TPARSE and LIB FACETS to write a reduced
            SHRDLU-like program
MSDEMO      Explains how to use the MSBLOCKS demonstration program
MSBLOCKPROG Program for MSBLOCKS
ONEOF       Random selection from a list
PERCENT     The uses of (% .. %) for partial application and '%' in lists
POPSUMMARY  Summary of basic POP-11 facilities
PROCEDURES  Notes on POP-11 procedures
QUESTIONS   Some revision exercises in POP-11
READLINE    Using READLINE for interactive programs
RECURSE1    Notes on recursion
RECURSE2    More on recursion
REPORTS     Notes on writing reports on programming
REVISE      Very elementary revision exercises on VED and POP-11
SETS        List processing exercises involving sets
SETS1       Used in TEACH SETS   (there is also an answer file)
SETS2       TEACH SETS continued (there is also an answer file)
STACK       Introduction to use of the stack
TRACE       How to alter POP-11 procedures to produce trace printout
VARS        Variable declarations in POP-11. (Global variables)
VM          An introduction to the POP-11 "virtual machine"
WAL         What are lists?

-- Introduction to grammars, parsing, sentence generation -------------

ATNS        Notes on Augmented Transition Networks
ATNSUM      Summary of ATN formalism
GRAMMAR     How to use LIB GRAMMAR for parsing or sentence generation
PARSING     Writing a top down parser which interprets a grammar
ISASENT     Introduction to parsing using the matcher and restrictions
INTERP      Semantic interpretation of parse trees
MAKESENT    Generating sentences - follows ISASENT
PARSE       Writing a very procedural parser
PARSESENT   Follows on from ISASENT - building parse trees
TRANSSENT   Follows on from PARSESENT - interpreting sentences
WHYSYNTAX   Introduction to ideas about grammars

-- Teach files concerned with pictures or images ----------------------

TURTLE      How to use the POP-11 VDU turtle
VTURTLE     Using VED to draw pictures with the turtle
SEEPICTURE  Intro to LIB SEEPICTURE: finding lines and junctions
PICTURES    Exercises on analysing straight line 'turtle' drawings
REGIONS     Use of LIB regions for region finding in turtle pictures
LABELLING   Introduction to line-labelling in a lamina world
WALTZ       Introduction to Waltz-filtering
WALTZ2      An incomplete Waltz program for students to copy and complete
CONVOLVE    A package for convolving images with masks.

-- Teach files concerned with Prolog ----------------------------------

PROLOG      Intro to Prolog for POP-11 users
CLAUSES     Notes on clauses in Prolog
RESOLUTION  Notes on resolution theorem proving
RESOLVEEXERCISE   Exercises on resolution theorem proving in prolog

See also HELP * PROLOG
DOC * CONTINUATIONS gives a model for implementing Prolog in POP-11

-- Teach files concerned with Lisp ------------------------------------
See HELP * LISP

-- Teach files concerned with AI techniques ---------------------------

ADVENT.NEWOBJ Programming an adventure game using LIB NEWOBJ
            for object-oriented programming. See HELP *NEWOBJ,
            Compare TEACH * FLAVOURS
AITHEMES    A personal view of Artificial Intelligence, by A.Sloman
DISCRIM     An exercise on discrimination trees
EVANS       Structure matching - based on EVANS' analogy program
            (See also HELP * ANALOGY)
EXPERTS     Notes on expert systems, and library 'shells'
FINGER      A demonstration 'learning' program
FLAVOURS    An introduction to an Object Oriented Programming Package
LEARNING    Questions and references on learning programs
PARPAR      Partial parse trees, concept learning, and description refinement
PSYS        An earlier version of PRODSYS
PRODSYS     Introduction to production systems and LIB PRODSYS
SCHEMATA    Using LIB SCHEMA to match a script or frame against a story
SEARCHING   Introduction to state space searching
SIR         Writing a program like Raphael's SIR
SOLVEMS     Introduction to AI problem solving techniques
SOLVER      How to use LIB SOLVER - a demonstration problem solver
PSTRIPS     Prolog version of STRIPS
STRIPS      A file used by the POP11/STRIPS demonstration
TOWER       A depth-first-search problem-solving exercise
VIEWS       Using a "viewpoint" or "context" mechanism in problem solving
WANG        Theorem proving - Wang's algorithm

-- Miscellaneous ------------------------------------------------------

DEMO        Visitor's short introduction to POP-11
DIRECTORY   Information about the VMS directory command
GC          An explanation of garbage collection
INDEX       A current list of teach files
MAIL        Using the VMS or Unix mail facility
POEM, PEOM_BIT (for an exercise in the POPLOG User Guide)
POPSYS      How the POP-11 system works - introduction - incomplete
PRINTING    Printing files using VED or VMS commands
PSTYLE      On style of project write up
STATS       How to use POP-11 for simple statistical number crunching
TEACHFILES   This file
TTT         How to get a typing lesson

--- C.all/teach/teachfiles
--- Copyright University of Sussex 1995. All rights reserved. ----------
