\chapter{Introduction}

The Courseware Development System is an X/UNIX based WYSIWYG editor
that can be used to edit and run interactive graphical applications. 
Through point and click mouse actions, dialog boxes, and menu
selections, it allows users to place objects on the editing area shown
in diagram 1. Multiple screens can be created, each containing 
push buttons, sliders, labels, 
mathematical equations, plotters, barcharts,
and other objects. Actions, defined through a SCHEME interpreter, may be bound
to these objects. They can be activated by clicking on a push button, 
changing the value of a slider, or moving from one screen to another.
These actions may alter the shape and placement of objects,
show and objects, generate and plot points on a plotter, set
parameters in mathematical functions, or update the state of equations
and labels.

CDS provides an interface for using computers to display
to students what no textbook can. The emphasis is on layout and being 
easy to use. No actual programming is involved; actions are minimized 
to the bare essentials performed at the highest possible abstraction level. 

This document explains the design and implementation of a sophisticated
CDS application. The pedagogical goal of the application
is to present the addition of independent discrete random variables 
using the convolution operation.
First, it teaches how random variables can be added by enumerating all 
possible points in a sample space. Next, it shows 
how the convolution operation handles the accounting
of adding random variables by displaying how the algorithm 
works graphically.
Finally, it sets up an environment where many random variables can be
defined and convolved, and the special properties of adding random variables
can be explored.

Chapter two of this document describes in detail the mathematical concepts
being presented by the application; these are the addition of
independent random variables and convolution.

Chapter three describes how to run the application, 
its visual layout, and the philosophy behind the design of its interface.

Chapter four describes the structure of the SCHEME actions
within the application.

Chapter five describes the enhancements made to the CDS executable
that were necessary for the development of the application.

Chapter six contains an assessment of CDS as a presentation tool
and recommendations for its further development.

Appendix A is a listing of the SCHEME actions that were defined within
the application.

Appendix B is a listing of the C++ routines that were implemented as
enhancements to the CDS executable to support development of the application.

Appendix C is a listing of the application's CDS file.

This thesis project has developed in conjunction with four other CDS
thesis projects this term, done by Joseph Wang, Jason Beardsley, 
Jeffrey Turcotte, and Robert Nunez. See the bibliography for references.





