Planet OFSET

To content | To menu | To search

Tag - éducation

Entries feed - Comments feed

Thursday, April 24 2008

Why Squeak? Part II

In this series of articles, I will highlight the advantages of using Squeak/Smalltalk to develop educational software. At some point and based on my experience, I will compare with other development languages. The focus of this article is for educators and developers interested in software programming education applications. In these articles, don't expect to learn about Smalltalk/Squeak programming, my goal is simply to give an overall picture, based on real experience. Feedback is of course very welcome. In this article I will discuss about the Smalltalk image concept and its consequences.

previous article - next article

The Smalltalk image

Smalltalk comes in two pieces. A binary program specific to the host architecture and the Smalltalk codes.

The Virtual machine

The virtual machine (VM) is a program specific to a physical machine and an operating system. It is in charge of transforming the code produced by the Smalltalk compiler into native machine language, so it can be executed. The great advantage of this system is to make the Smalltalk code completely portable to any machine the virtual machine was ported to. The Smalltalk compiler produces byte code, a specific machine language to the virtual machine.

The virtual machine itself is written with Squeak and recoded in C. For access to resources local to the machine (library, hardware access) or to accelerate some critical parts of Squeak, C language plug-ins are developed for the VM.

Smalltalk codes

There are three files: the squeak.sources, the squeak.changes the and squeak.image:

  • squeak.sources contains the standard source code of the Squeak classes. This source is available through the Squeak development tools.
  • squeak.changes contains the source modifications and additions done by the user in the development environment. All user modifications in the code are immediately recorded in this file, in the form of subsequent changes. All versions are kept, so it is possible to come back to earlier code versions.
  • squeak.image, this file is the strangest one for people used to file based programming. This file is a dump of the virtual machine memory. It contains all the used objects of the environments at a given moment. These objects are the windows, compiled classes, running processes, loaded classes, any kind of object in memory, and even debugging sessions. It is possible to save the image through the world menu (click on the background). Therefore it is possible to save the state of the working environment, and to restore it at any time, and even restore it on a different host with a different virtual machine.

Why an educator will care about that?

The educator willing to develop educational software will gain productivity, both for writing code and porting their applications to several platforms.

Portability

Thanks to the virtual machine and squeak.image pair, porting an application is easy and safe. To port your application, you just need to make your squeak.image file available to the target host.

