Notebook
First things first. Load in SymPy, the engine to do symbolic calculations, and optionally IPython "display", which lets you render LaTeX equations in IPython notebooks using MathJax, after you execute the "init-(underscore)-printing" command.
Symbolic variables need to be defined before they are used. One can also define the type and scope of the variable. This might allow the SymPy engine to apply additional simplifications.
One can plot the expression to see what it looks like
Note that, in general, the python variable "x" is different from the SymPy variable "x". You can use the "subs" command to do substitutions.
You can substitute multiple variables at once
And in case, you need to do non-sequential substitution:
One can take any polynomial, and write it out in the canonical expanded form using "expand", and back factor them using the command "factor". The iPython command "display" lets you typeset using MathJax.
If you have an expression with multiple variables, you can "collect" or rewrite it in terms of a particular variable.
You can use trig identities (sum and double angle identities) to expand out arguments, or carry out simplifications.
The multi-purpose simplification command is "simplify"
These are often extremely handy time-savers.
The generic command is "diff", you can take derivatives of different order, and with respect to different variables
Usual first ordered derivative
Second and higher order order derivatives
One can generate LaTeX output to embed in a document easily;
It couldn't find a closed for expression for the integral. One can evaluate the integral numerically using "N" or "evalf" modules, and optionally request the number of significant digits.
"series", lets you carry out a taylor series expansion around a point up to a specified order. The "O" notation can be suppressed if required.
One can also do Taylor series of two variables using a one-liner
Another handy command is summation