TEACH AI2.PROJECT                            Aaron Sloman, November 1995


CONTENTS

 -- Introduction
 -- Choosing a topic
 -- Proposals
 -- -- Short proposal
 -- -- More complete proposal
 -- Project Reports
 -- -- Instructions for running your program.
 -- Formatted printing
 -- How the project will be assessed
 -- Possible project topics
 -- Submission deadlines
 -- -- Proposals
 -- -- Report

-- Introduction -------------------------------------------------------

The SEM2A3 course is assessed by a mini project. The format required is
that described in TEACH * REPORTS, though if necessary you can vary it
to suit the nature of the project.

The length of the main report should be between 2000 and 3000 words,
excluding any appendices, which may contain program listings, example
trace output, instructions for use of the program.

The code and documentation for the project must be in an unprotected
subdirectory which is clearly identifiable, with a name like sem2a3,
or sem2a3.project.

(Instructions for creating subdirectories can be found in HELP SHELL and
HELP UNIX.COMMANDS)

-- Choosing a topic ---------------------------------------------------

A list of example topics is given below. However, students may propose
other topics.

Students should propose a project topic related to a significant subset
of the AI techniques and ideas in the lectures or teach files this term.
Not all students will be able to cope with all of these, so if you feel
you can manage only a subset of techniques, choose a less ambitious
project.

These are the concepts and techniques that the course covers:

    - manipulating lists and other data-structures
        E.g. TEACH SETS, TEACH SETS2, the Pop-11 PRIMER

    - recursion and other control structures
        TEACH RECURSION, TEACH SETS, TEACH SETS2

    - using lists and the pattern matcher to store and manipulate
      information about some problem domain,
      e.g. TEACH * SEARCHING TEACH * RULEBASE (revision: TEACH RIVER2)
           TEACH * PRBRIVER

    - using a search strategy to permit the computer to find a solution
      to a problem by exploring combinations of alternatives
      E.g. TEACH * SEARCHING, TEACH * PRBRIVER, TEACH * ROUTE
            (revision: TEACH * TOWER)

    - designing a simple expert system of some kind
      E.g. TEACH * RULEBASE TEACH * PRBWINE, TEACH *PRBGROCERIES
           TEACH * PRBRIVER TEACH * SEARCHING,

    - using object oriented techniques based on classes, methods, and
      inheritance, using Objectclass. You could design an adventure game
      involving intelligent agents.
        TEACH * OOP, TEACH * OBJECTCLASS_EXAMPLE * ADVENT_OBJECTCLASS,

    - Modelling interacting agents
        HELP * SIM_AGENT, TEACH * ARMYSIM.P
        This combines the techniques of objectclass and those of
        Poprulebase in a framework for exploring various agent
        architectures and simulating a world of interacting objects.

    - for some students, learning to use the graphical facilities
      in POP11 e.g. TEACH * GSTART, * RC_GRAPHIC HELP * RC_GRAPHIC

    - for some students, learning to use the control-panel and menu
      facilities in POP-11
      E.g. HELP * POPUPTOOL, TEACH * VED_MENU, * MENU_DEMO.P

    - If you are interested in constraint propagation and `waltz
      filtering' try TEACH * WALTZ

It isn't necessary for every student to address all these techniques.
You may focus on a subset that interests you.

(People who have not been doing the work specified during the course of
the term now will have a lot of catching up to do.)

-- Proposals ----------------------------------------------------------

-- -- Short proposal

A first draft short proposal should be ready by the first deadline given
below.
everyone by 5pm Friday 17th November.
It should be in a file called `proposal' in your
sem2a3 directory (which must be readable by world).

The proposal should take between 5 and 30 lines and should describe a
domain within which you intend to work, and list the main AI programming
techniques that you think will be relevant. You can choose one of the
topics listed below. Collaborative projects are possible, as long as not
more than three students are involved, and as long as all agree on who
will take on which portions of the task.

Please email me as soon as you have a draft ready.

-- -- More complete proposal

