Math without pencil and paper

Solution 1:

(Background: I have a chronic pain condition, and it is extremely painful for me to do any sort of repetitive fine motor activity, including writing and typing. I earned an undergraduate degree in math with quite little handwriting, and I'm currently a graduate student.)

Unfortunately, I've never been able to find any one solution or approach to replace the work that many people do with pencil and paper, but there are lots of partial solutions that work for different situations and types of mathematics. Here are some of the ones that I use and which, based on your description, might be applicable.

  1. Getting really proficient at mental math. I think you've already done a lot of this, so all I'm going to say is that I can do a lot more math in my head than I would've believed was possible pre-disability. It just takes a lot of practice. Of course, it doesn't work for everything; some calculations just require remembering too many things at once.

  2. Speech-to-text. If you have clear speech, then a speech-to-text system is potentially very helpful. (I use Dragon NaturallySpeaking.) Maybe you already use one for general writing and computer use. If so, then you have almost certainly noticed that they are not designed for mathematics (or, for that matter, computer science), so some additional software is necessary in order to do math. I use a system based on NatLaTeX to dictate all of my formal mathematics, including anything in that I'm going to turn in for my coursework. Basically, NatLaTeX defines a speakable form of many common LaTeX commands, including everything you need for most mathematical expressions. Using a custom vocabulary in Dragon, I can dictate a plain text file containing this NatLaTeX source. I then use in scripts from the NatLaTeX project to transform my dictated text into actual LaTeX source, which I can then compile into nicely typeset mathematics using a standard LaTeX compiler. (Actually, I use a batch file to automate the process.) Just as a note, I have made several modifications to NatLaTeX in order to optimize it for mathematics (the original author was a physicist) and to adjust for changes in LaTeX. Feel free to contact me if you want a copy of the modified scripts. I do eventually intend to post them somewhere online, but I need to spend some time updating the documentation first (and that's really hard to justify spending time on it while I'm preparing for comprehensive exams!).

    The big advantage to a dictation system like this is that you get to go through the process of formally presenting your work, which is really helpful for checking understanding and practicing proof writing. Disadvantages include a steep learning curve and not being able to see your work (typeset, at least) in real time. You also have very limited choices in text editors because Dragon will only "play nice" with a couple of them.

  3. Programming languages and computer algebra systems. When you actually need to do calculations, plot functions, etc., it is hard to beat a good computer algebra system. There are lots of choices out there, and I think the choice of which one to use ultimately comes down to personal preference and perhaps compatibility with whatever assistive technology you use. Of course, you still face the problem of how to handle getting input to that computer algebra system. Typing with one finger on an on-screen keyboard sounds rather slow and tedious. Here are a few alternatives you might want to look into.

    • If you have head and neck movement, a head pointer is one option. I sometimes use one that actually marketed as a gaming device called TrackIR. (Gaming peripherals are much less expensive than assistive technology peripherals!) You can use this to type on an on-screen keyboard or to interact with the input panels found in many computer algebra systems. For mouse click, you could use a switch with your finger or a dwell/hover click.

    • Eye tracking is a technology that has recently become much more affordable due to relatively new consumer-level devices marketed for gaming applications. Just a couple months ago, I got an Tobii EyeX eye tracker, and it has been great! I use it with a simple mouse emulation script and Dasher to write code in Sage. Dasher is really cool, by the way, and quite good for text entry with low-precision input devices like eye trackers. It's also much faster than most on-screen keyboards. Just as a warning, the EyeX is not intended as an assistive device so you do have to do a some software configuration in order to make it do what you want it to do. But you're studying computer science, so I don't think that should be a problem for you. (FreePIE, OptiKey, and Dasher are all good pieces of free software to look up and consider for use with the EyeX.)

    The big advantage to computer algebra systems is that you can do all of the numerical calculations and tedious symbolic manipulations without needing to ever write down a single number. The disadvantage is that hiding all of the details can sometimes hinder your conceptual understanding.

Those are the main strategies I use. I hope something here can help you out, too.

EDIT: There has been a request for some examples of what NatLaTex can do, so here are a couple of different examples pulled files on my hard drive.

Discrete Math Example:
NatLaTeX Input (dictated with Dragon)
Given a poset "(P, precedes)", a collection of linear extensions "{calligraphy R } equals left curly brace precedes sub one, precedes sub two, low dots, precedes sub k right curly brace" is called a ``realizer'' of "P" if "precedes equals intersection of sub {i equals one } to the k precedes sub k", where each relation "precedes sub i" is interpreted as a set of ordered pairs and "intersection of" is set intersection. Equivalently, "{calligraphy R }" is a realizer of "P" if, for all "p, q in P", "p precedes q" if and only if "p precedes sub i q" for all "one less than or equal to i less than or equal to k".

LaTeX Output
Given a poset \( ( P , \prec )\), a collection of linear extensions \( { \mathcal R } = \{ \prec_1 , \prec_2 , \ldots , \prec_k \}\) is called a ``realizer'' of \( P\) if \( \prec = \bigcap_{ i = 1 }^k \prec_k\), where each relation \( \prec_i\) is interpreted as a set of ordered pairs and \( \bigcap\) is set intersection. Equivalently, \( { \mathcal R }\) is a realizer of \( P\) if, for all \( p , q \in P\), \( p \prec q\) if and only if \( p \prec_i q\) for all \( 1 \leq i \leq k\).

Analysis Example:
NatLaTeX Input (dictated with Dragon)
begin theorem [Monotone Convergence Theorem] Let "left curly brace f sub n right curly brace sub {n equals one } to the infinity" be a sequence of nonnegative measurable functions with "f sub one less than or equal to f sub two less than or equal to low dots less than or equal to f sub n less than or equal to f sub {n +1 } less than or equal to low dots" and "limit of sub n f sub n equals f" (pointwise). Then, "f" is measurable and @begin{equation} limit of sub {n right arrow infinity } integral f sub n d Greek mu equals integral limit of sub {n right arrow infinity } f sub n d Greek mu equals integral f d Greek mu @end{equation} end theorem

LaTeX Output
\begin{theorem}[Monotone Convergence Theorem] Let \( \{ f_n \}_{ n = 1 }^\infty\) be a sequence of nonnegative measurable functions with \( f_1 \leq f_2 \leq \ldots \leq f_n \leq f_{ n + 1 } \leq \ldots\) and \( \lim_n f_n = f \) (pointwise). Then, \( f \) is measurable and \begin{equation} \lim_{ n \rightarrow \infty } \int f_n d \mu = \int \lim_{ n \rightarrow \infty } f_n d \mu = \int f d \mu \end{equation} \end{theorem}

Solution 2:

Voice input takes much load off the keyboard. Google search by voice is possible, as it converts spoken matter directly to text. Even individual letters can be spoken into. Mouse left click can be sparingly used to make corrections for documents. About math symbols I do not know, but believe may be possible after some trial.

I produced the following:

a x squared + bx + c = 0

when I spoke to/into Google search microphone: $$ a x^2 + bx + c =0 $$

EDIT 1:

Encouraged by your response, may I go on with a suggestion.

All characters on a standard keyboard have an ASCII code but not all their corresponding voice inputs (with standard spoken English) translate to math symbols e.g.,

back slash, caret or power, greater than, curly opening bracket, square closing bracket, exclamation and interrogation marks

do not automatically print symbolically as:

( \ , ^ , > , { , ] , ! , ? , )

So a coding exercise for someone here or in Google Company likely implementable with an optional Voice MathSymbol Switch/Selector from keyboard appears to be an urgent need. This can be directly embedded as Latex input format.

Voice input $\rightarrow$ Math symbolic equation output. It may be doable.

This may help not only Jeroen but even the vast majority of us more luckily endowed :) ..

