Private versus public key cryptography. Variable changes and normal forms. Elliptic curves over finite fields. The baby-step giant-step algorithm. Counting points on elliptic curves. Isogenies and modular polynomials. The Schoof-Elkies-Atkin algorithm.