If you developed your application on host A, you were using a virtual machine for host A and you were using your standard squeak.image (or maybe your renamed it MyGreatApplication.image. To port to host B, you just need to pack virtual machine B with your MyGreatApplication.image image file, and that's it.

Productivity

From the working environment, the developer can save at any moment the state of their work:

  • They can use a tool called the workspace to write down code snippets to remember specific code examples, or to instantiate quickly objects. I very often use this to write down specific sequences of code or notes. To execute this code, I select it then type Alt+d (or Alt+p to get a printed result). When I save my image, the workspace and its content is saved as well. In the right bottom of the picture below, you can see a workspace with some snipped code I used while developing DrGeoII.
  • When debugging an application, the working environment can be saved with the opened debugger. The picture below shows a working environment where I introduced a bug in DrGeoII, the debugger is opened, When I saved the environment (therefore, a memory dump in the image file), the debugging session is saved as well.

Squeak environment

When you are writing code, and especially while improving the quality of your software, your are working within a specific context of your software. The bug does not show up immediately after you start your application. You need it to be in a given state after you performed a series of interactions with it. It can be very time consuming to do so.

Now I guess you start to understand how Squeak can save you a lot of time when you are improving the quality of your application:

  • You can save in the image the specific context which lead to bugs in your application and you can decide to come back quickly to this context as often as you need it to fix the bugs. It is a big time saver.
  • While your application is running you can fix your code, you don't need to restart your application (and recover from the bug context). This an additional time saver.

Don't search for these features in other languages, you won't find them.

In the next article about the IDE, I will develop some of the concepts presented here, for example the debugger and the possibility to fix code in running applications.

Friday, April 18 2008

Pourquoi vous pourriez considérer Smalltalk/Squeak comme votre plateforme préférée de développement de votre prochaine application éducative - Partie I

Dans cette série d'articles je mettrai en valeur les avantages à utiliser Squeak/Smalltalk pour développer des logiciels éducatifs. Selon le thème abordé et mon expérience, je comparerai parfois avec d'autres langages. Je destine ces articles aux éducateurs et développeurs intéressés par la programmation de logiciels éducatifs. Dans ces articles, n'espérez pas apprendre la programmation Smalltalk/Squeak, mon objectif est avant tout de donner une vue d'ensemble, basée sur une réelle expérience. Les commentaires sont bien sûr les bienvenus.

Avez-vous remarqué ? Dans mon titre j'ai écrit plateforme de développement et non pas langage de programmation. En effet Smalltalk, et Squeak particulièrement, n'est pas seulement un langage, c'est également un environnement pour écrire du code. Cet aspect est ancré à l'histoire de Smalltalk dans les années 70 au Xerox Parc où l'équipe d'Alan Kay créa plusieurs versions de Smalltalk dans un environnement graphique avec souris et fenêtres. Smalltalk comprenait déjà des aspects uniques comme une architecture à base de machine virtuelle et d'image, un langage réflexif et purement objet.

Pourquoi cela intéresse-t-il un éducateur ?

Certains aspects clés de Squeak/Smalltalk sont très intéressants lors du développement d'une application éducative:

  • Morph, le système d'interface graphique utilisateur (GUI) ;
  • l'image Smalltalk, un environnement unique pour tester vos idées et sauver l'état de votre travail ;
  • votre application est portable vers un nombre important d'architecture ;
  • un puissant environnement de développement (IDE) intégré ;
  • une façon unique de déboguer et mettre au point vos applications ;
  • un riche ensemble de classes pour le multimédia et l'interactivité ;
  • une communauté active.

Je développerai ces points avec des exemples concrets, un point par article. Je commencerai par discuter à propos du système Morph.

Interface Morph

Dans ce système, un Morph est une unité graphique, interactive ou non. Cela peut-être une image, un objet géométrique tel un segment, une ellipse, un polygone, une chaîne de caractères, un canevas vidéo, etc. Des Morph peuvent être insérés dans d'autre Morph, avec ou sans mise en forme. Les objets graphiques de Squeak sont tous des Morph assemblés. Un Morph est manipulable interactivement par l'utilisateur, pour cela il utilise le halo.

Le halo

La première fonctionnalité spéciale de Morph rencontrée par l'utilisateur est le halo. Dans le système Morph, un halo est une collection de poignées entourant un Morph. Le halo peut-être appelé à tout instant.

Morph halos

Il y a plusieurs fonctions proposées par ces poignées comme dupliquer, dimensionner, pivoter, dessiner, etc. Je n'en dit pas d'avantage ici, plusieurs articles couvrent déjà le sujet. Le point fort des poignées est de laisser l'utilisateur manipuler très librement un objet. Si vous concevez une application éducative avec Squeak, gardez à l'esprit la valeur ajoutée du halo pour l'utilisateur. Aussi essayez de prendre en compte l'effet halo lors de la conception de votre logiciel.

Comme je l'ai expliqué, les Morph sont manipulés, assemblés ou séparés interactivement par l'utilisateur. Mais ce n'est pas tout, les Morph sont manipulables logiquement par un système graphique de script.

Script Squeak

Dans le halo, la poignée turquoise en forme d'oeil à gauche ouvre le visualiseur d'un Morph. Un visualiseur présente un ensemble de commandes graphiques. Les commandes se rapportent à des caractéristiques physiques ou logiques d'un Morph. Elles fonctionnent en entrée ou sortie.

Dans Dr. Geo II, j'ai décidé d'utiliser Morph comme la couche graphique sous-jacente. En effet, je voulais bénéficier des fonctionnalités utilisateur de Morph pour : permettre l'inclusion de Morph extérieurs à Dr. Geo II dans celui-ci et vis-versa, et aussi pour donner la liberté à l'utilisateur d'utiliser les scripts Squeak dans Dr. Geo II. Cela offre une très grande liberté d'utilisation que l'on ne trouve pas dans d'autres applications de géométrie de ce type.

Dans la capture écran ci-dessous, un script Squeak est utilisé pour lier la position en y d'un point DrGeo à un ascenseur : lorsque l'utilisateur fait glisser l'ascenseur, le point est deplacé en fonction. Non seulement le point et l'ascenseur n'ont pas été conçus l'un en fonction de l'autre, mais cette relation logique est faite au niveau de l'utilisateur.

Squeak scripting

Programmer des Morph

Dans les deux sections précédents, nous avons exposé la grande liberté que le GUI Morph donne aux utilisateurs. D'un autre côté, le programmeur d'interface à base de Morph peut :

  • adapter à ses besoins des Morph existants. Adapter signifie : agréger plusieurs Morph dans un nouveau Morph, étendre ou modifier le comportement d'un Morph existant ;
  • écrire de zéro un nouveau Morph. Écrire un nouveau Morph est amusant car vous êtes complètement libre de décider de son comportement et de son aspect visuel (avec la méthode drawOn:).

Ci-dessous quelques exemples de Morph que j'ai écrits en adaptatant d'autres Morph ou en partant de zéro.

Pyramide de nombre PythagorasTable Rectange de point Dice.png

Il y a quelques années de cela, Python devenait mon langage de programmation favori pour l'écriture de logiciels éducatifs. J'ai écrit quelques articles sur le sujet (article 1, article 2, article 3). L'avantage le plus important était la relative facilité du langage de programmation. Utiliser GTK+ avec Python était plutôt facile une fois que l'on savait comment faire. Toutefois, la documentation de l'interface GTK+ pour Python était quasi inexistante, je devais lire la documentation C pour GTK+, le code source Python de l'interface Python-GTK+ et deviner comment l'utiliser dans Python. C'était parfaitement faisable, mais prenait beaucoup de temps. Il est amusant de constater que je fais quelque chose d'assez proche avec Smalltalk/Squeak à propos de Morph, car la documentation concernant ce dernier est assez légère. Mais grâce à la nature réflexive du langage Smalltalk, c'est beaucoup facile de trouver, tester et comprendre les fonctions dont j'ai besoin. C'est un autre avantage qui améliore la productivité du programmeur. Je reviendrai dessus lorsque je discuterai de l'IDE Smalltalk.

Pourquoi Squeak ? Partie I

Dans cette série d'articles je mettrai en valeur les avantages à utiliser Squeak/Smalltalk pour développer des logiciels éducatifs. Selon le thème abordé et mon expérience, je comparerai parfois avec d'autres langages. Je destine ces articles aux éducateurs et développeurs intéressés par la programmation de logiciels éducatifs. Dans ces articles, n'espérez pas apprendre la programmation Smalltalk/Squeak, mon objectif est avant tout de donner une vue d'ensemble, basée sur une réelle expérience. Les commentaires sont bien sûr les bienvenus.

article suivant

Avez-vous remarqué ? Dans mon titre j'ai écrit plateforme de développement et non pas langage de programmation. En effet Smalltalk, et Squeak particulièrement, n'est pas seulement un langage, c'est également un environnement pour écrire du code. Cet aspect est ancré à l'histoire de Smalltalk dans les années 70 au Xerox Parc où l'équipe d'Alan Kay créa plusieurs versions de Smalltalk dans un environnement graphique avec souris et fenêtres. Smalltalk comprenait déjà des aspects uniques comme une architecture à base de machine virtuelle et d'image, un langage réflexif et purement objet.

Pourquoi cela intéresse-t-il un éducateur ?

Certains aspects clés de Squeak/Smalltalk sont très intéressants lors du développement d'une application éducative:

  • Morph, le système d'interface graphique utilisateur (GUI) ;
  • l'image Smalltalk, un environnement unique pour tester vos idées et sauver l'état de votre travail ;
  • votre application est portable vers un nombre important d'architecture ;
  • un puissant environnement de développement (IDE) intégré ;
  • une façon unique de déboguer et mettre au point vos applications ;
  • un riche ensemble de classes pour le multimédia et l'interactivité ;
  • une communauté active.

Je développerai ces points avec des exemples concrets, un point par article. Je commencerai par discuter à propos du système Morph.

Interface Morph

Dans ce système, un Morph est une unité graphique, interactive ou non. Cela peut-être une image, un objet géométrique tel un segment, une ellipse, un polygone, une chaîne de caractères, un canevas vidéo, etc. Des Morph peuvent être insérés dans d'autre Morph, avec ou sans mise en forme. Les objets graphiques de Squeak sont tous des Morph assemblés. Un Morph est manipulable interactivement par l'utilisateur, pour cela il utilise le halo.

Le halo

La première fonctionnalité spéciale de Morph rencontrée par l'utilisateur est le halo. Dans le système Morph, un halo est une collection de poignées entourant un Morph. Le halo peut-être appelé à tout instant.

Morph halos

Il y a plusieurs fonctions proposées par ces poignées comme dupliquer, dimensionner, pivoter, dessiner, etc. Je n'en dit pas d'avantage ici, plusieurs articles couvrent déjà le sujet. Le point fort des poignées est de laisser l'utilisateur manipuler très librement un objet. Si vous concevez une application éducative avec Squeak, gardez à l'esprit la valeur ajoutée du halo pour l'utilisateur. Aussi essayez de prendre en compte l'effet halo lors de la conception de votre logiciel.

Comme je l'ai expliqué, les Morph sont manipulés, assemblés ou séparés interactivement par l'utilisateur. Mais ce n'est pas tout, les Morph sont manipulables logiquement par un système graphique de script.

Script Squeak

Dans le halo, la poignée turquoise en forme d'oeil à gauche ouvre le visualiseur d'un Morph. Un visualiseur présente un ensemble de commandes graphiques. Les commandes se rapportent à des caractéristiques physiques ou logiques d'un Morph. Elles fonctionnent en entrée ou sortie.

Dans Dr. Geo II, j'ai décidé d'utiliser Morph comme la couche graphique sous-jacente. En effet, je voulais bénéficier des fonctionnalités utilisateur de Morph pour : permettre l'inclusion de Morph extérieurs à Dr. Geo II dans celui-ci et vis-versa, et aussi pour donner la liberté à l'utilisateur d'utiliser les scripts Squeak dans Dr. Geo II. Cela offre une très grande liberté d'utilisation que l'on ne trouve pas dans d'autres applications de géométrie de ce type.

Dans la capture écran ci-dessous, un script Squeak est utilisé pour lier la position en y d'un point DrGeo à un ascenseur : lorsque l'utilisateur fait glisser l'ascenseur, le point est deplacé en fonction. Non seulement le point et l'ascenseur n'ont pas été conçus l'un en fonction de l'autre, mais cette relation logique est faite au niveau de l'utilisateur.

Squeak scripting

Programmer des Morph

Dans les deux sections précédents, nous avons exposé la grande liberté que le GUI Morph donne aux utilisateurs. D'un autre côté, le programmeur d'interface à base de Morph peut :

  • adapter à ses besoins des Morph existants. Adapter signifie : agréger plusieurs Morph dans un nouveau Morph, étendre ou modifier le comportement d'un Morph existant ;
  • écrire de zéro un nouveau Morph. Écrire un nouveau Morph est amusant car vous êtes complètement libre de décider de son comportement et de son aspect visuel (avec la méthode drawOn:).

Ci-dessous quelques exemples de Morph que j'ai écrits en adaptatant d'autres Morph ou en partant de zéro.

Pyramide de nombre PythagorasTable Rectange de point Dice.png

Il y a quelques années de cela, Python devenait mon langage de programmation favori pour l'écriture de logiciels éducatifs. J'ai écrit quelques articles sur le sujet (article 1, article 2, article 3). L'avantage le plus important était la relative facilité du langage de programmation. Utiliser GTK+ avec Python était plutôt facile une fois que l'on savait comment faire. Toutefois, la documentation de l'interface GTK+ pour Python était quasi inexistante, je devais lire la documentation C pour GTK+, le code source Python de l'interface Python-GTK+ et deviner comment l'utiliser dans Python. C'était parfaitement faisable, mais prenait beaucoup de temps. Il est amusant de constater que je fais quelque chose d'assez proche avec Smalltalk/Squeak à propos de Morph, car la documentation concernant ce dernier est assez légère. Mais grâce à la nature réflexive du langage Smalltalk, c'est beaucoup facile de trouver, tester et comprendre les fonctions dont j'ai besoin. C'est un autre avantage qui améliore la productivité du programmeur. Je reviendrai dessus lorsque je discuterai de l'IDE Smalltalk.

Thursday, April 17 2008

Why you could consider Smalltalk/Squeak as your preferred development platform for your next educational software - Part I

In this series of articles, I will highlight the advantages of using Squeak/Smalltalk to develop educational software. At some point and based on my experience, I will compare with other development languages. The focus of this article is for educators and developers interested in software programming education applications. In these articles, don't expect to learn about Smalltalk/Squeak programming, my goal is simply to give an overall picture, based on real experience. Feedback is of course very welcome.

Have you noticed in my title I wrote development platform and not programming language. Indeed Smalltalk, and Squeak particularly, is not only a language it is also an environment to write code. This aspect is rooted to the whole history of Smalltalk in the 70s at the Xerox Parc, where Alan Kay's team created several versions of Smalltalk in a specific graphical user interface environment with a mouse and windows. It came with unique features such as a virtual machine and an image architecture, a full object oriented and reflexive language.

Why an educator will care about that?

Some key aspects in Squeak/Smalltalk I find the most interesting when writing educational applications are:

  • the GUI, called Morph
  • the Smalltalk image, an unique environment to test your ideas and instantly save the state of your work
  • your application is portable to many OS architectures
  • a nice integrated development environment (IDE)
  • an unique way to debug your application
  • a rich set of interactive and multimedia classes
  • a skilled community

I will develop these points with concrete examples. One point per article. I will first discuss the Morph GUI system.

The Morph GUI

In this GUI framework, a Morph is a graphical unit. It can be a bitmap, a geometric object as a segment, an ellipse, a polygon, a character, a string, a video canvas, etc. A Morph can be inserted into another one, with or without layout. All the graphical objects in Squeak are assembled Morph. Morph can be manipulated interactively by the user. One helper for such manipulation is the halo system.

The halo

The first special feature a user meets with Morph is the halo system. Within the Morph GUI, Halo is a collection of object handles surrounding any kind of graphical objects such as windows, button, graphic, text strings, etc. The halo can be called on demand.

Morph halos

There are various functions like duplicating, resizing, rotating, repainting, etc. I won't be explaining further, several starter guides are doing it. The halo strong point, is being able to let the user manipulate the object freely. If you design an educational application with Squeak, keep in mind the user will be empowered by the halo system, so be sure to consider the halo effect when designing your software.

As I just explained, Morph can be physically manipulated, assembled or disbanded by the user. But this is not the end of the story, Morph can be logically manipulated and interlinked through a graphical scripting system.

Squeak scripting

In the halo, one handle is responsible for opening the viewer (the blue eye on the left). A viewer presents a set of graphical commands. Commands are about physical or logical characteristics regarding a Morph. Command work is input or output.

Not only can the user assemble various commands from one Morph, but he can also put together commands from several Morphs. So it it possible to link their behaviors.

In Dr. Geo II, I decided to use Morph as my graphical canvas underneath. Indeed, I wanted to take advantage of the Morph features for: inter-inclusion of Morph external to Dr. Geo II into it, and vis-versa, and also to give the freedom to the user to use Squeak Scripting with Dr. Geo II. It really empowers your application to do so.

In the screen shot bellow, Squeak scripting is used to attach the y-axis position of a Dr. Geo II Moprh point to a Morph slider: when the user moves the slider, the Dr. Geo's point moves accordingly. Not only do the point and the slider not know about each other, but this logical relation is performed at the user level.

Squeak scripting

Programming the Morph

What we described in the two previous sections was about how the Morph GUI empowers the end user. On the other hand, the Morph GUI programmer is able to:

  • reuse existing Morphs to fit his needs. Reuse, can be: aggregate several Morphs in a new type of Morph, extend the behavior of a Morph,
  • write from scratch a new Morph. Writing a new Morph is fun because you are completely free to decide how it will behave and look (with drawOn: method).

Bellow are a few examples of Morph I wrote through reuse and modification of previous ones, or from scratch.

Pyramide de nombre PythagorasTable Rectange de point Dice.png

A few years ago, Python was becoming my favorite programming language to write educational application. I wrote a few articles on this topic (article 1, article 2, article 3) . The biggest advantage was the ease of use of the programming language. Using GTK+ with Python was pretty easy once you knew about it. However as the documentation about the GTK+ Python binding was mostly inexistent, I had to read the GTK+ C documentation and the Python source code binding then guessed about how to use it in Python. It was pretty do-able but quite time consuming. Funnily enough, I happened to do the same thing with Squeak and the Morph GUI as the documentation was also very thin, but thanks to the Smalltalk reflective nature, it is so much easier to find, to test and to understand the necessary features. This is another advantage which empowers the programmer this time. I will explain it later when discussing the Smalltalk IDE.

Why Squeak? Part I

In this series of articles, I will highlight the advantages of using Squeak/Smalltalk to develop educational software. At some point and based on my experience, I will compare with other development languages. The focus of this article is for educators and developers interested in software programming education applications. In these articles, don't expect to learn about Smalltalk/Squeak programming, my goal is simply to give an overall picture, based on real experience. Feedback is of course very welcome.

next article

Have you noticed in my title I wrote development platform and not programming language. Indeed Smalltalk, and Squeak particularly, is not only a language it is also an environment to write code. This aspect is rooted to the whole history of Smalltalk in the 70s at the Xerox Parc, where Alan Kay's team created several versions of Smalltalk in a specific graphical user interface environment with a mouse and windows. It came with unique features such as a virtual machine and an image architecture, a full object oriented and reflexive language.

Why an educator will care about that?

Some key aspects in Squeak/Smalltalk I find the most interesting when writing educational applications are:

  • the GUI, called Morph
  • the Smalltalk image, an unique environment to test your ideas and instantly save the state of your work
  • your application is portable to many OS architectures
  • a nice integrated development environment (IDE)
  • an unique way to debug your application
  • a rich set of interactive and multimedia classes
  • a skilled community

I will develop these points with concrete examples. One point per article. I will first discuss the Morph GUI system.

The Morph GUI

In this GUI framework, a Morph is a graphical unit. It can be a bitmap, a geometric object as a segment, an ellipse, a polygon, a character, a string, a video canvas, etc. A Morph can be inserted into another one, with or without layout. All the graphical objects in Squeak are assembled Morph. Morph can be manipulated interactively by the user. One helper for such manipulation is the halo system.

The halo

The first special feature a user meets with Morph is the halo system. Within the Morph GUI, Halo is a collection of object handles surrounding any kind of graphical objects such as windows, button, graphic, text strings, etc. The halo can be called on demand.

Morph halos

There are various functions like duplicating, resizing, rotating, repainting, etc. I won't be explaining further, several starter guides are doing it. The halo strong point, is being able to let the user manipulate the object freely. If you design an educational application with Squeak, keep in mind the user will be empowered by the halo system, so be sure to consider the halo effect when designing your software.

As I just explained, Morph can be physically manipulated, assembled or disbanded by the user. But this is not the end of the story, Morph can be logically manipulated and interlinked through a graphical scripting system.

Squeak scripting

In the halo, one handle is responsible for opening the viewer (the blue eye on the left). A viewer presents a set of graphical commands. Commands are about physical or logical characteristics regarding a Morph. Command work is input or output.

Not only can the user assemble various commands from one Morph, but he can also put together commands from several Morphs. So it it possible to link their behaviors.

In Dr. Geo II, I decided to use Morph as my graphical canvas underneath. Indeed, I wanted to take advantage of the Morph features for: inter-inclusion of Morph external to Dr. Geo II into it, and vis-versa, and also to give the freedom to the user to use Squeak Scripting with Dr. Geo II. It really empowers your application to do so.

In the screen shot bellow, Squeak scripting is used to attach the y-axis position of a Dr. Geo II Moprh point to a Morph slider: when the user moves the slider, the Dr. Geo's point moves accordingly. Not only do the point and the slider not know about each other, but this logical relation is performed at the user level.

Squeak scripting

Programming the Morph

What we described in the two previous sections was about how the Morph GUI empowers the end user. On the other hand, the Morph GUI programmer is able to:

  • reuse existing Morphs to fit his needs. Reuse, can be: aggregate several Morphs in a new type of Morph, extend the behavior of a Morph,
  • write from scratch a new Morph. Writing a new Morph is fun because you are completely free to decide how it will behave and look (with drawOn: method).

Bellow are a few examples of Morph I wrote through reuse and modification of previous ones, or from scratch.

Pyramide de nombre PythagorasTable Rectange de point Dice.png

A few years ago, Python was becoming my favorite programming language to write educational application. I wrote a few articles on this topic (article 1, article 2, article 3) . The biggest advantage was the ease of use of the programming language. Using GTK+ with Python was pretty easy once you knew about it. However as the documentation about the GTK+ Python binding was mostly inexistent, I had to read the GTK+ C documentation and the Python source code binding then guessed about how to use it in Python. It was pretty do-able but quite time consuming. Funnily enough, I happened to do the same thing with Squeak and the Morph GUI as the documentation was also very thin, but thanks to the Smalltalk reflective nature, it is so much easier to find, to test and to understand the necessary features. This is another advantage which empowers the programmer this time. I will explain it later when discussing the Smalltalk IDE.

Monday, December 3 2007

iStoa

ofsetSmalltalk.png Le projet iStoa a pour objectif le développement d'une plateforme pédagogique libre d'activités interactives et de suivi par Internet pour les élèves de l'école primaire. Les premières activités développées concerne les mathématiques au cycle 3, CE2. Le 1 décembre 2007, j'ai présenté, pour la première fois, le projet lors de la rencontre annuelle du cercle des développeurs Smalltalk francophones (diaporama).

Dans l'antiquité Grec, stoa désigne le portique des bâtiments, un espace couvert entre le mur du bâtiment et les colonnes. C'était un lieu d'échanges intellectuel et commercial.

C

iStoa c'est un espace électronique d'échanges et de contacts entre un élève et ses activités d'une part et le maître d'autre part. L'élève progresse dans des activités interactives que l'enseignant a sélectionnées. Au fur et à mesure de l'utilisation de iStoa, un modèle de connaissance de l'élève s'élabore. Il permet au système de proposer des activités supplémentaires en soutien et d'informer l'enseignant sur la progression de l'élève.

Pour chaque acte d'apprentissage dans une activité, iStoa enregistre l'ensemble des actions et objets produits par l'élève, ces éléments sont appelés des traces.

Activités interactives

Notre objectif est de proposer des niveaux d'interaction et de modélisation suffisamment élevés pour favoriser une approche constructiviste plutôt que béhavioriste. Il arrivera cependant que cette dernière soit présente. Les activités sont donc très souvent construites avec des artefacts que l'apprenant manipule au cours de son activité. L'artefact est l'unité de base des activités pédagogiques, nous en développons beaucoup, une activité peut comprendre 1, 2, 3 artefacts. Un artefact modélise un outil pour l'apprentissage pédagogique, l'artefact peut être une invention purement informatique - comme un micro-monde de géométrie interactive - ou bien une transposition informatique d'un outil utilisé en situation de classe - comme l'utilisation d'une grille pour la décomposition d'un produit de deux nombres.

HPartedGrid PartedGrid2x2 PartedGrid3x3 ProductCalculusExt ProductCalculus PythagorasTable

Nous souhaitons donc que l'environnement virtuel de iStoa soit le plus riche et interactif possible, afin que l'expérience avec iStoa ne soit pas un appauvrissement par rapport à la richesse des environnements d'apprentissage réel. Par exemple, pour les activités centrées sur la multiplication, nous proposons des artefacts pour travailler sur le sens même de la multiplication (grille de jetons, construction de rectangles de jetons, décomposition d'un produit, multiplication par 10,...), et non pas seulement sur la mémorisation des tables de multiplication ou l'entraînement à la technique opératoire.

