Development Front-end

=Current Call for Students' Projects (Front-end)=

ISAC's front-end has been developed to a tutoring-system already demonstrating key features of the underlying mathematics-engine. The finished sub-projects below show the effort spent. Early design phases already considered several demands reflected in "postponed projects".

The descriptions of some of the sub-projects below originate from ongoing discussions for cooperation, and thus are written in German.

Background information about the development goals for the front-end see the pages on usability and  conception.

=Open Projects=

Generalise ISAC from a reactive to an active assistant
So far, ISAC's reaction to user input is comprehensive only with respect to the underlying mathematics engine: learners can input steps (by a formula or a theorem/tactic to be applied), learners can request display of a knowledge item (which might be filtered according to the current context in a calculation) and learners can request a next step if get stuck ("next-step-guidance"). All the learners' input are handled by one method Dialog.notifyUserAction.

This sub-project shall generalise ISAC to an active assistant: ISAC shall act in adaptation to whether a step is accepted or not by the mathematics-engine, if the learner hesitates to proceed with input (has he or she got stuck in solving the current problem ?), etc. Thus ISAC shall have time-dependent behaviour, and the behaviour is triggered by the system's response. Responses to the current calculation is handled by one method Dialog.calcResponse.

The generalisation to an active system requires careful architectural considerations: the rule-engine is called at least at two points in the code, by Dialog.notifyUserAction and by Dialog.calcResponse; also the design of the UserLogger needs to be re-considered.

Replace Next and Auto buttons by adaptive dialogues
The screen-shots (e.g. usability or  conception) show two buttons Next and Auto in the menu on top. These buttons request the next step or the automated calculation of the final result. Now, since ISAC shall become an active assistant, these buttons shall vanish in dialogues generally.

This sub-project shall replace the Next and Auto buttons and provide the "active assistant" ISAC with the "intelligence" to act reasonably: guide the learners if they get stuck in stepwise problem solving, give hints for next steps, give an example for demonstration, etc.

Adaptive dialogues shall be implemented by rule-sets in an expert-system already integrated into ISAC by Markus Kienleitner and Franz Kober in a joint effort.

Switch focus between application and mathematics
The page on conception shows two screen-shots from one and the same calculation: One screen-shot demonstrates the view of an engineer interested in application of mathematics (e.g. in finding an appropriate Z-Transform in Signal Processing) and the other screen-shot demonstrates the view of a learner interested in "partial fraction decomposition" required for calculating the Z-Transform. These different view care related with different interactions within different "dialog-modi"

This sub-project shall identify several dialog-modi (focus on application in engineering, focus on mathematics, "trial and error" scenario, written examination, etc). These dialog-modi shall be abstracted to a "user model", related to appropriate rule-sets (which might involve cooperation with another sub-project). Cooperation with experts in cognitive science and/or psychology seems desirable, too

=Postponed Projects=

Enhance ISACs testdriven development with JFCTestCases
ISAC employs testdriven development, see the Rules of the ISAC-Developers. The existing collection of testcases under JUnit for ISACs Java-components shall be extended by JFCTestCases.

The numerous existing JUnitTestCases cover internals of the system. However, there are well documented usecases (or 'functional tests'), which involve actions on the widgets of the graphical user interface. Such GUI-actions can be handled by JFCUnit. A well-designed collection of these usecases shall be implemented and integrated into ISACs collection of testcases.

Thus, this task includes an indepth study of the most recent tools for testing within the Java-world, and application to the development of ISAC, which -- as a medium-size project of about 100.000 lines of code) -- actually relies on this technology.

Parallele Enwicklung eines Web-Interface
This group of sub-projects is postponed due to the emergence of Isabelle's new interface technology.

Derzeit besitzt ISAC ein JavaSwing Front-end, das weiter entwickelt wird. Parallel soll ein Web-taugliches Interface auf Basis von JavaServerFaces und Ajax entstehen. Das Swing-Interface dient als Vorlage; eine Feasibilitystudy war erfolgreich und hat die notwendigen Komponenten bereitgestellt.

