Math 187B : The mathematics of modern cryptography (Spring 2026)
| Main | Cocalc | Zulip | Gradescope |
This course will be in person, UCSD and local regulations permitting.
The policies below will continue to be updated as UCSD and local authorities continue to update their regulations.
All the quizzes will administered in person. There will be no exception to this rule.
California law prohibits any recording of communication without the express consent of all the attendees. You do not have my consent or any of the TA's consent to record any interactions (including but not limited to lectures, discussions, and office hours). It is therefore illegal to record and you would be liable to prosecution and civil suits.
Lecture: MWF 1-1:50pm in Peterson 104
Instructor: Alina Bucur
Office: AP&M 7151
Email: alina@math.ucsd.edu
Office hours: see Zulip
Discussion sections: Attending section is not mandatory and you can attend whatever section you want. Please check TritonLink (or whatever it's called these days) for your discussion time.
| TA: | Yongyuan "Steve" Huang | yoh011@ucsd.edu |
| OH: | see Zulip | |
Communication: All communication about the course will take place in Zulip; Zulip includes both a general discussion forum, available to all students in the class, and one-on-one direct messages. A link to join Zulip will be sent before the first lecture. You have to use your @ucsd.edu email to join Zulip. Once you have joined, please use DMs/DMs instead of email for questions about the course; I may not answer emails. All course communication is subject to UCSD's academic integrity and harassment policies.
Prerequisites: MATH 187/187A and one of MATH 18 or 20F or 31AH; or consent of the instructor. Some coding experience would be very useful.
Course description: The object of this course is to study modern public key cryptographic systems and cryptanalysis (e.g. RSA, Diffie-Hellman, Elliptic Curve Cryptography, Lattice-based cryptography, Homomorphic Encryption) and the mathematics behind them. We also explore other applications of these computational techniques (e.g. integer factorization and attacks on RSA).
Although mathematics is still largely taught as a pencil-and-paper (and chalk) subject, this approach ignores the fundamental role played by computing technology in the process of mathematical reasoning and discovery, as well as the very practical constraints imposed by computation on the subject of modern cryptography. This course will be taught in a hybrid fashion; there will be traditional-like lectures, but also lectures that will consist of interactive demonstrations, while assignments will combine conceptual questions with guided experimentation and discovery. We will make extensive use of the Python programming language and the SageMath computer algebra system; however, no prior exposure to these tools will be assumed. However, a willingness to learn and experiment is essential.
This course is based on the cloud computing platform CoCalc. The lectures use a "learn by doing" model in which students interact with CoCalc during the lecture; students are expected to attend class with a laptop or tablet with a keyboard (not a smartphone), but the only local software installation required is a web browser. More details on how CoCalc is to be used will be given in the first lecture. There will no use of Canvas for this course, everything will be on CoCalc, Zulip, or Gradescope.
Although Math 187B has been taught in some form since 2017, it remains highly experimental in both its use of new technology and the approach to pedagogy. In addition to the final course evaluations, there will be at least one opportunity to submit feedback during the course; this feedback will help me evaluate some of the experiments and plan modifications for future iterations of the course. This class includes a participation component which factors into the course grade (see below). In order to participate fully, students are expected to attend each lecture with a laptop or large tablet with keyboard, equipped with Internet access and a web browser. As a courtesy to fellow students, please keep other online activity to a minimum during lecture, and do not do anything that causes your device to produce audible output.
This class is not open for concurrent enrollment.
Required text: none. In lieu of purchasing a textbook, students will need to get a subscription to CoCalc using their UCSD email address
in order to complete and submit assignments. The cost is about $30 for the quarter.
For those who want to read more, a good reference is An introduction to mathematical cryptography by Hoffstein, Pipher and Silverman.
CoCalc: CoCalc is a web service running the Sage open-source computer algebra system, but it can be accessed using any web browser and so requires no special software installation. Sage in turn is based on the Python programming language, but no prior knowledge of the Python language will be assumed.
All students are required to create an account on CoCalc using their @ucsd.edu email address in order to complete and submit assignments.
There is no cost for a basic account, so you can try out the software for free; but to take the class you will be required to get a subscription (about $30 for the quarter).
Note that the web interface is not currently optimized for small screens like smartphones; you might be able to manage with a large tablet and keyboard, but I can't guarantee that this will work. I also recommend bringing a suitable device to lecture/discussion so that you can try things out as we demonstrate them!
Misuse of CoCalc, including abusive or intolerant behavior, will be subject to campus disciplinary measures.
Computers: Students will need to use a computer that can access the CoCalc website. The only exceptions are quiz days.
Gradescope: The code to add this class on Gradescope will be posted in Zulip. You have to use your @ucsd.edu email and your PID on Gradescope in order to get credit for the participation activities and quizzes.
Quizzes: There will be 4 quizzes administered Wednesdays during lecture. Sample quizzes will be posted on Wednesday the previous week. You can use printouts of the class notes. They can be slightly annotated (some minor corrections or writing in the margin, highlighter), but nothing beyond that. No other materials or resources are allowed. In particular you may not bring homework solutions (either your own or your TA's). You are also not allowed to bring electronic devices such as a cellphone, calculator, computer, or tablet. (The quizzes may require some arithmetic computations, but these are designed to be done by hand.)
Homework: There will be 4 assignments, due Wednesdays or Fridays at 8pm. All assignments will be assigned, completed, submitted, evaluated, and returned using CoCalc; the process for this will be explained in class. The lowest homework score will be dropped.
Participation: Participation in the class will be assesed in two different ways.
- In class participation: each lecture will be presented in the form of a Jupyter notebook with which you will interact in various ways. This forms a graded component, which will be measured using CoCalc's timestamped changelogs for the appropriate directory in your course project; to accommodate asynchronous participation (e.g. you have to miss a class), the window being measured will close 24 hours after the end of the lecture. Participation will not be measured for the first two lectures (3/30, 4/1); the third lecture (4/3) will be measured for practice to illustrate how the system works.
- Asynchronous/remote participation activities: three participation activities that will be submitted in Gradescope. They can be completed remotely and they cannot be dropped.
Final exam: None. Instead, there will be an open-ended final project (due Friday, June 5 at 11:59pm), to be submitted via CoCalc. Details about this will be given by the beginning of week 8.
Grading: All grades are recorded on Cocalc and Gradescope.
Only grades that appear in CoCalc and Gradescope will be included in calculating the total score for the course.
It is your responsibility to make sure your grades are recorded.
- 40% homework (the lowest score will be dropped, all others will be weighted equally).
- 25% quizzes (the lowest quiz score will be dropped).
- 20% final project (This cannot be dropped.)
- 10% in-class participation (up to 17 of 20 lectures counted). Participation will be confirmed by CoCalc's timestamped changelogs for the appropriate directory starting in week 2. Participation will not be measured during the tests.
- 5% asynchronous/remote participation activities submitted through Gradescope.
Any infringement of UCSD's academic integrity or harassment policies, including cheating on a quiz/hw/project, will result in failing the class, as well as further disciplinary action. If you suspect a violation, please bring it to the attention of course staff immediately; we will also be monitoring Chegg and similar sites for suspicious activity.
For the conversion of raw scores into letter grades, the following minima are guaranteed:
| Percentage | 97 | 93 | 90 | 87 | 83 | 80 | 77 | 73 | 70 |
| Minimum grade | A+ | A | A- | B+ | B | B- | C+ | C | C- |
Academic Integrity:
- You are welcome (and strongly encouraged) to work with other students in the class on hw (not quizzes). However, you must clearly indicate who you worked with on each problem. In addition, you must write your solutions in your own words; do not copy/paste from others, as CoCalc's TimeTravel feature makes this trivial to detect.
- You are welcome (and expected) to do research online using the CoCalc documentation, Google, Wikipedia, Stack Overflow, etc; but be sure to provide links to sources you use in your solutions. Be as specific as possible; e.g., provide URLs to individual web pages rather than to whole web sites.
- Misuse of CoCalc will be considered a violation of academic integrity. This includes unauthorized access to other user accounts, and online behavior that violates UCSD's discrimination and harassment policies.
- I reserve the right to take still photos or audio/video recordings during tests. This authority may be delegated to the TAs or to a designated proctor.
- Cheating on an quiz/hw/project or any infringement of UCSD's academic integrity or harassment policies will result in failing the class, as well as further disciplinary action. If you suspect a violation, please bring it to the attention of the instructor and/or TA immediately.
Grade Recording Errors: If there is any mistake in the recording of your scores, you will need the original quiz in order for us to make a change. For CoCalc assignments, changes will be made only if the version history warrants it. The error has to be reported within 1 week since it occurred. No error reports will be accepted after week #9 of the term.
Regrade Policy: If you believe there might be an error in the grading and wish to have your quiz/homework regraded, you must observe the following rules.
- Regrade requests will not be considered later than 3 days after the material was graded.
- If you disagree with the TA's answer to your regrade request, you may ask for the instructor to review it. In order to do this, you must:
- make your request within 24 hours of receiving the TA's answer and
- ask that they forward it to the instructor.
- Instructor review requests will not be considered later than 1 week after the material was graded.
- No regrade requests will be considered after week 9.
Late adds: No matter when you add the course, you are responsible for all the hw, quizzes, etc. No exceptions.
Letters of recommendation: In general, you should try to get a letter of recommendation from a professor with whom you had some one-to-one contact. I will consider recommendation requests only from people who have had some nontrivial interaction with me outside lecture (e.g. during office hours).
Electronic devices: Please do not use devices (such as cell phones, laptops, tablets, iPods) for non-class-related matters while in class/section. No visual or audio recording is allowed in class/section without prior permission of the instructor (whether by camera, cell phone, or other means).
Announcements
- To get started with this class you need to make sure you have access to three tools. Once you register for each, the links at the top of the page will you take you to them.
- CoCalc: registered students will receive an email from them; follow the instructions. You will be required to obtain a subscription to CoCalc (cocalc.com). The cost for the quarter (March 29 - June 6, 2026) will be approximately $30.
- Zulip: the link will be sent to all the students (registered or on the waitlist)
- Gradescope: the code to add yourself to the Gradescope for this class will be posted in Zulip.
- There will be no lecture and no discussions M 5/25 (University holiday).
- The email with the link to join Zulip was sent on Friday March 27, 2026. If you have not received it, please contact me asap.
- The invite to CoCalc was sent on Friday March 27, 2026. If you have not received it, please contact me asap.
- My first office hours are on Monday March 30, 2026, 2:15-3:50pm in APM 7218.
- Starting on Monday March 30, 2026 all announcements will be posted exclusively on Zulip.