<!--
  - Authors:
  -   Tobias Mueller <tmueller@ps.uni-sb.de>
  -
  - Copyright:
  -   Tobias Mueller, 1998
  -
  - Last change:
  -   $Date$ by $Author$
  -   $Revision$
  -
  - This file is part of Mozart, an implementation
  - of Oz 3
  -    http://www.mozart-oz.org
  -
  - See the file "LICENSE" or
  -    http://www.mozart-oz.org/LICENSE.html
  - for information on usage and redistribution
  - of this file, and for a DISCLAIMER OF ALL
  - WARRANTIES.
  -
  -->

<Chapter id="chapter.college">
    <Title/College Timetabling/
    <Author.Extern to="author.db" key="Martin.Henz">
    <Author.Extern to="author.db" key="Joerg.Wuertz">
    <Author.Extern to="author.db" key="Tobias.Mueller">


  <P>
    <List class=linkmenu>
      <Item><Ref.Extern to="applets/College.oza"/Start Applet/
      <Item>
	<Ref.extern to="ozdoc:install" key="appendix.applets"/How to enable Applets/
    </List>
  </P>


<!-- ********************************************************************** -->

<Para><Title/Problem/ This demo solves a real time-tabling problem: it
finds a time table for a college in Saarbrücken and presents the
time-table graphically. Details on modelling and implementing that
problem can be found in the paper <Ref.Extern
to="http://www.ps.uni-sb.de/Papers/abstracts/ICPTAT95.html"/Using Oz
for College Time Tabling/.

<Para><Title/Operation/ When the program is launched the problem
specification is already loaded.

<Para><Title>Menu <Em/File/</Title>
<List>
       <Entry><Menu/Load Solution/
       <Item> Load the initial solution. This is useful for 
              optimizing based on an initial solution.
       <Entry><Menu/About this program/
       <Item> Display message about program.
       <Entry><Menu/Exit/
       <Item> Exit the program.
       </List>

<Para><Title>Menu <Em/Compute/</Title>
<List>
       <Entry><Menu/First Solution/
       <Item> Find first solution. After finding a solution the 
              solver tries to find a better solution.
       <Entry><Menu/Optimize Current Solution/
       <Item> Resume after interrupting finding a solution.
       <Entry><Menu/Interrupt Solving/
       <Item> Interrupt finding a solution.
       </List>

<Para><Title>Menu <Em/Output/</Title>
<List>
       <Entry><Menu/Display graphically/
       <Item> Display solution as a Gannt chart.
       <Entry><Menu/Display with Browser/
       <Item> Display solution as Oz term in the Oz browser.
       <Entry><Menu/Display textually/
       <Item> Display solution as table.
       </List>

<!-- ********************************************************************** -->
  <Section class=unnumbered id="section.college.implementation">
    <Title/Implementation/

    <Subsection class=unnumbered id=code.college.problem>
      <title>Problem description: <File/KathHochWS9596.ozt/</title>
      <para><title><ref.extern to="College/KathHochWS9596.ozt">Source
File</ref.extern></title>
<code.extern display to="College/KathHochWS9596.ozt" proglang=oz></para>
    </subsection>

    <Subsection class=unnumbered id=code.college.main>
      <title>Root functor: <File/Main.oz/</title>
      <para><title><ref.extern to="College/Main.oz">Source
File</ref.extern></title>
<code.extern display to="College/Main.oz" proglang=oz></para>
    </subsection>

    <subsection class=unnumbered id=code.college.common>
      <title>Common definitions: <File/Common.oz/</title>
      <para><title><ref.extern to="College/Common.oz">Source
File</ref.extern></title>
<code.extern display to="College/Common.oz" proglang=oz></para>
    </subsection>

    <subsection class=unnumbered id=code.college.controller>
      <title>Controlling the operation: <File/Controller.oz/</title>
      <para><title><ref.extern to="College/Controller.oz">Source
File</ref.extern></title>
<code.extern display to="College/Controller.oz" proglang=oz></para>
    </subsection>

    <subsection class=unnumbered id=code.college.scheduler>
      <title>The actual scheduler: <File/Scheduler.oz/</title>
      <para><title><ref.extern to="College/Scheduler.oz">Source
File</ref.extern></title>
<code.extern display to="College/Scheduler.oz" proglang=oz></para>
    </subsection>

    <subsection class=unnumbered id=code.college.graphics>
      <title/Graphical interface: <File/Graphics.oz/</title>
      <para><title><ref.extern to="College/Graphics.oz">Source
File</ref.extern></title>
<code.extern display to="College/Graphics.oz" proglang=oz></para>

    </subsection>

    <subsection class=unnumbered id=code.college.latex>
      <title>The interface to LaTeX: <File/Latex.oz/</title>
      <para><title><ref.extern to="College/Latex.oz">Source
File</ref.extern></title>
<code.extern display to="College/Latex.oz" proglang=oz></para>
    </subsection>


  </section>

</Chapter>
