**Brief description:**

In addition to being very basic objects in Algebra and Number Theory, finite fields have found many applications in Cryptography, Coding Theory and other aspects of communications, Statistical design of experiments and many other places. It is thus important to be able to compute efficiently in finite fields.

This course will focus on the current state of the art in computations on finite fields. We will discuss algorithms for the basic operations, solving equations, extracting roots, factoring polynomials, solving the discrete logarithm problem and many others. For some of these problems there are efficient algorithms, others only have probabilistic efficient algorithms, while some do not have efficient algorithms at all.

**Prerequisite:**
graduate algebra

**Textbook:** none. Most of the material can be found in
Lidl-Neiderreiter "Finite Fields", Cohen "A course in Computational
Algebraic Number Theory" or in Bach-Shallit "Algorithmic Number Theory".

** Class notes taken by students:**
The only requirement for this class, for registered students, is to
take turns to write up notes in TeX that I will make available to all
other students through this webpage.

The whole set of notes as one file

- Schoof's paper.
- Pari script with an example of Schoof's algorithm.
- Talk by Antoine Joux on the latest results on discrete logs.
- Papers of Cheng and Cheng and Wan on index calculus vs. Sudan's algorithm.
- Annotated log file of the Pari calculation
in
**F**_{125}.