1) Return all graded homework 2) Clarify current homework assignment: * All problems from dimension formulas chapter and one linear algebra problem: Exercise 7.1 (not easy). Should have more linalg exercises but too late. * Working together on homework is OK (I should have mentioned this earlier...) 3) Current plan for rest of quarter: [] (may 15) Higher Weight Modular Symbols 1: basic definitions; how to compute: Sections 8.1 -- 8.2 [] (may 17) Higher Weight Modular Symbols 2: Hecke operators on them Sections 8.3 [] (may 19) Higher Weight Modular Symbols 3: using to compute modular forms Sections 8.4 -- 8.6 [] (may 22) Newforms 1: Atkin-Lehner-Li theory Sections 9.1 -- 9.3 [] (may 24) Newforms 2: Computing (and storing!) systems of eigenvalues Section 9.4 [] (may 26) Special Values of L-functions using modular symbols Sections 10.1-10.4 [] (may 29 -- memorial day holiday) [] (may 31) Enumeration of all elliptic curves of given conductor (Cremona's program): Sections 10.6-10.7 [] (june 2) Sturm's bound: Congruences between modular forms and gen. Hecke algebras Chapter 11 4) Quick demo of multi-modular linear algebra implemented in SAGE (verbose). sage: A = MatrixSpace(QQ, 5).random_element() sage: set_verbose(2) sage: A.echelon_form() verbose 1 (4072: matrix.py, echelon_form) height_guess=64 verbose 1 (4072: matrix.py, echelon_form) p=20011 sage: A = MatrixSpace(QQ, 5,10).random_element() sage: A.echelon_form() verbose 1 (4072: matrix.py, echelon_form) height_guess=4096 verbose 1 (4072: matrix.py, echelon_form) p=20011 verbose 1 (4072: matrix.py, echelon_form) p=20021 verbose 1 (4072: matrix.py, echelon_form) start rr verbose 1 (4072: matrix.py, echelon_form) done (time = 0.0) _5 = [ 1 0 0 0 0 -17/12 13/24 -7/8 5/8 5/12] [ 0 1 0 0 0 -1/4 1/8 -9/8 3/8 -3/4] [ 0 0 1 0 0 7/6 -11/12 1/4 -7/4 -1/6] [ 0 0 0 1 0 7/9 -4/9 -1/3 -2/3 -1/9] [ 0 0 0 0 1 11/36 17/72 29/24 1/24 1/36] sage: A = MatrixSpace(QQ, 50,100).random_element() sage: E = A.echelon_form() sage: A.echelon_form(height_guess=1) Note -- time dominated by rational reconstruction; there is a trick... sage: A = MatrixSpace(QQ, 40,30).random_element() sage: K = A.kernel() sage: K.dimension() sage: K.basis()[0] sage: A = MatrixSpace(QQ, 50).random_element() sage: A.charpoly() sage: A = ModularSymbols(389).T(2).matrix() sage: A.parent() sage: A.charpoly() 5) New chapter: modular symbols of higher weight.