\documentstyle[fullpage,doublespace,12pt]{report}
\title{Proposal: Organizing Information in the Courseware Development System}
\author{Joseph Wang}
\date{\today}
\begin{document}
\maketitle
\chapter{Project Background}
One of the advantages of a computer is that it allows a user to access a
much larger amount of information than previous possible.  With storage
systems such as CD-ROM and networked file servers, it is possible for a 
user to have the information of an entire library at his or her fingertips.

Furthermore, the type of this information need not be restricted to any
given type.  Unlike books which are limited to presenting still pictures
and text, a computer can present this in addition to animation, sounds,
and other forms of information.

However, because the computer can provide this enormous amount of
information, it is essential that there be a structure imposed on this
information.  Otherwise, there is a very real danger that the quantity
of information provided is so large that no human being can be
expected to find the information that he or she wishes to have,
without a great large of technical training.  This is undesirable, as
it places an obstacle between the people who want information and the
information itself.

These issues will be dealt with in the Navigator module of the
Courseware Development System.  The Courseware Development System
(CDS) is a program written for UNIX-based computers to allow
professors to create programs to use in their classes.  It is
resembles HyperCard on the MacIntosh, but contains a mathematical
modeling environment so that professors can model physical and
mathematical processes.

CDS is to be implemented as a set of modules.  One of the modules is the
Navigator, whose job it is to load screens from a fileserver, and organize
them in a way that the user can get to the information he or she wants.

In designing the Navigator, I will set out to make the Navigator
intuitive.  That means that the navigator must organize information in
a way that is already familiar to the users of the CDS.  Any concepts
used in finding out what information is to be accessed should be
concepts already familiar to users of CDS.

Like the rest of CDS, the Navigator will be written using the X11
Window System.  Specifically, it will use the MOTIF toolkit for its
Graphical User Interface.

At the very least, the Navigator module should serve as a
``page-flipper,'' a device which arranges a series of pages allowing
the user to move backward and forward through those pages.  Beyond
this, a Navigator module can be extended so that it outlines, indexes,
and cross-references pages.

\chapter{Project Plan and Methodology}
The first task in designing the Navigator module is to develop a conceptual
model of how information in CDS is to be structured.  This will involve 
examining traditional media, such as books, and journal articles, and see
how they are structured.

The next task is to write a specification for the Navigator.  Because I will
not be the only one to ever work with the Navigator, I will need to write a
specification for the module so that others can expand upon my work.  The
specification will include a list of submodules of the Navigator and the
way they interact.  After the specification is written, it will be reviewed
by the research group before any actual coding is done.

Then I plan to implement a Navigator with only basic features.  This
Navigator will be able to load pages from and save pages to a
fileserver as well as flip back and forth between pages.  The basic
Navigator will not be able to outline or index information, although
it will be designed so the these features can be added easily.  This is the
bare minimum which I must accomplish by the end of this term.

Finally, I will write the thesis.  If there is any time left in the term, I
may try to modify the Navigator so that it can outline and index.

\chapter{Project Time Schedule}
\begin{itemize}
\item Develop conceptual model - 1 week
\item Write specification - 2 weeks 
\item Implement basic navigator - 2 weeks
\item Write thesis and expand functionality of navigator - remainder of time
\end{itemize}

\chapter{Materials, Hardware, Software, Resources}
This project will be programmed on the MIT Athena computer system.  My
research group will need about 60 megabytes of disk space on a
fileserver in the Project Athena system.  A private machine devoted to
this project is desirable but not essential.

The language used will be c++.  The compiler used will be the Free
Software Foundation g++ compiler.  For its Graphical User Interface,
this project will mainly use MOTIF but may also use widgets (X Toolkit
Graphics Objects) from the AthenaTools libraries.  As a result, I will
need access to the MOTIF software libraries as well as the software
libraries for the X11 Toolkit, which is used by MOTIF.  A debugger is
also necessary.  For this I will use the Free Software Foundation's
gdb debugger.

\chapter{Statement of Qualifications}
I am qualified to undertake this project, because I worked on the
proto-type to the Courseware Development System, which was called the
Lecture Authoring System (LAS). Specifically, I help to modify LAS so
that it used the medium level X Toolkit libraries instead of the
low-level Xlib calls.  This meant that we could write the source code
so that the system was described interactions between objects such as
buttons and scrollbars, rather than in terms of interactions between
events in the window system.

In working with LAS, I gained extensive experience in programming
source code which uses the X Toolkit.  I also have programmed in C and
C++.  I am confident that my qualifications will let me successfully
finish this project.

\end{document}