IFIMulD2Exo IFIMulC1Exo IFIMulD3Exo

Base de données

Le recueil des données sur l'apprentissage de l'apprenant est une préoccupation centrale de iStoa. De même qu'un enseignant peut consulter le cahier de brouillon d'un élève pour analyser finement sa pratique, nous souhaitons autant que faire se peut offrir ce type de possibilité.

Ainsi à l'issue d'un exercice interactif réalisé par l'apprenant, iStoa enregistre dans une base de données un recueil extrêmement fin des actes de l'apprenant au cours de cet exercice, c'est la trace de l'apprenant. La contrainte sur la base de données est relativement forte car la trace est assez importante et complexe. Elle se compose d'instances d'objets nécessaires à l'exercice et d'une collection d'évènements clavier et souris permettant une relecture de l'activité de l'apprenant.

Modèles de connaissances

A l'issue des activités de l'apprenant, son modèle de connaissance est régulièrement mise à jour dans la base de données. Ce modèle s'appuie sur un autre modèle des compétences à acquérir, ce modèle est un graphe orienté et pondéré que nous appelons réseau notionnel. Le but de ce réseau, outre une formalisation des compétences, est de calculer des parcours d'apprentissages et/ou de remédiations.

notions.png

Console du maître

L'enseignant , depuis sa console web, consulte les traces des actes des apprenants : résumé des exercices réussis ou non, visualisation du modèle de connaissance, et possibilité de rejouer les activités. Pour cette dernière fonction, l'intérêt est de rejouer les exercices qui ont posé des difficultés à l'apprenant, pour une analyse plus fine par le professeur.

