The course uses classical and modern factorization algorithms to present important
ideas and techniques in computational number theory.
We will cover the reduction of
Z-modules and lattices, factorization of univariate polynomials over finite fields, the rationals
and the complex numbers, then primality testing (up to the Elliptic Curve Primality Proving
algorithm) and integer factorization (up to the Number Field Sieve).
We will also study some algorithms in number fields, essentially those leading to the computation of the ring of integers, the units and the class group.
The emphasis is on important
ideas throughout, as opposed to technical details necessary for efficient implementation,
and asymptotically fast methods.