This plan does not represent the current status of the project, rather it is an overview of the features that HLS (Helsinki Learning System) should have.
HLS has the following components, each described later.
The data structures of the HLS system are xml documents stored in an xml database. The structure of these data bases is specified by xml document type definitions (dtds). There are following data bases in HLS:
Course content dictionary contains the topic hierarchy of courses. Each course has an entry in the ccd. The topics covered in the course are listed under that course. The topic hierarchy is recursive, i.e. each topic has its subtopics as topic subelements. Courses and topics contain also additional description data. This data is not yet specified. The use of ccd in problem and exercise data bases is pictured below.
All types of problems have problem text. Problem can contain several language versions. Different types of problems contain specific data:
Exercises consist of sequences of problems. Each member of the sequence is a reference to a problem in the problem data base with additional information. There are three different types of user actions, correct answer, wrong answer, and I don't know answer. For each of these types of actions there is stored the following information:
According to the privileges there are different types of users, the higher types have all the privileges of the lower types:
There are two applications of the data bases. First is a tool to modify the content, called editor. Users log in to the editor and can modify the databases according to their privileges. Content can be added, changed, previewed, and deleted.
The second application is for the students of the material. The application presents exercises to the user and allows solving them. It displays the feedback coded in the exercises and can also display an overview of the students strengths and weaknesses according to the course's topics.
The applications are web based, meaning that they are used with a web browser. Also they are client - server applications, since the client uses the server's data bases. Overview of the system is pictured below:
Clients use the applications with a web browser. The web browser needs the IBM TechExplorer plug-in for displaying material written with TeX.
In the server side servlets are used as to handle the user interface and user's actions. Standard xml libraries are used to work with xml data. All applications are written in the Java programming language.
As the data structures and the applications should be flexible, there is an
interface between them. This allows the changing of the implementation of the
data base without changing the applications as long as the interface does not
change. Also the applications can change without affecting the data base
definitions. These interfaces are coded using the Java language.
HLS system is a web application that is installed into a directory structure in a java enabled web server. The preferred server is Apache Tomcat 4. HLS system should be rooted at a directory called hls. The direcoty structure is following:
- the starting point for editor application
- the starting point for the student application
- contains css stylesheets defining a common style for the web pages
- contains all the dtds defining the xml data structures
- contains java server page files used in the user interface layer of the application
- contains jsp tag libraries and other libraries used
- contains servlet class files
- contains java class libraries
- contains java source files
- contains jaxb definitions for xml bindings into java objects
- contains the databases in xml format
- contains xsl stylesheets for transforming xml data into html pages
|ccd's dtd||partly specified|
|userdb's dtd||partly specified|
|editor for multiple choice problems||implemented|
|editor for string questions||partly implemented|
|editor for exercises||partly implemented|
|editor for dtds||not implemented|
|logins for different users||not implemented|
|interface for the db||implemented|
|db as xml document||implemented|
|xml databases||not implemented|