
===================================
EXERCISES: what's in this directory
===================================

These are starter files for some of the exercises in the basic course.
You will need your own copies of all the `.occ' files in this directory.

  early-exercises.doc/pdf

    These define exercises 1 and 2, for which q1.occ and q2.occ below
    are starter files.

  q1.occ

    Simple plug-and-play components: two generators, a simple multiplexor
    (first from one stream, then the other), a filter and printer.

  q2.occ

    Use the `Legoland' processes to undo the integrate (i.e. differentiate).

  more-exercises.doc/pdf

    These define exercises 3 and 4, for which q3.occ and q4.occ below
    are starter files.
  
  q3.occ

    Modify existing functionality by adding a parallel controller - not by
    modifying the existing component.

  q4.occ

    Create a test rig for the squares pipeline that shows all stages of
    processing.  Modify to allow user restting of its running components.

  q5.occ

    A type ahead buffer.

  q6.occ

    Names and numbers - an exercise using a variant PROTOCOL.  Solutions
    range from serial (with rich data structures) to highly parallel (with
    trivial data structures).  This uses the files `nn_data.txt',
    `nn_small.txt' and `nn_tiny.txt' for data.  It should generate results
    like those in `small_results.txt' or `small_results_sorted.txt'.

  q7.occ

    Animate the classic dining philosophers' college.

  santa-exercise.doc/pdf

    These present the classic Santa-Claus concurrency problem and
    invites various solutions in occam-pi.  There is no starter file!

  robots-sei.occ

    This is a starter file for the robots exercise.  Your task is to
    program a better brain ('brain.2').  Your robots must keep moving,
    cover as much ground as possible (don't just run round in circles
    like 'brain.1') and avoid obstacles (walls and other robots).

  bugs.occ

    This is a process with some serious syntactic and semantic damage.
    Your task is to get it to work as its designers intended!


Peter Welch.