In the meantime, carry on developing a more complete proposal, which
should both guide your development work, and provide a framework for
your final report. The proposal should include

1. A brief description of the topic area and the main objective within
that area.
2. A summary of the ontology of the domain
3. A hypothetical scenario describing an example of the desired
   behaviour of the program.
4. An outline design of the program:
    The main representations to be used
    The main strategy to be used by the program for producing the
        desired behaviour
    The top level control mechanism to be used.
    Description of main problems to be overcome
    A rough timetable for completion.
    A brief account of how the program will be tested, including
        some examples of test inputs for the program.
    A list of relevant books, articles, teach files.
    (For more suggestions see TEACH * PROPOSALS)

Read TEACH * REPORTS for a summary of what is to go into the final
report. This will help you decide on the contents of the proposal.

The more complete proposal should be ready not later than Friday 8th
December, but preferably earlier. Make sure it is in your subdirectory
directory (sem2a3) and that it has the name proposal.long. When it is
ready, send me a brief message by email giving the full pathname, e.g.
        ~xxx/sem2a3/proposal.long

DO NOT EMAIL THE FULL PROPOSAL TO ME.

-- Project Reports ----------------------------------------------------

The format of the report, to be submitted in January, should be based
on TEACH * REPORTS. The main text of the report should not be longer
than about 3000 words, excluding appendices with program listings,
example trace runs etc.


You may also find TEACH PSTYLE useful for more ambitious projects.

-- -- Instructions for running your program.
The report MUST include a section (or appendix) giving full instructions
for someone who is not logged in as you to try out your program. (This
means that you have to be careful about filenames if one program loads
others. E.g. don't just use "~" to refer to your top level directory.)

Those instructions must also be in a file called Readme.project,
starting with an upper case "R".


-- Formatted printing -------------------------------------------------

HELP RNO explains how you can do formatted printing from VED using
the unix "nroff" package. If you know how to use a more sophisticated
formatter that's fine.

-- How the project will be assessed -----------------------------------

Some of the criteria to be used for marking projects are listed in

    TEACH * AI1PROJECT.CHECKLIST


-- Possible project topics --------------------------------------------

If you look at TEACH POP11_PROJECT you will see some examples of
possible project topics set for first year students. Some of them are
fairly easy. You should not choose one of those. However some of those
topics may give you ideas for more sophisticated possible projects.

A more advanced set of possible topics will be listed in

    TEACH * AI2.PROJECT.TOPICS

This will grow as new ideas turn up.


-- Submission deadlines ------------------------------------------------

-- -- Proposals
1. The first short proposal must be ready by Friday 17th November.

2. The main proposal should be ready by Friday 8th December.

-- -- Report

3. The final project report for SEM2A3 is due to be submitted by the end
of term, i.e. 15th December. Because we expect printer and computer
bottlenecks at that time, we have extended the deadline to 5pm on
Thursday 21st December.

The project report must be properly `packaged'. You will need to get a
project cover sheet from the trays in the corridor on the lower ground
floor. Make sure that the cover sheet includes the following
information.

    Your name and registration number
    The name of the degree you are taking, e.g.
        AI and CS, Psychology & AI, Maths & AI.
    The course-code and name of this course:
        SEM2A3, Advanced AI Programming
    An approximate count of the number of words in the main report,
        excluding appendices.

The report MUST be stapled or bound together so that it can be read by
turning pages easily.

It must not be made of lots of loose sheets tied together or slipped
into a plastic envelope.

It must not consist of fan-folded paper. If you use such paper, trim the
sprocet holes off, separate and number the pages and staple or otherwise
bind them together.

It must not be hand written, though diagrams may be hand-drawn.


NOTE:
Project reports must NOT be sent by ordinary post, and excuses for
lateness due to postal delays or losses in the post will not be
accepted. You should deliver the report yourself by the deadline and
post it into the box with the label SEM2A3 in the submission boxes next
door to the Computer Science School office.


--- $poplocal/local/teach/ai2.project
--- The University of Birmingham 1995.  --------------------------------