symbols, Manin symbols, cohomology of subgroups of SL2(Z) with various
coeﬃcients, explicit computation of modular forms, etc.
Software. We use SAGE, Software for Algebra and Geometry Experimen-
tation (see [Ste06]), to illustrate how to do many of the examples. SAGE
is completely free and packages together a wide range of open source math-
ematics software for doing much more than just computing with modular
forms. SAGE can be downloaded and run on your computer or can be used
via a web browser over the Internet. The reader is encouraged to experi-
ment with many of the objects in this book using SAGE. We do not describe
the basics of using SAGE in this book; the reader should read the SAGE
tutorial (and other documentation) available at the SAGE website [Ste06].
All examples in this book have been automatically tested and should work
exactly as indicated in SAGE version at least 1.5.
Acknowledgements. David Joyner and Gabor Wiese carefully read the
book and provided a huge number of helpful comments.
John Cremona and Kevin Buzzard both made many helpful remarks that
were important in the development of the algorithms in this book. Much of
the mathematics (and some of the writing) in Chapter 10 is joint work with
Noam Elkies made remarks about Chapters 1 and 2. S´ andor Kov´acs
provided interesting comments on Chapter 1. Allan Steel provided helpful
feedback on Chapter 7. Jordi Quer made useful remarks about Chapter 4
and Chapter 6.
The students in the courses that I taught on this material at Harvard,
San Diego, and Washington provided substantial feedback: in particular,
Abhinav Kumar made numerous observations about computing widths of
cusps (see Section 1.4.1) and Thomas James Barnet-Lamb made helpful re-
marks about how to represent Dirichlet characters. James Merryfield made
helpful remarks about complex analytic issues and about convergence in Stir-
ling’s formula. Robert Bradshaw, Andrew Crites (who wrote Exercise 7.5),
Michael Goff, Dustin Moody, and Koopa Koo wrote most of the solutions
included in Chapter 11 and found numerous typos throughout the book.
Dustin Moody also carefully read through the book and provided feedback.
H. Stark suggested using Stirling’s formula in Section 2.7.1, and Mark
Watkins and Lynn Walling made comments on Chapter 3.
Parts of Chapter 1 follow Serre’s beautiful introduction to modular forms
[Ser73, Ch. VII] closely, though we adjust the notation, definitions, and
order of presentation to be consistent with the rest of this book.