Ces quelques lignes précisent les grandes thématiques du projet. Nombres de ces aspects sont développés, beaucoup d'autres sont en cours de développement et de test. Si vous souhaitez rejoindre ce projet, allez sur www.istoa.net.

Saturday, November 24 2007

OLPC, le lecteur eBook ultime ?

Dès sa conception, en plus d'être un ordinateur portable pour enfant, l'OLPC a été pensé et conçu comme un lecteur de livre électronique. En cela il répond à plusieurs critères qui en font effectivement une très intéressante solution pour ce domaine.

Pour évaluer l'intérêt d'une utilisation en configuration livre électronique, plusieurs critères sont à prendre en compte.

petitprince.png



L'écran

C'est sans aucun doute un des points forts. L'écran dispose de deux modes : un mode couleur retro-éclairé et un mode noir et blanc lorsque l'écran n'est plus rétro-éclairé ou bien lorsqu'il est utilisé en plein soleil. En noir et blanc la résolution passe à 200dpi, autant dire un gain très important pour le confort de lecture : les caractères sont parfaitement lissés, les contours sont nets, la fatigue visuelle est réduite d'autant.

Deux photographies d'une même illustration en couleur et noir/blanc illustre mieux le propos.

Ci-dessous un détail en couleur :

illustration-detail-coul.png Le même détail avec l'écran en mode noir et blanc :