Recherche zu - und Beurteilung von MathML-Tools
MathML ist der in Entwicklung befindliche Standard für Mathematik im Web. Entsprechende Tools aus kommerzieller Entwicklung genügen grundlegenden Forderungen nicht (siehe Subprojekt Formeleditor), es ist jedoch eine Reihe von experimentellen Tools (siehe u.a. hier) in Entwicklung. Eine Übersicht über solche Tools und ihren Entwicklungsstand ist zu recherchieren. Das geeignetste Tool zum Erstellen von Formeln im MathML-Format ist zum Gebrauch im ISAC-Projekt bereit zu stellen.

Transformation von MathML-content in -presentation Format
Das MathML-content Format (in der Definition von www.w3.org) stellt den mathematischen Gehalt einer Formel besser dar (und erlaubt u.a. Suche nach Formelteilen) als das MathML-presentation Format, das von neuesten Browsern (z.B. Mozilla) gerendert werden kann. Die Transformation von MathML-content in MathML-presentation ist aufwendig, jedoch sehr elegant mithilfe von Stylesheets (XSLT nach www.w3.org) möglich. Die Erweiterbarkeit solcher Stylesheets ist unbedingt notwendig, weil auch die Menge von Operatoren in Formeln erweiterbar ist. Ein weiteres wichtiges Detail dieser neuen Webtechnologie ist, dass Formeln in MathML-content ihre Bedeutung aus sogenannten Content-Dictionaries beziehen können. Das EU-Projekt MoWGLI (www.mowgli.cs.unibo.it) hat Vorlagen für soche Dictionaries sowie für Stylesheets erarbeitet. Diese sollen für die Verwendung in ISAC adaptiert und in das System integriert werden.

Rendern von MathML-Formeln
ISAC stellt alle Formeln nach dem MathML-Standard (www.w3.org) dar. Einige Browser (wie Mozilla in der letzten Version) implementieren diesen Standard bereits, und ISAC wird diese verwenden -- das Rendering der ISAC Wissensbasis ist auf diese Technologie umzustellen.

Parallel dazu soll der Inhalt der ISAC Wissensbasis auch in der Tutoring-Komponente in MathML-Technologie dargestellt werden. Dazu sind die MathML-Komponenten in einen Java-Standard-Editor einzubinden und dieser zum Rendern zu verwenden.

Erweiterung eines Java-Formeleditors
The content of this sub-project is outdated.

Kommerzielle Formel-Editoren versagen in einer entscheidenden Anforderungt: sie erlauben die Erweiterung mit neuen mathematischen Symbolen nicht. In Zusammenarbeit des EU-Projektes MoWGLI (www.mowgli.cs.unibo.it, deliverable D4.a) wurde der Formel-Renderer 'FIGUE' in Java implementiert. Dieser ist modernst strukturiert (DOM nach www.w3.org) und erweiterbar, und reagiert auch schon auf das Markieren von Teilausdrücken in Formeln. In Zusammenarbeit mit den FIGUE-Entwicklern soll die Funktionalität von Figue um die Eingabe von Formeln erweitert werden, und der entstandene Formeleditor in das web-basierte Mathematik-System ISAC integriert werden. Diese Aufgabenstellung ist hochaktuell und anspruchsvoll, und am besten durch ein Team zu bewältigen.

Design a course management system for ISAC
ISAC has two layers of knowledge: (a) knowledge which is both, executed by the system and readable for humans, and (b) knowledge wich is meant for students only (multi-media 'explanations'). The latter shall be course-specific. For instance, differentiation may be explained differently in courses on mechanics and in courses on biology. Course management systems are highly developed products, some of them are open source, and ISAC shall be combined with such a system. Thus this sub-task will


 * investigate course management systems, and in particular their underlying database
 * investigate the XML-database developed by MoWGLI
 * investigate how ISACs knowledge can be implemented in such a database
 * make a database design for ISACs knowledge with respect to course management and access rights.

