With the help of python and SymPy module one can do pretty neat computations.
For example when I took a course about Robotic Preception on Coursera I had to find a cross product of
two vectors `v1 x v2`

represented in a generic form:

```
v1 = (a, b, c)
v2 = (d, e, 0)
```

Normally I would write it down on a piece of paper and do the computations myself. Luckily python can help with that. Unfortunately it takes a bit of work to explain to SymPy what you want. But it is worth the trouble.

First we install Sympy:

```
pip install sympy
```

Now we can switch to python/ipython/jupyter. Import the module

```
from sympy import *
```

For vector representation we have to define a coordinate system:

```
from sympy.vector import CoordSys3D
C = CoordSys3D('C')
```

also we need a could of generic symbols:

```
a, b, c, d, e = symbols('a b c d e ')
```

Now we can define our vectors in that coordinate system using the symbols:

```
v1 = a*C.i + b*C.j + c*C.k
v2 = d*C.i + e*C.j + 0*C.k
```

And finally we can compute the cross product:

```
>>> v1.cross(v2)
(-c*e)*C.i + c*d*C.j + (a*e - b*d)*C.k
```

So the answer is `(-ce, cd, ae-bd)`

.

Alternative operator for the cross product:

```
>>> v1 ^ v2
(-c*e)*C.i + c*d*C.j + (a*e - b*d)*C.k
```

More info about vector operations: SymPy documentation