Generic Application
A set of classes that create the general application framework including the Main work window, Help facility, and connections to previous work. Additionally, there are facilities for parsing command line options and properties files, performing grading, etc.Animation module
a simple scripting format and run time engine which allows instructors describe This is easily extended with Java code to allow the paths be decided at run time.Quiz module
Displays series of pages containing questions using HTML forms. These are self-answering questions in that the inputs contain the answers. When the student submits the page, it is corrected.HTML widget & Components
We use this as the backbone of most of the labs for both displaying text (help, articles, etc.) and allowing the user to "select" data and put it into other components in the lab. The HTML widget is an extension of the work done by Jean-Michel Leon of Group Bulle.
Other composite components include the Spinbox for selecting numeric values within a range or elements of a set using up and down arrows, interactive plots.Serialization & Grading
This allows the state of the application to be dumped onto a remote server for use in a future session so that the student can build on his/her work in the previous sessions. This material forms the input for the grading of the lab which is performed using scripts based on the Dynamic Text Substitution module or Java code built into the lab directlyHelp system
A simple browser that utilizes the HTML widget (described in 4 above) is used to display help for the lab. This is the only other window potentially in existence during the lab --- other than the main window.Charts and Graphs
A suite of classes render both static and interactive views for the most common types of plots. These include histograms, pie-charts, column charts, scatter plots, time series. Interactive plots allow the user to zoom in and out by dragging the axes and changing the attributes of the plot (such as the number and width of bins in a histogram).Dynamic Text Substitution
Many inputs provided by an instructor in different labs contain data dependent on the current state of the application/lab. For example, a response to one question in a quiz might lead to a different set of questions being presented in future pages. Similarly, statistics or plots from one simulation might be entered into a quiz or output in another component.
This module allows different objects within a lab to be accessed symbolically within the inputs using a simple ``pre-processor''-like language. The values can be substituted directly as the content of the inputs or used in conditionals to provide different inputs from the same file.Sampler
A module that uses the idea of drawing tickets (with or without replacement) to simulate randomness and distributions. Arbitrary populations can be interactively created. This provides a common framework for performing sampling within the labs.Pre/post sampler module
A simple structure that fits many labs which involve the student reading and interacting with an HTML document, running a simulation and responding to the output via a second set of HTML documents. Combined with the Dynamic Text Substitution and Sampler modules, this is a relatively flexible but simple framework for developing labs. Example labs include amusement games in Stat Park, experiments and expert opinions in Hypothesis Testing and sampling universe in Sampling Universes.Card selector module
This module displays text (formatted in HTML) using the Dynamic Text Substitution module to provide dynamic content based on the state of the lab. The links in the text are typically used to navigate between other components in the lab (such as the different experiment pages in the Design of Experiments lab). The scoreboard in the Central Limit Theorem lab can also be implemented using this facility.General Application Material
Using facilities in the JDK 1.1, we allow the user to produce hard copies of each screen or relevant components on the screen. This allows the student to review the material off-line. Tooltips are provided that are customizable by the instructor via external files.Object Manager
An asynchronous object manager allows objects used within a lab to be cached for shared used by other objects in a lab and to be created asynchronously. This is used to improve startup times for the lab by creating secondary components in the background.New lab template
Simple mechanism for creating a new lab which can be constructed by replacing the existing components with new ones.
Duncan Temple Lang<duncan@research.bell-labs.com> Last modified: Mon Nov 24 15:34:15 EST 1997