Aljegrid is a tool used for teaching math and other subjects, and is also a tool (in Phase 2) used to develop smartphone apps and online communities. It includes a new programming language called Aljebrist.
Aljebrist
Aljebrist is an open source scripting language used to extend the functionality of the Aljeboard (math tutoring) software. The sister language of Aljebrist is called Aljegroup, which is used to lay out information on the screen, whereby blocks of text are grouped together using square brackets. The Aljebrist/Aljegroup combo is called the Aljebrist Run-Time System (ARTS), implemented in the Java programming language.
Business Model
Teachers pay a subscription fee of $5/student/year to enable the teaching of multiple students simultaneously. Tutors pay a one-time fee of $20 to use Aljegrid for one-on-one tutoring, plus $20/year (first year free) to accept credit card payments and for inclusion in the tutor directory. Teachers and volunteer tutors employed by nonprofit organizations pay no fees.
Math Aljeboard
Math is taught using the Aljeboard, an interactive whiteboard consisting of text in monospaced mode. The most commonly used commands are as follows:
- Use the arrow keys to move the cursor.
- Type underscore(s) to underline the numerator of a fraction.
- Use the special character command (Ctrl+K) to insert special characters such as pi, square root, sum, and integral.
- Use Tab/Shift+Tab to display/undo the next step in the math problem being solved.
- Type question mark (?) to explain the current step or to break the current step down into lower-level steps.
- Click on Help after typing question mark to access the help system.
Miscellaneous commands:
- Use asterisk and slash for multiply and divide.
- Fractions or matrices enclosed in brackets use tall brackets.
- Smart down/up arrow: press it after inserting a character moves the cursor beneath/above that character.
- Functions such as lines and parabolas can be plotted interactively on a graph.
- The default-to-upper-case setting assumes that all letters entered are upper case (use the shift key to enter a lower case letter), so Caps Lock is unnecessary.
The Aljegrid and Aljebrist names are inspired by high school algebra. Math is not only the most commonly taught Aljegrid subject, but is also taught using a grid of monospaced text.
Expression Language
Mathematical expressions are encoded (internally) using the Aljebrist programming language. Each step in the math problem being solved manipulates this Aljebrist expression. Even if the user enters steps in a different order than the default ordering, the simplification logic can handle that. The user can type Tab/Shift+Tab to redo/undo her previous step, as well as to redo/undo the computer's previous step.
Teaching Math Locally
Students display the math curriculum on a Windows/Mac/Linux computer running the Aljeboard. Teachers and tutors display a window of the student's screen on a smartphone, held in landscape orientation. Bluetooth is used to keep the 2 screens synchronized. Both parties are in the same room or sitting at the same computer.
Teaching Math Remotely
Teachers and tutors can teach remotely using a Windows/Mac/Linux computer instead of a smartphone. A chat window which is always on top except when hidden facilitates communication between teacher and student. Under the hood, something called WebSocket is used to facilitate communication between clients (teachers/students running a browser) and the server. A conversion utility converts Aljebrist/Aljegroup code into JavaScript/HTML, respectively.
Teaching Computer Skills Remotely
The tutor uses remote screen-sharing software to display and interact with the student's screen. The student uses a modified remote version of the local student client software, which includes the ARTS embedded in it. The client window is always on top and usually takes up less than a third of the screen, and includes a resizable chat window which can easily be hidden.
For Nerds
Click on Nerds for miscellaneous technical info, as well as a list of steps involved in the implementation of this project.