main focus of this chapter is a detailed study of how to explicitly represent
and compute with Dirichlet characters.
Chapter 5 is about how to explicitly construct the Eisenstein subspace
of modular forms. First we define generalized Bernoulli numbers attached to
a Dirichlet character and an integer then explain a new analytic algorithm
for computing them (which generalizes the algorithm in Chapter 2). Finally
we give without proof an explicit description of a basis of Eisenstein series,
explain how to compute it, and give some examples.
Chapter 6 records a wide range of dimension formulas for spaces of
modular forms, along with a few remarks about where they come from and
how to compute them.
Chapter 7 is about linear algebra over exact fields, mainly the rational
numbers. This chapter can be read independently of the others and does not
require any background in modular forms. Nonetheless, this chapter occu-
pies a central position in this book, because the algorithms in this chapter
are of crucial importance to any actual implementation of algorithms for
computing with modular forms.
Chapter 8 is the most important chapter in this book; it generalizes
Chapter 3 to higher weight and general level. The modular symbols for-
mulation described here is central to general algorithms for computing with
Chapter 9 applies the algorithms from Chapter 8 to the problem of
computing with modular forms. First we discuss decomposing spaces of
modular forms using Dirichlet characters, and then explain how to compute
a basis of Hecke eigenforms for each subspace using several approaches.
We also discuss congruences between modular forms and bounds needed to
provably generate the Hecke algebra.
Chapter 10 is about computing analytic invariants of modular forms.
It discusses tricks for speeding convergence of certain infinite series and
sketches how to compute every elliptic curve over Q with given conductor.
Chapter 11 contains detailed solutions to most of the exercises in this
book. (Many of these were written by students in a course taught at the
University of Washington.)
Appendix A deals with computational techniques for working with gen-
eralizations of modular forms to more general groups than SL2(Z), such as
SLn(Z) for n ≥ 3. Some of this material requires more prerequisites than
the rest of the book. Nonetheless, seeing a natural generalization of the
material in the rest of this book helps to clarify the key ideas. The topics in
the appendix are directly related to the main themes of this book: modular