Cooperhub can be used as a tool for teaching math and fostering online communities of consumer/survivors. (A consumer/survivor is someone with mental health issues.) The founder is a member of a clubhouse for consumer/survivors known as Progress Place. If that organization agrees to let me use them as a test bed for my online community, then they could act as beta testers and maybe even customers. An online community is similar to social media such as Facebook or Twitter, but without ads and fully customizable for each participating organization. Additional online communities can be created for the different classes of consumer/survivors: depression, bipolar, schizophrenia, PTSD, anxiety, etc., as well as family members, friends, and professionals related to or involved with the consumer/survivors. Organizations which teach adult literacy and numeracy will be recruited to be test beds for teaching math.
Users Without Smartphones
Most Cooperhub apps can run in browser-based mode, enabling clients of nonprofit organizations without smartphones to fully participate in the Cooperhub community. In case they don't have Internet or computers of any kind, many organizations provide public computer access, usually Windows desktop computers.
Teaching Math Locally
Students display the curriculum on a desktop/laptop computer running the Mathgrid (a whiteboard used to teach math). 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 desktop/laptop computer instead of a smartphone. A chat window which is always on top except when hidden facilitates communication between teacher and student. WebSocket is used to facilitate communication between clients (teachers/students running a browser) and the server.
Mathgrid
Math is taught using 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.
Expression Language
Mathematical expressions are encoded (internally) using the Cooperscript programming language. Each step in the math problem being solved manipulates this Cooperscript 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.
Advanced Mathgrid Commands
These 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).