illustration-detail-nb.png

Cette illustration est extraite du livre Le Petit Prince d'Antoine de Saint-Exupéry. C'est le livre de classe du moment de mon fils ainé. Malheureusement, il ne peut pas l'amener à la maison. Fort heureusement, il est dans le domaine public et il est disponible depuis le formidable site Ebooks libres et gratuits.

Les deux photographies montrent l'important gain en résolution et finesse lors du passage au mode noir et blanc. Dans ce dernier mode, les pixels ne sont pas visibles sur la photographie. Les deux photographies ont été prises dans les mêmes conditions de distance et de zoom. Gardez à l'esprit que la netteté de ces photos est limitée par la finesse de l'appareil photographique utilisé pour le prise de vue.

Pour lire des romans comme Le Petit Prince, basculer l'écran en mode portrait est vraiment un plus. La mise en forme à l'écran des pages est alors assez proche de celle d'un livre papier. En plus du basculement en mode portrait, l'OLPC propose un basculement de l'écran qui masque complètement le clavier, le livre électronique peut alors être transporté par sa poignée blanche. La vidéo ci-dessous montre la manipulation pour basculer l'OLPC en mode lecteur de livre électronique (La vidéo est au format ouvert Ogg/Theora. En cas de doute, installez l'excellent lecteur multimédia libre Video Lan pour la lire) :

ebook1.png

La navigation dans un livre

boutons.png La navigation se fait avec un gros bouton à quatre positions à gauche de l'écran. La navigation page à page se fait avec quatre petits boutons à droite de l'écran. On peut regretter que la navigation page à page ne se fasse pas sur des pages entières. Cela peut sans doute se régler au niveau du logiciel mais je n'ai pas trouvé.

Pour lire des livres, le plus facile est le mode PDF. Le logiciel de lecture a un excellent rendu graphique, l'ergonomie pour la navigation est en revanche perfectible.

Les livres électroniques

Comme je l'ai mentionné plus haut, le site Ebooks libres et gratuits édite des livres du domaine public. Ceux-ci sont en fait le fruit d'un travail éditorial par un groupe de bénévole. Plusieurs formats sont proposés dont les formats PDF, mobipocket et eReader. A ma connaissance l'OLPC ne supporte que le format PDF. Parmi les grands classiques pour enfant disponibles sur ce site, on peut citer : Le petit prince, Croc blanc, Les lettres de mon moulin, Pinocchio, Les contes d'Andersen. Il y en a sans doute beaucoup d'autres, le vivier est important.

C

En passant par le navigateur web intégré de l'OLPC et la généreuse connexion wifi de mon voisin, installez ces livres ne prend que quelques minutes. Ils sont ensuite disponibles dans le journal du portable.

Conclusion

Le prix en nombre de l'OLPC est annoncé autour de 180$, soit 120/130€. Pour ce prix là, en plus d'un intéressant lecteur de livres électroniques, l'enfant dispose d'un véritable ordinateur pensé et conçu pour lui avec quelques bijoux comme Squeak, un réseau WIFI dont les ponts sont les portables eux-mêmes (une école équipée de la sorte a ainsi une couverture réseau complète), un superbe logiciel musical Tam Tam. En outre les possibilités d'extensions sont réelles, voir par exemple mon adaptation de Dr. Geo pour l'OLPC.

Les lecteurs de livre électronique qui existent par ailleurs ont des prix de l'ordre de 300/350€ minimum, tout en offrant beaucoup moins. En revanche ceux-ci sont plus légers et plus petits. L'OLPC pèse environ 1.5kg, le Kindle d'Amazon pèse 280g, il est vendu 400$. En revanche ce dernier semble reposer sur un système verrouillé qui invite les usagers à se connecter à un bookstore dédié. Exit l'accès à Ebooks libres et gratuits ?

Postscriptum

Si on faisait un calcul...

Quel serait le coût de revient d'un tel portable pour un enfant à partir du CE1 ?

Sachant qu'une telle machine est faite pour durée au moins 4 ans, à un prix disons de 130€, le coût de revient mensuel serait d'environ 2.71€/mois ou d'environ 9 cents par jour. Soit 3 cafés.......par mois.

Friday, June 22 2007

Squeak, un outil pour modéliser

Squeak est un environnement libre multimédia de développement Smalltalk. Son environnement graphique est lui-même largement écrit dans ce langage. Il comprend des outils spécifiques de développement mais aussi des objets multimédias très intéressants pour une utilisation dans un contexte éducatif. Un de ces composants s'appelle E-toys (jouets électroniques). Nous allons vous montrer dans la suite un exemple d'utilisation en collège avec des élèves de 4ème.

Une interface graphique révolutionnaire

Avec E-toys il s'agit littéralement de dessiner un objet, soit à la main soit à l'aide de formes prédéfinies, et de s'amuser avec en les programmant graphiquement. Les commandes sont assez nombreuses mais les plus importantes sont du type mouvements (coordonnées, translation, rotation), calculs et utilisation de variables. Les commandes sont disponibles sous la forme de briques qu'il suffit de tirer-déposer pour les assembler afin de définir des scripts. Les scripts peuvent s'exécuter à intervalle régulier, il est possible d'avoir plusieurs objets et scripts, exécutés à des intervalles différents ou non. Enfin une brique de type TEST permet d'introduire la notion de condition dans le déroulement des scripts.


Figure 1 – Glisser-déposer de la brique « tourne de » dans le panneau du script de la voiture. Noter que la brique « avance de » est déjà présente dans le panneau.

La conception et l'agencement des différents composants d'E-toys permettent – dans le cadre de la modélisation d'un phénomène, concept ou objet – une approche de la construction du savoir de l'élève par manipulations interactives. L'élève, plongé dans le micro-monde des E-toys, peut alors librement expérimenter. Dans sa démarche expérimentale, il ne manquera pas alors d'échanger avec ses camarades sur les meilleures stratégies à suivre, les échanges sont alors nourris et riches.

Dans le cadre des itinéraires de découvertes pour les classes de 4ème (IDD dans le jargon Éducation Nationale), une professeure de mathématiques et un professeur de technologie d'un collège des Landes ont mis en place une série d'ateliers au cours desquels les élèves avaient pour objectif la modélisation du fonctionnement d'une horloge à aiguilles.

La modélisation de l'objet invite les élèves à réfléchir sur le fonctionnement d'une horloge et sur les concepts mathématiques sous-jacents comme les angles, l'organisation des heures, minutes, secondes ou bien même l'exploration de nouvelles notions comme la rotation des aiguilles (la nécessité d'un centre et d'un angle de rotation pour la définir apparaît alors).

La modélisation de l'horloge

L'archétype de l'horloge se compose d'un cadran et de trois aiguilles. La conception du cadran dans Squeak est l'occasion d'une libre expression artistique mais plus sommairement elle est parfois construite avec un simple disque et des rectangles aux points cardinaux. Les aiguilles sont rapidement représentées par trois rectangles allongés de couleurs et dimensions différentes.

Vient ensuite le moment de la réflexion : « les aiguilles doivent tourner ». Comment ? Où ? Et aussi de combien ?


Figure 2 – L'importance du centre de rotation lors du pivotement de l'objet. E-toys permet de dresser un contour de la notion par manipulations successives de la fonction rotation (poignée bleue en bas à gauche) et déplacement du centre.

Le professeur explique à l'aide de Squeak, comment des objets peuvent être interactivement pivotés et comment déplacer le centre de rotation d'un objet. Il montre alors la brique permettant de tourner un objet par programmation et non plus par manipulation interactive. Le reste semble un jeu d'enfant pour modéliser l'horloge. C'est pourtant là une difficulté pour les élèves, ils doivent réinvestir ce qu'ils viennent juste de découvrir. Un transfert de connaissance en sorte, mais heureusement E-toys grâce à son feedback immédiat lors de la manipulation des objets facilite ce transfert et cette appropriation.

scriptEtoys.gif
Figure 3 – Une horloge conçue par deux élèves. Celle-ci à la particularité de proposer trois cadrans, un principal et deux secondaires pour deux autres fuseaux horaires. Bien sûr toutes les aiguilles tournent !

Le script simulant le fonctionnement des aiguilles est réglé pour s'exécuter toutes les secondes. Ainsi l'aiguille des secondes devra à chaque tic, pivoter de 360/60=6°, le centre de rotation de l'aiguille doit être bien placé. Enfin dans le panneau du script de l'horloge, l'aiguille aura pour instruction de tourner de 6° (cf. figure 4). L'aiguille des minutes doit pivoter de 360/60=6° à chaque minute, soit 6/60=0,1° à chaque seconde. L'aiguille des heures pivote de 360/12=30° à chaque heure (soit 3600 s), soit 30/3600=1/120° à chaque seconde. Dans le script, cela se traduit par trois instructions « tourne de » pour chaque aiguille.

horlogeEtoys.gif
Figure 4 – Le script simulant le fonctionnement de l'horloge. Le chronomètre bleu permet d'enclencher le script.

Conclusions

E-toys permet de réinvestir des connaissances ou bien d'explorer de nouvelles notions. Certains élèves peu enclins au travail de réflexion se sont investis sérieusement dans les ateliers. L'approche par manipulation en est la principale raison. Enfin, le travail de réflexion nécessaire pour parvenir au résultat n'est pas escamoté, il est en fait complètement intégré et apparaît naturellement lors de la nécessaire définition du script. Dans ce bref article nous avons voulu vous montrer la philosophie sous-jacente à E-toys qui, pour les auteurs du produit, prend ses racines dans l'approche pédagogique de Maria Montessori.

Les concepteurs et auteurs de Squeak ne sont pas des inconnus, il s'agit en partie de l'équipe du centre de recherche Xerox Parc en Californie qui dans les années 70 inventa la souris, les interfaces graphiques, le réseau ethernet, l'imprimante laser ainsi que le langage Smalltalk, conçu au départ pour être programmé par des enfants. Alan Kay un des scientifiques de cette équipe a reçu depuis de nombreux prix internationaux dont le Turing Award en 2004. Il participe également à l'initiative de l'ordinateur portable à 100$ pour l'éducation.

Quelques liens

Wednesday, June 20 2007

Audit des TICE dans l'éducation

La mission d'audit de modernisation de l'état a établi en mars 2007 un intéressant rapport de plus de 50 pages sur la situation des TICE dans l'Education Nationale. A plusieurs reprises il est fait mention du logiciel libre et des ressources libres produites par les enseignants.

Quelques extraits choisis

Page 25, la proposition 8 ne fait qu'indirectement mention au libre via EOLE. L'offre libre en la matière est large : AbulEdu, Freeduc-cd, Pingoo, SLAES, SLIS dont beaucoup sont institutionnelles :

Proposition n°8 : Concevoir pour les outils nécessaires à la mise en oeuvre des TICE (réseaux dans les établissements, configuration type « classes mobiles », postes de travail, logiciels, etc.) des référentiels nationaux, techniques et fonctionnels, répondant aux évolutions technologiques, à l'image de ce qui a été fait avec le SDET.
...
Un système de référentiels doit pouvoir déboucher sur une certification des outils déployés localement. Dans un tel schéma, l'administration centrale certifierait nationalement certains outils, développés en interne (comme l'architecture EOLE) ou commercialisés

