Let $S$ be a compact orientable surface of genus $g$. Now let $p\in S$ and $\gamma$ a closed simple curve on $S$ disjoint from $p$. It is not very difficult to compute the action of a Dehn twist along $\gamma$ (say $T_{\gamma}$) on $\mathrm{H}_1(S,\mathbb{Z})$. Now let's take a look at the action of the same Dehn twist on $\pi_1(S,p)$.
Fix once and for all a set of generator of $\pi_1(S,p)$, $ \ a_1, b_1, ..., a_g, b_g$ verifying the standard presentation of $\pi_1(S,p)$. My question is : how does one compute efficiently the induced morphism $$ T_{\delta} : \pi_1(S,p) \longrightarrow \pi_1(S,p) $$$$ T_{\gamma} : \pi_1(S,p) \longrightarrow \pi_1(S,p) $$
One can laboriously draw pictures to find formulas for $T_{\delta}(a_1)$$T_{\gamma}(a_1)$, $T_{\delta}(b_1)$$T_{\gamma}(b_1)$, ...
I was wondering if anyone had ever built a nice program to compute formally this morphism.