Tutors
Moborigin.com hosts TwindoBoard software used to teach math, coding and web design to clients (students) of nonprofit organizations, for free. The tutors use a smartphone app in landscape mode which syncs the 2 displays viewed by the tutor and the student. Bluetooth is used for connectivity between the student's desktop/laptop and the tutor's smartphone. All lessons are in monospaced mode, using the desktop whiteboard. Tutors and students who are not registered with the nonprofit organizations pay an unlocking fee of $20.
Math
Math basics: 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.
More commands: The optional default to upper case setting assumes that all letters entered are upper case (use the shift key to enter a lower case letter). 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.
Expression Language
Mathematical expressions are encoded (internally) using the MoboLisp programming language. Each step in the math problem being solved manipulates this MoboLisp 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.
WARNING: Rest in Computerese
Whiteboard Grid Commands
The next 2 paragraphs may be ignored, they are written in computerese. Use Shift+Arrow Key to highlight a rectangular block. Press Insert to insert a row or column of spaces before a highlighted block (insert blank line if no highlight). Press Shift+Insert/Delete to insert/delete an entire row/column when a block is highlighted. Press Enter at end of a line of text: insert blank line, back up on that line to line up with beginning of text on previous line. Press Enter on blank line to back up to line up with beginning of text on a previous line, or insert blank line if already at beginning of line. Press Ctrl+Tab to move forward to line up with beginning of first or next word on a previous line. Press Home to move to beginning of text on current line, press it again to toggle between beginning of line and beginning of text. This usage of Enter, Tab and Home is useful for editing program code with multiple indentation levels. The user doesn't have to memorize these commands: type question mark at any time to access the help system.
Superscripts
Superscripts and subscripts in monospaced mode are handled by employing a vertical offset of half a line per level of superscripting or subscripting. The caret symbol (^) is used as a superscript prefix, double-caret (^^) is used as a subscript prefix, and backslash (\) is used as an escape character (terminate super/subscript with a semicolon). Carets and double-carets cannot be mixed (exception: one level of superscript can be combined with one level of subscript).