Page 25, le libre est vu sous le prisme de la concurrence alors que c'est bien autre chose :

3. La « concurrence » des ressources libres

L'apparente faiblesse du marché commercial des contenus numériques ne doit pas occulter la richesse de la production des enseignants eux-mêmes, sous forme de contenus mais aussi de scénarios pédagogiques utilisant les TICE. Gratuite, diffusée par le « bouche à oreille » (ou « le clavier à écran »), cette offre « parallèle » permet de combler un grand nombre de besoins, tout enréduisant d'autant la taille du marché commercial.

Mais cette production reste diffuse, hétérogène, mal connue. Sa richesse n'est donc pas pleinement exploitée, notamment du fait de contraintes techniques (par exemple les questions de compatibilité matérielle ou logicielle).

De plus, le temps nécessaire pour la préparation de ressources numériques de qualité, conjugué au peu de visibilité sur la pérennité des développements en cas d'évolution du matériel, voire des abonnements aux contenus numériques, peut également être un facteur dirimant pour des enseignants même motivés.

Page 35, il est fait référence à un possible soutien

3. Une plus grande structuration de l'offre « libre » pour en exploiter toute la richesse

Il convient d'assurer l'optimisation et la pérennité de l'investissement personnel consacré au développement d'outils pédagogiques par les enseignants, en leur assurant une diffusion la plus large possible ainsi qu'une certaine stabilité dans le temps.

