# During the final portion of the year we turn our attention to number theory, programming, and game theory during the afternoons.

Our general purpose is to make sure that every student at Proof School has a solid foundation in number theory by covering the material presented in our intro and intermediate courses, taught by Doc Durst and Dr. Shapiro this spring. From there students branch out in a number of directions, depending on what is offered. This year further courses include programming with Mr. Gregg, tailored for high school students who either have not yet taken an intro course or who wish to learn more about graphics. John DeIonno is teaching an upper level topics course on the mathematics of decision making. Finally, we are piloting a new format in which some students are taking two quarter-credit math courses that alternate meeting days: a problem writing seminar with Dr. V and a first look at elliptic curves with Sachi. We are excited about ending the year with this lively line-up of math courses!

-- Sam Vandervelde

Intro to Number Theory
with Susan Durst

Mathematicians have long been fascinated by the unexpectedly rich theory and difficult questions that arise from the interplay between the seemingly innocent operations of addition and multiplication among integers. In this first course we will cover the classical canon of topics, including divisibility, divisibility tests for small integers, counting divisors, simple proofs involving divisors, perfect numbers, number bases, primes (including factorization and the infinitude of the primes), GCD and LCM, the Euclidean algorithm, and irrational numbers. We will conclude with a week on modular arithmetic and congruences, culminating in our discovery of Wilson's Theorem and Fermat's Little Theorem.

Intermediate Number Theory
with Austin Shapiro

Unique factorization of integers into prime numbers is the linchpin of number theory. However, this property of the integers is surprisingly hard to prove. We will do so after building the necessary theory of modular congruences, residue systems, and linear Diophantine equations. We will also explore classic number theory topics including the Chinese Remainder Theorem, Fermat’s Little Theorem and Euler’s Theorem, and sums of two squares. We will conclude the course by exploring factorization in other domains, such as polynomials and Gaussian (complex) integers. This course overlaps Intro to Number Theory in topic coverage, but with a greater emphasis on rigor.

Math of Decision Making
with John DeIonno

This course will explore selected topics from social choice theory and game theory.

Problem Writing Seminar
with Sam Vandervelde

In this course students will engage in the process of writing original contest style math problems. The goal of the course will be to create a portfolio of polished original problems, complete with solutions. Along the way students will learn how to combine different subject areas to create inventive questions, learn the art of writing interesting elementary questions, hone the statements of their questions, and produce complete yet concise solutions. Finally, the class will assemble a set of ten balanced tests drawing on their questions for potential use for the Mandelbrot Competition.

Elliptic Curves with SageMath
with Sachi Hashimoto

Elliptic curves are one of the major areas of modern number theory research. They appear in a wide range of contexts, from pure math applications in the proof of Fermat's Last Theorem to industrial applications in cryptographic algorithms and algorithms for factoring large integers. In this course we will take a computational approach to learning about elliptic curves aided by the SageMath software system, a Python-based language used by many mathematicians.

Intro to Computer Science
with Steve Gregg

Students use Python for this intensive introduction to the world of programming. This class condenses the material covered in our year-long middle school course into a single block, tailored for high school students who have not yet formally learned the basics of programming within a classroom setting. Topics covered will include variables, input/output, turtle graphics, branching, loops, strings, functions, lists, and dictionaries. Throughout the course an emphasis is placed on using programs to answer compelling questions, create entertaining games, and display original artwork.

Intro to Computer Graphics
with Steve Gregg

This class condenses the material covered in our year-long middle school graphics studio course into a single block, tailored for high school students who have not yet formally learned the basics of computer graphics within a classroom setting. In the first part of this course, students use their knowledge of Python to produce artwork and graphical games, using turtle graphics, Tkinter, VPython, and Pygame. In the second part of the course, students learn the basics of web programming, using HTML and CSS in conjunction with JavaScript to create interactive web pages.