Dr.Geo permits its users to create geometric figures, called sketches within Dr. Geo, and to manipulate them interactively, observing assigned geometric constraints. It also offers a gentle path into programming. Dr.Geo is usable in teaching situations from the primary to advanced levels. Its user interface is designed as a harmonious combination of simplicity and ease of use with advanced capabilities.
The Dr.Geo user interface, under the form of great simplicity, allows the beginner to get acquainted very quickly with the basic functions of the software. Then, as the user progresses, the more advanced aspects of the interface and the capabilities of Dr.Geo will become apparent, such as multiple methods of construction of each kind of object,1 macro construction, multiple recording, scripts, Smalltalk sketches, and inheritance of Smalltalk in Dr.Geo. These advanced features generate little overload on the interface, which is why Dr.Geo is very pleasant for use in primary education; however they also make it very interesting for use in high school and university.
In the following sections, we explain the basic tools. Then the advanced features are presented in detail. We begin with a blank sketch. Open Dr.Geo, revealing a menu bar, a tool bar, and the welcome graphic. Click the new sketch button at the left of the toolbar.
The layout of the interface is as follows:
To create a new sketch, the user selects the New command in the File menu. We will indicate such menu choices in the form File→New from here on. For each new sketch, a distinct window opens with its own menu and toolbar. The user can then create points, lines, circles, and so on, and control their properties.
Dr.Geo II is Free Software2 for interactive geometry on multiple platforms. It is a complete rewrite of Dr.Geo 1.1 in Pharo Smalltalk – http://pharo-project.org.
Dr.Geo 1.1 was written in C++ and integrated with a Scheme interpreter for writing scripts to make interactive programmed sketches. Dr.Geo II also provides the integration of scripts in geometric sketches so that interactive sketches can be written in a programming language.
The rewrite in Smalltalk was motivated by its unique dynamic qualities; it in fact allows us to push very far in our investigations of the interactive possibilities between the user and the application. So Dr.Geo is not only a convivial interactive geometry application but it is also, as distributed, a complete programming environment to study, to modify and to improve it.
For get an idea of these capabilities, the user is invited to click in the background of Dr.Geo – outside any window – and to press the key combination control-b. Choose Tools>System Browser from the menu. The system browser that appears lets the user explore and modify Dr.Geo source code while it is running.
This access to the source code is part of the Dr.Geo DNA; it is part of the free software philosophy as well, for a completely open approach, unlocked, with great opportunities for learners. Far be it from us to pretend that Dr.Geo is enough for building mental capacity, but it certainly can help.
With this same spirit of openness, programmed sketches and scripts – presented in the advanced tools section – rely on an advanced set of developer tools: browser, debugger, inspector, and more.
In the following we will not distinguish between the application names Dr.Geo II or Dr.Geo.
Dr.Geo has its own web site at http://drgeo.eu. Here you will find the following information:
A particular command can create an object from different parameters. For example with the command for constructing a circle, the user can specify its centre and a point on the circumference or the length of its radius, among other options. Of course this command is represented only by one button, with Dr.Geo anticipating the construction intended by the user from the context. The immediate effect is thus a decrease of the cognitive load in the user interface, while offering a significant expansion of capabilities.
Free Software is software under a Free license such as GPL, which requires that its source code be made available for study, modification, and redistribution under the same license.