Il n'est pas possible d'homogénéiser la production, par nature foisonnante, de l'ensemble des enseignants. Le référentiel LOM-FR51 fournit certes un langage descriptif unifié pour les ressources numériques, compatible avec les normes internationales. Mais son essence même est de classer, non de structurer.

La définition de référentiels nationaux pour les outils TICE (cf. partie II.A.2) et un soutien à la production réorienté sur l'établissement de normes de qualité (cf. partie II.D.1) pourraient fournir un cadre plus affirmé pour la structuration de la production de contenus par les enseignants.

Bien conçu, un guide d'aide à la production de ressources numériques peut s'avérer un outil incitatif fort, car garantissant la compatibilité et la pérennité des ressources produites, plus qu'un carcan....

Conclusions

On peut regretter la timidité du rapport en regard des possibilités offertes par le logiciel libre en terme d'interopérabilité, de pérennité, d'indépendance technologique, d'adaptabilité et surtout comme nouveau paradigme de création collaborative de richesse intellectuelle.

A lire à la fin du rapport, la réponse du ministère sur le contenu du rapport et en suivant la réponse des rapporteurs, il y est encore fait référence au libre. Même si la mention du libre est encore faible, et toute référence à son soutien encore plus faible, le logiciel libre fait tranquillement sa place dans le système éducatif grâce à la pugnacité des enseignants et leur attachement aux valeurs liées à celui-ci.

page 2 of 2 -