Lecture Schedule
 September 1: course overview, GCDs
 September 3: continued fractions, finding the best rational approximation with small denominator
 September 10: linear algebra, solving systems of linear equations in integers
 September 15: solving systems of linear equations in integers
 September 17: solving univariate polynomial equations over the complex numbers
 September 22: lattice generalities
 September 24: lattice algorithms, 2 dimensional SVP
 September 29: technical issues
 October 1: LLL lattice reduction
 October 6: LLL lattice reduction, factoring polynomials over rationals
 October 8: factoring polynomials over the rationals
 October 13: root finding over finite fields
 October 15: irreducibility testing over finite fields, construction of finite fields
 October 20: factoring polynomials over finite fields
 October 22: factoring bivariate polynomials, power series solutions
 October 27: square roots mod m
 October 29: certifying primality, AgrawalBiswas randomized primality test
 November 3: AgrawalKayalSaxena deterministic primality test
 November 5: AgrawalKayalSaxena deterministic primality test, discrete log
 November 10: Adleman's algorithm for discrete log based on smooth numbers
 November 12: Lehmann's deterministic algorithm for factoring integers
 November 17: Dixon's algorithm for factoring integers
 November 19: FFT, towards fast polynomial multiplication
 November 24: fast polynomial multiplication, fast integer multiplication
 December 1: Quantum algorithms, towards fast quantum factoring
 December 3: fast quantum factoring
 December 8: class presentations

