Algorithm for group cohomology Let $G$ be a finite group, and let $0\to M_1\xrightarrow{\iota} M_2\xrightarrow{\pi} M_3\to 0$ be a short exact sequence of $G$-modules (finitely generated over $\mathbb Z$, not necessarily free). I have a description of my group in terms of generators and relations ($G$ is quite small), I have matrices describing the action of $G$ on the $M_i$, and matrices describing the homomorphisms $\iota$ and $\pi$ with respect to some bases of $M_i$. I would like to understand the surjectivity of the map $H^1(G,M_2)\to H^1(G,M_3)$, or equivalently whether $H^1(G,M_3)\to H^2(G,M_1)$ is the zero map or not.
I am interested in this calculation for many different sequences, some of which are not so nice, so I don't expect to be able to do this by hand (e.g. using some trick or nice observation).
Is there some way to do this with a computer?
 A: While I do not have direct experience with using it myself, I believe there are several packages out there for GAP that might do the trick for you, especially the HAP package. See especially 6: Homology and Cohomology Groups. This gives some direct functions for calculating cohomology groups; the other parts of the package will likely prove very useful too for making sure that your group and its actions are input to HAP in a way that it can work with.
I doubt there is a pre-fabricated way of doing exactly what it is you wish to do, but you could likely piece together the many functions of HAP to achieve this. 
A: It is possible to do this in Magma. I will illustrate by showing by an example how, given an arbitrary $G$-module homomorphism $h:M \to N$, you can compute the induced homomorphism $\mathsf{c1h}:H^1(G,M) \to H^1(G,N)$. You could then calculate the image as the submodule of $H^1(G,N)$ generated by the images of $\mathsf{c1h}$ on the generators of $H^1(G,M)$. 
I don't know immediately how you could compute the connecting homomorphism $H^1(G,M_3) \to H^2(G,M_1)$, but it looks as though you do not necessarily need to compute that.
Anyway here is an example.
G := PSL(3,2);
I := IrreducibleModules(G,GF(2));
N := I[2];
M, i1, i2, p1, p2 := DirectSum(N,I[3]);
  //p1 is the projection from M to N
CM := CohomologyModule(G,M);
CM1 := CohomologyGroup(CM,1); //dimension 2
CN := CohomologyModule(G,N);
CN1 := CohomologyGroup(CN,1); //dimension 1
c1h := function(x)
   //Image of x in CM1 in CM2 under mapping induced by p1: M -> N
  local c, t;
  c := OneCocycle(CM,x);
  t := func< x | p1(c(x)) >;
  return IdentifyOneCocycle(CN, t);
end function;

> c1h(CM1.1);
(1)
> c1h(CM1.2);
(0)
> sub< CN1 | c1h(CM1.1), c1h(CM1.2) > eq CN1;

true
After working out this example, I read your query again and I see that you want to do this for modules over ${\mathbb Z}$, not necessarily free. That is also possible in Magma, although the modules have to be finitely generated. You have to provide the abelian invariants of the modules and describe the actions of $G$ by matrices over ${\mathbb Z}$.
