Math 157 - Intro to Mathematical Software (Winter 2022)

Information appearing below is subject to revision until the first lecture. Some additional information, particularly on the use of CoCalc, will be given in the first lecture; CoCalc also provides a tutorial for students. See also Thomas Grubb's Math 157 page from winter 2021.

This course is set up so as to allow seamless pivots between hybrid and fully remote instruction as conditions require. During periods of hybrid instruction, all aspects of the course will still allow for remote participation; however, students are strongly recommend to take advantage of in-person instruction when available.

Course description: Math 157 is an introduction to the use of mathematical software. 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. This course will introduce students to a broad but coherent collection of open-source software tools, and to diverse examples of their use in mathematical study and research. The course will be taught in a hands-on fashion; lectures will consist of interactive demonstrations, while assignments will combine conceptual questions with guided experimentation and discovery. We will make extensive use of the Python and Julia languages, the Jupyter notebook system, and the SageMath computer algebra system; however, no prior exposure to these tools will be assumed.

This course operates using 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.

In addition to CoCalc, we will use Canvas to distribute lecture videos, and Zulip for communication about the course. Connection details for Zulip will be posted to Canvas. (After week 1, I may ignore messages sent by email rather than Zulip.)

Although Math 157 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 several opportunities 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 will be opened for concurrent enrollment as soon as I can confirm that space is available, hopefully by the end of week 1. It should also be feasible to audit the course, either in-person or remotely; contact the instructor to be added to Canvas.

Instructor: Kiran Kedlaya, kedlaya [at] ucsd [etcetera].


Lectures: MWF 11:00-11:50am in Pepper Canyon 122, simulcast over Zoom; recordings will be posted on Canvas, typically within an hour of completion. No lectures on Monday, January 17 or Monday, February 21 (university holidays). A reminder about campus COVID policies:

If you have a disability that interferes with compliance with these requirements, please request a disability accommodation from OSD or take advantage of remote participation options.

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. Students participating remotely are recommended to use a second screen to view the livestream or the recording; the video will be a screen share that will closely reflect what you will see in CoCalc.

In-class participation will typically include interaction with Jupyter notebooks in CoCalc, use of Zulip chat, and online research. 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.

Discussion sections: Wed 5-5:50pm, 6-6:50pm, 7-7:50pm in APM 6402 (on Zoom in weeks 1 and 2). You may attend any section, but students registered for that section will have priority in case the room fills up. Details about remote participation to be confirmed.

Office hours (in-person and/or Zoom; all on Zoom in weeks 1 and 2):

In addition, we will be monitoring Zulip at various times, particularly right before homeworks are due.

In some cases, office hours scheduled for in-person may be shifted to Zoom (e.g., during weeks 1 and 2). This will be announced on Zulip.

Textbook: None. In lieu of purchasing a textbook, students will need to create a free account on CoCalc in order to complete and submit assignments (including the quizzes and final project). (It is not necessary to pay for an upgraded account; equivalent functionality will be provided to enrolled students.) If you do not use your official UCSD email address to create the account, please provide the instructor with the address you used in order to gain access to the course materials.


Homework: Weekly problem sets, due Thursdays at 8pm (one each due during weeks 2,3,4,6,7,8,10). All assignments will be assigned, completed, submitted, evaluated, and returned using CoCalc; the process will be explained in the first lecture.

Quizzes: Two take-home quizzes, due Thursdays at 8pm (in weeks 5 and 9). Quizzes will be assigned 24 hours before the due time and submitted via CoCalc.

Final exam: None. Instead, there will be an open-ended final project (due Thursday, March 17 at 8pm), to be submitted via CoCalc. Details about this will be given by the beginning of week 8.

Participation: Each lecture will be presented in the form of a Jupyter notebook with which you will interact in various ways; at the end of the lecture you will also be expected to complete a brief (60 seconds or less) daily questionnaire. 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, the window being measured will close 12 hours after the end of the lecture. Participation will not be measured for the first two lectures (1/3, 1/5); the third lecture (1/7) will be measured for practice to illustrate how the system works.

Grading: Your grade will be computed two ways, taking the better of the two results:

Since these parameters have been chosen to be somewhat forgiving, and all aspects of the course will accommodate remote participation, no additional excuses will be granted (not even for students joining the course late, or for confirmed COVID cases) except for an Incomplete grade (see below). Any missing element will score 0 in this calculation.

A request for an Incomplete grade will only be granted in accordance with UCSD policies. In particular, you must be on track to receive a passing grade based on your submitted homework and quiz results. To convert an incomplete into a final grade, you must provide to the instructor proper documentation of the circumstances leading to the Incomplete, and arrange with the instructor to complete all outstanding course requirements no later than the end of the subsequent quarter.

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-
Additionally, any score in at least the 85th percentile or higher is guaranteed an A grade, while any score in the 65th percentile or higher is guaranteed a B grade.

Academic Integrity:

Topics calendar:

Some adjustments may be made as the term progresses.