1. Virtual Laboratories
  2. Object Library

Object Library


The programmatic objects in this project are designed, to the extent possible, so that they can be re-used in other projects and modified if necessary. This object library contains descriptions of these objects and instructions for downloading and using them.



The applets in this project are small, self-contained programs that run in web pages. They are intended to illustrate concepts and techniques from probability and statistics in an interactive, dynamic way. A teacher or student can download an applet, drop it in a web page, and then add other elements of her own choice (such as expository text, data sets, and graphics).

The applets in the library contain no explicit mathematical exposition and thus can be used by students at various levels (with appropriate guidance from the instructor). The applets are intended to be small micro worlds where students can run virtual versions of random experiments and play virtual versions of statistical games. No knowledge of programming in general or Java in particular is required to use the applets. Read the applet instructions for more information about the applets, including the graphical user interface and instructions for copying data to the clipboard. Visit the experiments page for a list of the applets and for instructions on downloading and installing.


Java components are the building blocks of Java applets and of other components. The Java objects used in this project can be downloaded, modified if desired, and reused. The objects are divided into three packages:

The objects in our project can be used by teachers and students with some programming experience to modify the applets or to create custom applets. In both cases, this can be done without having to program every detail from scratch, and thus in a fraction of the usual time. In addition, the components are documented through a formal object model that specifies how the components relate to each other.


All class files and resource files (images file, sound files, etc.) are compressed into the Java Archive (JAR) file given below. Donwload this file if you want to include the applets in your own project. All source files and resource files are compressed into the ZIP file given below. Download this file if you want to modify the applets and components or if you wish to study the programming of the objects.


The Hello World Tutorial guides the student through the construction of a very simple applet using components from the library.

Style Sheets

CSS Style Sheets

We have tried to implement the best practice of separating content from presentation, through the use of Cascading Style Sheets (CSS). The CSS language is a standard of the World Wide Web Consortium (W3C).


Mathematical expressions in this project are encoded in the Mathematics Markup Language (MathML). MathML is a standard of the W3C and comes in two forms: Content MathML and Presentation MathML. Both versions belong to the general eXtensible Markup Language (XML) family of markup languages. XML is also a W3C standard.

We use a version of Content MathML that extends and customizes the W3C standard version of Content MathML. The Content MathML markup is translated into standard Presentation MathML via an eXtensible Style Language Transformation (XSL). XSL is also a W3C standard and is also a member of the XML family.

Script Files

We use JavaScript to create and launch ancillary pages (small, pop-up pages without the browser toolbar or menu bar), and to navigate between ancillary pages and the main page.

Software Tools

TextPad Clip Libraries

TextPad is a versatile text editor for the Windows platform. Compilers can be linked to TextPad and invoked for certain kinds of files (Java or TeX, for example). Clip libraries can be defined that allow easy insertion of often-used, boilerplate text. This feature is particularly useful for markup languages such as XHTML and MathML. Most of the files for this project, from XHTML to MathML to Java to CSS to JavaScript, were written with TextPad. The links below are to clip files that have been customized for this project.