In the state-of-the-art, programmers working for toy manufacturers
create the content that interactive toys run. This means that such a
toy can only do one predefined thing, which is restrictive and boring
(and can be highly annoying for the parents after a while). It also
means that technical people are defining what the toys do, and not the
creative people.
To solve this, we have created a platform for creating interactive
toys, which we call ESP (Edutainment Sensor Platform).
Child playing with ESP's StoryToy
ESPRanto
For ESP, we have created a very easy-to-use programming language
ESPranto with which we allow end-users (children, teachers, parents,
professional content creators, ...) to specify content for interactive
toys.
The language is fully functional: we have a compiler that runs on a
PC, a byte code format for storing the compiled programs, and an
interpreter that runs on simple hardware that is embedded into the toys.
However, to make ESPranto even more user-friendly, we need a
graphical editor with which our end-users can easily specify a program.
We have done research with prototypes on our end-users and from this we
gained knowledge on what kind of tool we need, and on which kinds of
graphical representations work well and which not.
Prototype of an editor for ESPranto
The assignment
The assignment is to implement a fully-functional graphical editor for
ESPranto.
The editor should
be able to graphically depict a textual ESPranto program in an
appealing way
allow the end-user to edit the graphically depicting program in a
user-friendly way
be able to construct from this graphical representation a
pretty-printed ESPranto program that can be fed into the compiler
We want the tool to be such that using it feels like being engaged in
a creative process (like editing a storyboard) than like actual programming.
So one of the challenges is hiding all the technical details and in creating
a smooth interaction. One other challenge is that, since we are a research
facility, it may turn out that we need to change details in our language,
or in the graphical representation, later on. The tool should be flexible
enough to allow for this.
Of course, we will provide you with the required tools: the ESPranto
compiler, the sensors that go into the animals and the embedded
hardware that runs the interpreter.