Access to ISACs knowledge
ISAC's font-end now is developed to an extent, such that experiences with students can be collected. The experiences with the access to ISAC's knowledge are particularly interesting with both, with (a) the access by students and with (b) the access by course designers. This sub-task builds upon the existing database design. It shall implement the most urgent kinds of access to ISAC's knowledge, for instance


 * retrieve information about a rule applied to a certain step in a calculation (the formula of the rule, the theory it is proven in, the explanation depending on the course) within an interactive access (a)
 * retrieve information for course designers (b), e.g. 'which problem is used by which methods ?

Interlinking von Elementen einer XML-Wissensbasis
Das web-basierte Mathematik-System ISAC hat eine 3-dimensionale Wissensbasis von Theorien, Problemen und Methoden, sowie Aufgabensammlungen und (dynamisch erstellte) Lösungen zu diesen Aufgaben. Dieses Wissen liegt in XML vor. Die verwandten Elemente in dieser Wissensbasis (z.B. ein Theorem kommt sowohl in Theorien als auch in Methoden als auch in Rechnungen angewandt vor) sollen mit Hyperlinks aufeinander bezogen werden. Für dieses Interlinking ist ein semi-automatisches Tool zu erstellen, das dem Wissensingenieur (über-)komplette Vorschläge für Links macht, aus denen dieser auswählen kann. Dieses Tool ist möglichst weitgehend aus bestehenden Tools aufzubauen und in das ISAC-System zu integrieren.

Administrative aspects of interactive web-based courseware
Interactive web-based educational systems are exposed to high-level user requirements. ISAC tries to meet the requirements by integration with advances software components. The requirements with respect to administration are: different groups of users (students attending different courses, lecturers, administrators, content authors) have different access rights (a student of biology may get another explanation of 'derivative' than a student of mechanics), which are time dependent (delivering of materials in time, restrict access to the knowledge during exams, etc.)

The design of ISAC took these requirements into account when designing the basic classes and interfaces

The task of this sub-project is to provide a thorough usability-design for course admins and lecturers using the ISAC tutoring system. There is a wealth of literature on similar systems, and this knowledge has to be applied the specific features of ISAC.

This subproject takes the point of view of users, not a technical point of view.

Integrierter Arbeitsplatz eines ISAC-Content und Dialog-Autors
Die Autoren-Komponente ist wesentlich für ISAC: Die Wissensbasis kann mit beliebigem Wissen zur angewanthen Mathematik erweitert werden (dies ist Angelegenheit der Computermathematik), und jedes Element dieser Wissensbasis kann mit multimedialen Erklärungen versehen werden. Der Entwurf von ISAC (Userrequirements hier) sieht eine Reihe von Möglichkeiten vor, in deren Handhabung der Autor unterstützt werden soll: Alle Erklärungen sind Kurs-spezifisch (einem Studenten der Biologie kann man den Begriff 'Ableitung einer Funktion' mit einer anderen Erklärung nahebringen als einem Studenten der Mechanik), Beispielssammlungen sind auf die Wissensbasis abzustimmen, etc. Darüberhinaus bietet ISACs Dialogkomponente eine Reihe von Möglichkeiten, Details des Dialogs (Rechenschritte, die besonders zu üben sind / die im Detail zu behandeln sind / die zu überspringen sind; Dialogmodi, die ) Aufgabe des Subproblems ist, eine integrierte Autorenumgebung für einen ISAC-Content und Dialog-Autor zu entwerfen und in wesentlichen Teilen zu implementieren.

Integrierter Arbeitsplatz eines ISAC-Kurs Administrators
Der Kurs Administrator ist zumeist der Lektor des Kurses (die Bezeichnung 'Administrator' soll in vom 'Autor' unterscheiden, den der Lektor auch häufig in Personalunion darstellt).

