Rational points on elliptic curves have found applications in cryptography and in the solution to some problems dating back to antiquity. However, we still do not know how to find an elliptic curve with as many points as possible. In this talk, we will see how the theory of modular forms (of Ramanujan) along with a recently developed theory enables one to understand this problem. Along the way, we will see how congruences between coefficients of modular forms shed light on this problem.