The most recent version of the code is available on GitHub

What is IMathAS

IMathAS is an Internet Mathematics Assessment System. It is primarily a web-based math assessment tool for delivery and automatic grading of math homework and tests. Questions are algorithmically generated and numerical and math expression answers can be computer graded. Beyond that, IMathAS includes learning management tools, including posting of announcements, text files, and attachments, as well as discussion forums and a full gradebook. In postings and assessments, IMathAS allows accurate display of math and graphs, with simple calculator-style math entry and point-and-click graph creation. It is most similar to (and inspired by) WebWork and WIMS, and similar to commercial and publisher-produced systems like iLrn, MathXL, WebAssign, etc.

IMathAS was written by David Lippman (c) 2006-2014, with with partial support from the Lumen Learning, WA State E-Learning Council, the Transition Math Project, and Pierce College. It is distributed under the GPL. See the license.txt file distributed with IMathAS for more details and credits for components attributed to others.


IMathAS was built on three primary philosophies:

Core Features include:


For details on how the system works, look over the Help File or view training and support resources.

Why a new system

You may be wondering why another system, when excellent systems already exist.

For my purposes, WebWork and WIMS were too difficult to install (since I don't have direct access to my school's webserver). I didn't want to use commercial or publisher produced systems because I don't want students with used books to incur additional cost.


  1. Download IMathAS, extract it, and copy the files to your webserver.
  2. Alternatively, if you have shell access to your server, enter the directory you want IMathAS in, and checkout the code from SVN: svn checkout Using SVN greatly simplifies upgrading.
  3. If your web host requires that you create databases through the web panel, create a database and database user for IMathAS now. If you have a username/password with database creation priviledges, you can wait and use it later in the install process.
  4. Open a browser and access install.php. This script will write the config.php file, change directory permissions, copy distribution files, and set up the database. At the end of the install you will be given the opportunity to install a small set of example questions. Note: If you are running on a Windows server, you may need to set directory permissions manually.
  5. Log into IMathAS. If you didn't change the initial imathas user settings when running install.php, log in as 'root' with password 'root'. If you did not change the inital imathas user settings, click the "Change Password" link now to change the password to something substantial. Alternatively, you can go into the Admin page, create a new user with Admin rights, then delete the 'root' admin.
  6. Edit loginpage.php and infoheader.php if desired. If you plan to use the new instructor account request page, edit newinstructor.php


To upgrade your installation:

  1. If you installed using SVN checkout, then run svn update to update the code files.
  2. If you copied files to your webserver to install, copy the updated files to your server to overwrite the old ones. It is recommended that you not delete the original files first, or you will lose your configuration files and and the database upgrade record file (upgradecounter.txt).
  3. Note: Several files (config.php, loginpage.php, newinstructor.php, and infoheader.php) were copied from corresponding distribution files when you first installed, and will not be overwritten when you update, whether you follow method 1 or 2.
  4. Log into your installation using an Administrator account, and access the /upgrade.php file to make any necessary database upgrades

Installation Issues/Troubleshooting


If you are upgrading from IMathAS 1.6 or later, access update.php to install any new database changes and learn about any other changes necessary. If you are upgrading from a version earlier than 1.6, you'll need to manually apply changes from the upgrade.txt file.

System Requirements


PHP 5 and MySQL 4+ are recommended, and required from some features. Most of the system will work with PHP 4.2+ and MySQL 3.23, but future compatibility is not guaranteed.

PHP with GD2 and Freetype are recommended for best image-based graph support

IMathAS will not work with the suhosin extension for PHP, which disables the predictable random number generation IMathAS relies on.

Server Requirements

An installation serving 7000+ students with 300+ concurrent users has operated well on a commercial shared web server.


IMathAS uses a standard databased-stored sessions-based system. If a user does not log out, the session is cleared from database after 24 hours.

Questions (written by teachers) are passed through an interpreter that only allows authorized functions to be used. Student answers are evaluated client-side using JavaScript, and are never evaled server-side.

Install Notes

The install.php script automatically handles the following install steps. They're listed here in case anything goes wrong: