Possible Improvements of Modern Dynamic Geometry Software

Contemporary education is starting to supersede the traditional one (teacher-to-student lessons) with technology-rich learning using various educational tools and a selection of materials that are effective, efficient and appealing to students. Dynamic Geometry Software (DGS) today is widely used in teaching and learning mathematical topics. Such kind of educational software can evolve in several ways, by either adding new features on the surface or by evolving the evaluation engine at its core. The implementation of a DGS needs to be straightforward and modular. To achieve the evolution of a DGS core we have developed a programming framework for the Dynamic Geometry Software, SLGeometry, with a genericized functional language and the corresponding expression evaluation engine. Engine acts as a framework into which specific semantics is embedded in the form of code, annotated with metadata. An ordinary expression tree evaluator is transformed into an object-oriented one by this framework. Whilst other DGS are based on purely functional expression evaluators, our solution has the advantages of being more general, maintainable, understandable, easy to implement, and providing a natural way of specifying object properties in the user interface, minimizing typing and syntax errors. The modular approach enables independent development of subject-specific components, which are easily added to the evaluation engine in the form of plug-ins. The object-oriented nature of the framework enables development of self-contained units, such as objects and visual elements which encapsulate domain-specific semantic and present it to the user as virtual placeholders for real-life objects and notions. In this paper we present several possible improvements of Dynamic Geometry Software, particularly having in mind the platform that we have implemented. Additionally we discuss benefits of these features and their influence on the users/students. The approach is tested on SLGeometry -- our DGS platform, developed in C# on the .NET Framework.