not an IDE, only two types: text and (Python) commands

Skip to first unread message

Peter Gragert

Mar 4, 2019, 12:18:00 PM3/4/19
to mathpiper-user
For Ted,
Lately I became very fond of Anaconda3 delivering a PythonNotebook facility via jupiter-notebook 

The IDE for is 'only' two (as fas as I know) things:
A text cell (MD + latex for mathematicians as me) , HTML things
and execution cells  for Python usage.

Why? Its free open software and I am using Python
With a lot of super packages
numpy  sympy scipy  pandas matplotlib (tensorflow) and even
a JIT compilation, such that for real big problems it becomes comparable with compiled C-code.

and by the way behalve of Python other packages could be made available for e.g. R 

It becomes more and more used in academic circles two fine examples:
Making a film showing two solitons of the KdV (partial differential equation)
A course to learn CFD (computational Fluid Dynamic) in 12 lessons (notebooks) ;-)

Knowing mathpiper (as you know) a bit and to some extent GeoGebra 
two fine IDE's
From GeoGebra I know that it is used at school in Enschede NL at what I think is a Highschool, 
girls and boys up to 18-19 years old (Is that Highschool members too or  already finished school?)

It means one needs good reasons why  investing time in mathpiper .... world is changing
Quantum-computers , in (which?) future???  (machinelearning ....)

Ok, hope that this is meaningful for you and others.
If not, you (Ted) are free to banish this post ;-)

Have a nice day


Edward Bujak

Mar 4, 2019, 1:12:41 PM3/4/19
I have played with mathpiper a few years ago and love it.

If you are doing pure math then pick something that does math well and easily:,  Mathematica, etc.
Note that Mathematica uses notebooks with cells.

Most folks who use statistics use the R language.  Can do R in Jupyter Notebooks ... the trailing 'r' in Jupyter is for the R language.

If you want to do general purpose programming than pick a general purpose language.
If it happens to be supported by Jupyter Notebooks (I think >150 languages) than even easier and nicer ... for teaching/learning (I would not say this for large, multi-person, multi company projects.

BTW, you can install Jupyter on your computer or use some cloud service.
In high school intro programming class I have used Microsoft Azure server based services at  They support ~5 languages to start including f# and Python (which is the Anaconda install).
We now are using locally installed Anaconda that includes a few tools including Jupyter Notebooks.

You received this message because you are subscribed to the Google Groups "mathpiper-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
For more options, visit


Ted Kosan

Mar 4, 2019, 2:44:18 PM3/4/19

The primary mission of the MathPiper project is to create a CAS that can be used to replace the scientific calculator in all schools worldwide. In addition to being open source, two criteria that I use to measure a CAS's suitability for this purpose are as follows:

1) The time it takes a beginning programmer go from learning the CAS language to writing automatic grading code for this language needs to be very short. For example, the following worksheet is one of the automatically graded assignments I use in the MathPiper-based introduction to programming class I teach:

This is a one semester class, and all of the assignments and exams in it are automatically graded (students are not permitted to turn in an assignment until it is 100% correct.) I have found it takes only a few weeks of additional teaching after passing this class for a student to be able to start writing MathPiper code that can automatically grade MathPiper code. I don't have data yet on how long this process would take in other languages.

2) The CAS must have step-by-step elementary algebra equation solving capabilities. MathPiper has this capability, but I am not aware of any Python-based systems that do:

In> LineForm(SolveSteps(MathParse("(8*x - 2 == -9 + 7*x)"), _x))
Result: True
Side Effects:
((8*x) - 2) == ((-9) + (7*x))   The original equation.
(((8*x) - 2) - ((-9) + (7*x))) == 0   Subtract (-9) + 7*x from both sides.
(((8*x) - 2) + ((-1)*((-9) + (7*x)))) == 0   Undefine a binary '-' operator.
(((8*x) + ((-1)*2)) + ((-1)*((-9) + (7*x)))) == 0   Undefine a binary '-' operator.
(((8*x) + (-2)) + ((-1)*((-9) + (7*x)))) == 0   Arithmetic.
(((8*x) + (-2)) + (((-1)*(-9)) + ((-1)*(7*x)))) == 0   Move occurrences of the unknown higher.
(((8*x) + (-2)) + (9 + ((-1)*(7*x)))) == 0   Arithmetic.
(((-2) + (8*x)) + (9 + ((-1)*(7*x)))) == 0   Move a copy of the unknown to the right.
(((-2) + (8*x)) + (((-1)*(7*x)) + 9)) == 0   Move a copy of the unknown to the left.
(((-2) + (8*x)) + ((((-1)*7)*x) + 9)) == 0   Change the association of * operators.
(((-2) + (8*x)) + (((-7)*x) + 9)) == 0   Arithmetic.
((((-2) + (8*x)) + ((-7)*x)) + 9) == 0   Change the association of + operators.
(((-2) + ((8*x) + ((-7)*x))) + 9) == 0   Change the association of + operators.
(((-2) + ((8 + (-7))*x)) + 9) == 0   Eliminate one copy of the unknown.
((-2) + ((8 + (-7))*x)) == (0 - 9)   Subtract 9 from both sides.
((8 + (-7))*x) == ((0 - 9) - (-2))   Subtract -2 from both sides.
x == (((0 - 9) - (-2))/(8 + (-7)))   Divide both sides by 8 + (-7).
x == (-7)   Arithmetic.


On Mon, Mar 4, 2019 at 12:18 PM Peter Gragert <> wrote:

Edward Bujak

Mar 4, 2019, 3:05:59 PM3/4/19

You make great points.
Having source code is invaluable.   Makes for great projects for the students who are over-achievers and can never get enough CS.

Auto graders are great!

Also the ability to solve math expressions/inequalities/equations step-by-step with mathematical justification is great for really difficult and/or advanced mathematical problems.
Many, many years ago, I was helping format my then girlfriend's masters thesis on CAS written in FORTRAN.  Yes, I did say many years ago :) . I grew a fine appreciation of CAS and phenomenally well written structured code back then.

Reply all
Reply to author
0 new messages