RSS 2.0 news feed
News Archive

Public Sources
  Mercurial Repositories

Git repositories

  Arduino RFID Door Lock
  XBee network controller
  LS30 Burglar Alarm
  Online store

TRS-80 software I wrote
  System-80 Gallery
  Zeta BBS
  Printer Utils
  Operating Systems
  Library of C
  Include files
  FORTRAN Programs
  File Utils
  Disk Utils
  Comms Programs
  CMD File Utils
  BASIC Programs
  Uni Assignments

My PGP Key

Hats I wear
  aus.* newsgroups

  New Technology
  Ethical Internet Advertising
  Digital Freedom
  Age of plenty
  Ditch Windows

  Big Server

  Zeta Internet

Your donation gives me time
to develop more cool free stuff

Stop the Australian (Anti)Vaccination Network
Ohloh profile for nickandrew

Out Campaign


Copyright (C) 2002, Nick Andrew

This program is distributed under the terms of the GNU General Public License (see http://www.gnu.org/licenses/gpl.html)

I wrote this simple CGI script to help my youngster with beginning maths. The script generates a random math question (addition only supported at present) which it presents as a form to the client. When the client types an answer and submits, the script reports right or wrong to the client and presents another question. The script counts the number of questions asked and the number of correct answers.


  • A correct answer will result in a random friendly image being displayed. No images are supplied with this program - I just grabbed a few icons from the net.
  • The score is kept in 2 cookies which expire after 1 hour.


  1. Simply make a new directory on your webserver and copy index.cgi into it. Make sure you enable "Options +ExecCGI" on the directory.
  2. Create a subdirectory called Right and put some icons into it. On a correct answer, the script will choose one of the files at random and display it as an image. Only filenamed ending in .jpg are chosen.

Feedback and improvements

If you make any improvements to this script, please send them to me at <nick@nick-andrew.net>.

While writing this script, I was thinking of some improvements for the future:

  • At present the script just presents random questions without limit. It would be better for the student to have a finite set of questions which they can answer and then complete a module, or a level, or simply have a break before going onto the next set.
  • The script should be able to issue math questions of various difficulty levels. How do we know how difficult any given question is? For a small child, "adding 2" can be a daunting challenge when compared with the familiar "adding 1". Does a standardised grading exist for the difficulties of math questions, which this program could use, in order to generate random questions of the appropriate difficulty level?
  • Assuming the above is taken care of (i.e. the program can generate questions with varying amounts of difficulty), the program should be able to track the progress of a student and adjust its difficulty level in accordance with the student's skills and ability. For example if the student answers more than some percentage of the current grade questions correctly, then start to present harder questions.
  • If the program is going to issue harder questions, there must also be an explanation phase to show the student how to solve that type of question. The program would need to alternate between providing explanations and testing the student's knowledge.


math-trainer-0.1.tar.gz (2k)
The script plus this README file.


Initial release.