The situation is the following.

A finite-index subgroup $\Gamma$ of $SL_2(\mathbb Z)$ acts on the upper-half plane $\mathcal H$. It has a fundamental domain, obtained by a union of translates of the fundamental domain for $SL_2(\mathbb Z)$. The quotient $\mathcal H/\Gamma$ can be compactified by adding a finite number of cusps(I have checked that this can indeed be done, in some book). We call it $X$.

Now I want to compute the de Rham cohomology or singular (co)homology of $X$. I am unable to do it in the general case. Any hints on how to proceed would be appreciated.

The difficulty I am facing is that I am given a group to work with, and the standard examples of computations are with simple spaces through Mayer-Vietories. I do not a priori have a nice Mayer-Vietories decomposition of the space. Or perhaps the best method is not through Mayer-Vietories?

More generally, if $\Gamma$ is a discrete subgroup of $SL_2(\mathbb R)$, firstly, 1) How would one construct a fundamental domain? and, 2) How would one compute the homology?

Re to Sam Nead: I had only the computation of $H_1$ or $H^1$ in mind.