EDIT 2 :

Just googled MathTalk.com Dragon Naturally Speaking in Anna Kirkpatrick's moving answer here. This can symbolically convert polynomials, powers, trig, fractions, Greek characters and what have you with adequate speed.

MathTalk

Solution 3:

If I were unable to use my hands, I personally would attempt to use a sophisticated voice to text interface like Dragon Naturally Speaking http://www.nuance.com/dragon/index.htm, which includes addons that specifically permit you to voice-type into IE or Firefox. Why would that capability be particularly useful? Because the second portion of my strategy would be to then go to https://sagecell.sagemath.org/ and use that (Sage) free alternative to Maple, Mathematica, Matlab and the like. Sage is a full symbolic math processor with beautiful graphics output and, if you are saving your abstract math work or sharing it with other, you can save the work you are doing only in pdf form or output LaTex and the like to get high quality mathematics documents.

Now, I should emphasize that I have not implemented the solution I envision (thankfully not requiring it), so I am glibly describing a process of software installation and learning curve/troubleshooting that will be challenging. That being said, I believe this approach would accomplish your goal of hands-free math work in a visual symbolic and numeric calculation environment.

Solution 4:

You mentioned that you use MS Office and that this is slow.

The other answers have already said good things, but here is maybe a strange suggestion: Learn LaTeX. Install a nice plain text editor and a version of LaTeX. Yes, LaTeX code can be a bit intimidating, but with time it is not that hard to read. The nice thing about it is that you are able to share what you have written with someone else (the PDF file). It is fairly easy to edit. This, of course, might not be the best idea for actually doing mathematics.

Just a thought.

Solution 5:

You may want to use SymPy, "a Python library for symbolic mathematics". If you use SymPy Live, you don't even need to install anything in your machine.

For example, suppose you want to expand $(x+y)^9$ without computing the binomial coefficients manually. Using SymPy Live, we get

>>> x, y = symbols('x y')
>>> expand((x+y)**9)
 9      8         7  2       6  3        5  4        4  5       3  6       2  7        8    9
x  + 9*x *y + 36*x *y  + 84*x *y  + 126*x *y  + 126*x *y  + 84*x *y  + 36*x *y  + 9*x*y  + y 

Or, perhaps you want the 7th order truncation of the Maclaurin series for $\tan$

>>> x = symbols('x') 
>>> tan(x).series(x,0,8)
     3      5       7        
    x    2⋅x    17⋅x      ⎛ 8⎞
x + ── + ──── + ───── + O⎝x ⎠
    3     15     315