Issue 81 * November 03 2009

revZoo Teaches German
Revlets Enable a Multimedia learning application for the German language.

by Andreas Stämpfli

 

I had the opportunity to code this application for an educational bookstore.

The goal was to create an application that successfully teaches the German language syntax for primary class pupils.

The application had to work in a client-server environment. A maximum of 30 children can play and learn on their computers and the teacher can control the results of their work from any computer by logging into the teachers' section of the application. So, an important feature is:

Saving children results for reviewing by the teacher:

This was achieved by saving children’s progress stacks on a server machine. For this, the FTP functions of Rev were used, like this:

--save stack on a remote server:

save stack SchuelerName as PfadLokal & "/" & SchuelerName & \
       ".rev"   --save stack locally
put "binfile:" &  PfadLokal & "/" & SchuelerName & ".rev" \
       into DateiZumUpload --uploadpath
put  (FTPServer & "/" & SchuelerName &  ".rev")  into FTPstring
put URL   DateiZumUpload     into  URL   FTPstring   --stack \
       upload to server

The game state for each child is stored in the child’s stack.

Another example, how elegantly Rev can save a text file on a remote Server:

--save Text file on a remote server:

--save Text file on a remote server:

put "" into url  (ftpServer & "/" & "list.txt")

To minimize network load, the speech files are downloaded once, when first used. Those are stored on the users machine. Because of mixed MacIntosh / Windows environments I was happy to use the given Rev paths – which are the same for all environments:

put (specialFolderPath("Home") & "/RechtschreibZoo") into \
       PfadLokal

Object handling - Switch graphics on the fly:

The application uses five main graphic sections. However, thirty exercises behind those sections are basically the same.

To minimize stack cards (and coding) – the graphics are changed on the fly by navigating to the stack card.

--Lion: switch graphics:

if Szene = "Lion" then
   put image "bgauf_lo.jpg" of card "Lion" of stack "Lion" into \
          image "Grafik1" of card GewaehlteUebung of stack "Uebungen"
   put image "maus_loe.gif" of card "Lion" of stack "Lion" into \
          image "Grafik2" of card GewaehlteUebung of stack "Uebungen"
end if

Making a Web version:

As an alpha version Rechtschreib-Zoo is now being ported to Rev 4. Porting the app to Rev 4 and saving as a revlet was not a big challenge. Thanks to RunRev!

A few things to take into account for online applications:

  • Server stress can be a problem with big files. We minimize this, by using cached sound files on the client side. (Maybe this is a feature of the final Rev 4 version?)
    Rev does hold URLs in memory for the session. So you can preload sound and image objects before they are needed and use them from memory.
  • User experience: We need to implement feedback, when loading takes longer than expected.
    Loading can take place in the background and is not blocking. There are some FTP statements to achieve this.
  • We must permanently check the server connection – if it fails the app must inform the child, that the game state can’t be saved.

d)  To save a stack on a remote server you must first save it locally. Then you can upload the stack file by ftp.

Networking

We like the fact that we can deploy a web version and a CD-ROM Version very easily with Revolution.

If you would like to take a test drive: (alpha Web-Version)

http://www.rechtschreib-zoo.ch/index1.html

About the Author

Andreas Stämpfli is a teacher of Mathematics and a Revolution user

Main Menu

What's New

Enterprise plus free Training