Als solcher bestimmt der die Zeit der Freigabe von Übungsaufgaben, verfolgt die Arbeit der Studenten (welche Beispiele wurden erledigt, mit welchem Erfolg), bestimmt eventuell Dialog-Modi (von passivem Beobachten von Rechengängen bis hin zu aktiven selbständigen Lösungen), bestimmt besonders zu übendende Sequenzen in bestimmten Gruppen von Beispielen, etc.

Aufgabe des Subproblems ist, eine integrierte Autorenumgebung für einen ISAC Kursadministrator zu entwerfen und in wesentlichen Teilen zu implementieren.

Kurs Monitoring
TODO

Test Modul
TODO

=Projects finished or under construction=

Requirements capture by Cognitive Science (under construction)
So far ISAC has be designed by joint work of software engineers with an educator, i.e. in a technology driven approach joined with requirements analysis for educational practice. Now the potential of TP-based educational math assistants is systematically explored by a student in Cognitive Science.

TODO

First steps towards Dialog Authoring in ISAC (Finished 2012)
Joint work of Markus Kienleitner and Franz Kober once again mastered the sheer amount of code (40.000 LOCs) and thoroughly reviewed ISAC's dialog with the aim to prepare for Dialog Authoring. This aim was successfully accomplished by two theses:


 * 1) The thesis Towards “NextStep Userguidance” in a Mechanized Math Assistant implemented a rule-engine and replaced the existing dialogue by a respective set of rules.
 * 2) The thesis Logging of High-Level Steps in a Mechanized Math Assistant found an elegant and simple way for logging to a database. The database records a history of interactions which is ready for retrieval by most general technology.

Prototyp eines Authoring Tools für das ISAC System (Finished 2008)
Das vorliegende Seminar/Projekt hatte zur Aufgabe, mehrere hundert Beispiele aus einem Mathematik-Lehrbuch in das ISAC-Lernsystem zu \"ubertragen. Die besondere Herausforderung in der Aufgabenstellung ergab sich daraus, dass das ISAC-System zwar eine relativ leistungsf\"ahige Tutoring-Komponente hat, diese die komplexe Struktur des Contents bestimmt, aber dass bisher noch niemals Requirements f\"ur die Autorenarbeit bedacht wurden. Es zeigte sich, dass der Aufwand an Autorenarbeit f\"ur eine solche Menge von Beispielen nicht mehr zu bew\"altigen war. Daher wurde ein Prototyp eines Autorenwerkzeuges erstellt, der die Autorenarbeit teilweise automatisiert. Dieser Prototyp ist ein erster Schritt in Richtung einer umfassenden Requirements-Analyse zur Autorenarbeit (nicht nur f\"ur Beispiels-Daten, sondern auch f\"ur Daten der Mathematik-Wissensbasis).

Feasibilitystudy: Transfer ISACs graphical userinterface to Web2.0 technology (Finished 2007)
This document is a report about the work done in my bachelor project within the ISAC-project, which constructs a transparent single-stepping system for applied mathematics. The goal of my project was to find a way for presenting the highly structured data of ISAC in a web browser. In order to get an overview what is necessary for transfer ISAC to web2.0 I compared some different technologies. During my work I sorted out which of these are more or less essential. One of the most important technologies I worked with is JavaServer Faces and especially the reference implementation Apache MyFaces. Another part of my work was to have a look how the existing front-end (implmented in Java-Swing) work in some parts and how it presents the data.

Feasibilitystudy: Communication of a Web 2.0 Browser with an Interactive Mathematics Server (Finished 2007)
ISAC, is a system for applied mathematics. This document is a report about the work done in my bachelor project within the ISAC-team. The goal of my project was to do a feasibility study on how to bring the ISAC front end into a Web 2.0 browser. One of the main problems was the semi decision aspect of the mathematics server. Moreover, the ISAC server is capable to send events to the clients, which is not a standard behaviour of a web application. Ajax is a technology which allows one to create a dynamic web application which is able to receive messages from the server, too. Thus, in principle, Ajax can accomplish the requirements imposed by ISAC s architecture.

