Recently I’ve started studying maths using a Jupyter notebook. What I do is to review my coursework, and while I go through each theorem/proof, I code it up in the IPython notebook and experiment with the maths. I’ve found it a good way to come to grips with complex ideas. I’m currently studying Dirichlet Characters, and am finding the technique invaluable.
Today I discovered the sheer awesomeness that is Emacs with EIN. This lets my Emacs environment to to Jupyter Notebooks. Through it, I have the power of Emacs Python completion and editing while writing iPython functions. It works really well! I can display matplotlib graphs inline in my Emacs buffer. There is even symbolic computation via the sympy package! Bliss!