Course Information
Course Description
The goal is to use number theory as the topic/substrate to gain experience in the use of computation in mathematical research. Approximately the first half of the course will consist of guided projects in number theory topics. The second half will be spent on student computational projects (not necessarily number theory; your thesis is a valid choice).
The course will be run as a series of workshops/activities (not lecture). You should have a laptop and access to SageMath for every day (contact me ahead to get this sorted out as needed). Students will have a great deal of autonomy, especially later in the course.
Goals of the course
- Learn the basics of the classical computational algorithms for mathematics (things like space and time complexity, Monte Carlo and Las Vegas algorithms, standard assumptions);
- Study some important examples of such algorithms (e.g. Euclidean algorithm, index-calculus-type methods, random walks, lattice reduction, etc.);
- Gain experience with computer-aided mathematical exploration (conjecture and open-ended questions);
- Learn to implement algorithms efficiently in Python and Sage Mathematics Software;
- Learn some interesting number theory; and
- Have copious time for individual projects.
Vague semester plan
- Week 1–5: Case studies in number theory that build coding skills and knowledge.
- Week 6–13: Individual projects. Each day 1–2 students will present on their problem/progress and the group will discuss, then we will have working time.
- Week 13–15: Student final presentations.
Credit
Students wishing to receive credit for the course shall attend regularly, support a productive classroom atmosphere, and complete the individual project and presentations.
Projects
Possible project topics: 1. Create a computational tool (possibly to be added to Sage). 2. Do computations that will aid you in your thesis project or another research project. 3. Choose an existing research paper in computational mathematics and build off that. 4. Create an open-source mathematical showcase project to put on GitHub (for your industry résumé). 5. Combinations and/or other ideas.
My main requirement of the projects is that (1) they teach you skills that fall in the category of both mathematics and computation, and (2) that they are useful to your career path as a PhD student of mathematics.
For the sake of the ability to communicate and work together, I will require the use of Python and Sage for the course worksheets, but the individual projects can use other tools the student self-teaches.
Pre-requisites
Be taking or have taken the main algebra sequence in our PhD program. Contact me for exceptions.
Unexpected changes of format & travel
I suffer from vestibular migraine. On rare occasions, I may be unable to attend class on short notice. On such days, I expect students to use the classroom hour to continue the regularly planned activities of the classroom without me, e.g. worksheets, presentations or working time. In these cases, class is not cancelled. I will notify everyone via email.
I am planning a few travel days this semester. I will attempt to join class remotely when possible, but class will continue as planned (worksheets), with an appointed TA from among the students as the guide.
Standard Syllabus Statements
All standard CU required syllabus statements apply to this class. See:
In case of illness or religious observance, please email me and arrangements will be made to accommodate.