Context-based access to ISACs deductive knowledge (Finished 2006)
One of the most valuable features in ISACs design is context-based access to the knowledge in mathematics. That means, that the student running an example can access the knowledge the math-engine is acctually using at any step of the calculation on the worksheet.

This features has already its advantages with the access to the hierarchy of problems in equation solving. The next development shall concern the context-based access to theorems, rule-sets and term-orders. This will allow the user to check, why a certain theorem has been applied and not another.

The sub-task comprises the implementation of a 'TheoryBrowser' and a 'TheoryBrowserDialog' accessing the mathematics knowledge, and some preparations for a database-design of ISACs knowledge (in XML-format), which will be transferred into an SQL-database in one of the next steps of development.

Darstellen und Starten von Aufgaben (Finished 2006)
Aufgabensammlungen aus traditionellen Mathematik-Lehrbüchern können im Prinzip ohne viel Aufwand in ISAC übernommen werden: lediglich eine kurze formale Spezifikation pro Aufgabe (unsichtbar für den Lernenden) ist notwendig, um ISAC automatisches Lösen und automatisches Generieren von Dialogführung zu ermöglichen. Um dem Benutzer das Auffinden von Übungen zu erleichtern, soll das Layout aus den Büchern übernommen werden können. Pro html-Seite sollen also mehrere Aufgaben nach vorgegebenem Layout dargestellt und vom Lernenden ausgewählt werden (und nicht wie im je 1 Aufgabe pro Seite). Beispiele sollen auch von bestimmten Stellen der ISAC-Wissensbasis gestartet werden können: von einem Problem als Demobeispiel für die Anwendung dieses Problem-Typs, von einer Methode als Demobeispiel für die Wirkungsweise dieser Methode, etc.

Interaktive spezification of problems in applied math (Finished 2006)
ISAC is able to automatcally solve a problem of applied mathematics, if the problem is specified, i.e. if the input-data, the ouput-data, the pre-condition and the post-condition are given (in a so-called model), and if the pointers into ISAC's 3-dimensional knowledge base are set: (1) the domain of deductive knowledge (the Isabelle theory), (2) the (type of) problem, and (3) the method solving the (type of) problem. If such a specification is given hidden (frequently in several variants) behind the description of the problem (in words and figures), ISAC can support the user in interactively specifying an example. This subtask provides a detailed design and implementation of a software component in ISAC's front-end supporting interactive specification. The subtask resorts to the existing architecture of ISAC's font-end and of ISAC's math-engine.

Full iteractivity of the worksheet (Finished 2006)
The full functionality of the worksheet, as designed in phase 1], shall be implemented: input of formulae (still in string-format), of tactics, interactive request for details (intermediate steps, tactics applied, assumptions generated,...) etc. Implementation of the respective use-cases as JUnit-tests.

The dialog-component (Finished 2005)
The dialog is preset in a dialog-profile provided by a course-designer and adapts to the individual user. The dialog comprises access to the knowledge base as well as the stepwise construction of calculations in 'worksheets'.

Design of the worksheet for stepwise calculation (Finished 2004)
This task designs a worksheet, which presents the automatically generated calculations and supports the stepwise construction of calculations. The structure of a calculation is given by the ISAC-kernel; the worksheet also integrates interaction with the knowledge-base. Only minimal functionality shall be implemented: automated calculation and calculation propagated by a 'step'-button.

The bridge front-end --- SML-kernel (Finished 2004)
There is no connection between Java (at the front-end) and SML (in the ISAC-kernel) available. The bridge between these environments encapsulates the SML-process as a Java-object with the features desirable in the object-oriented world.

Architecture and knowledge-representation (Finished 2003)
This task designs the architecture of the ISAC-system distributed over the web. The design considers the different access-rights of the various user groups and follows the recent XML-standards for the knowledge.