Generators of $M_{2k}(\Gamma_0(p))$, $p$ is prime We know that $M_{2k}(SL(2,\mathbb{Z}))$, the space of holomorphic modular forms of weight $2k \geq 4$, is spanned by $E_4(\tau)^i E_6(\tau)^j$ so that
$4i+6j=2k$.
Is there a similar type of result for $M_{2k}(\Gamma_0(p))$, if p is prime?
We should clearly include $E_{4}(p \tau)$,$E_6(p \tau)$ and $G_{2,p}(\tau):=E_2(\tau)-p E_{2}(p \tau)$ (they are modular forms on $\Gamma_0(p)$). But these, together with $E_4(\tau)$ and $E_6(\tau)$, do not
generate everything in $M_{2k}(\Gamma_0(p))$ I think. What additional modular forms are needed (preferably written as Eisenstein series)?
 A: For $\Gamma_0(p)$ Eisenstein series are not enough. If $p \notin \{2,3,5,7,13\}$, then there will always be some cusp forms in $S_2(\Gamma_0(p))$; and those will not be in the subalgebra of $\bigoplus_{k \ge 0} M_{2k}(\Gamma_0(p))$ generated by Eisenstein series. One approach to writing down the missing modular forms is via theta-series -- this was worked out by Eichler; you will get lots of relevant literature if you search for "Eichler basis problem". (This method generalises to non-prime levels but only if the level is square-free; for non-square-free levels there are some forms which you will never see with this approach.)
Contemporary computer algebra systems use a different approach. Sage and Magma use modular symbols to compute modular forms of any weight $\ge 2$; there is an excellent book, Modular Forms - A Computational Approach, by William Stein (the creator of Sage) which discusses this method in detail.
PARI/GP uses a rather different method, involving going up from $\Gamma_0(p)$ level to $\Gamma(p)$ level and using weight one Eisenstein series; this relies on the fact that for $\Gamma(p)$ levels you can write any modular form of weight 2 in the form $(\sum_i a_i b_i) / C$ where $a_i$, $b_i$ and $C$ are weight 1 Eisenstein series.
