Math 157 - Intro to Mathematical Software (Winter 2023)

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 last year's course webpage or the one from two years ago.

We are currently monitoring the course waitlist and will take steps as needed to accommodate all interested students.

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 Julia programming language, and the Jupyter notebook system, though 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 reserve the right to 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.

Note on Concurrent Enrollment/Public Viewing: This class is open for concurrent enrollment. Email me if you would like to do this. Additionally, due to the digital nature of this class it will be ostensibly possible to follow along throughout the quarter, even if you are not officially enrolled in the course (no guarantees!). If you are interested in doing this, email me.

Instructor: Jack J. Garzella, jgarzell [at] ucsd [etcetera].


Lectures: MWF 1:00-1:50am in Solis 104, recordings will be posted on Canvas, typically about an hour after the lecture ends. No lectures on Monday, January 16 or Monday, February 20 (university holidays). A reminder about campus COVID policies:

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.

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: 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):

For room numbers and zoom links, please see Zulip. 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. 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.


Grading: This course will be graded using standards-based grading. That means that the grade for the course is divided into 10 units:

Each unit will be graded on a scale from 1 to 5, with 5 being the best. A score of "5" corresponds roughly to getting an "A" on an assignment in the traditional system. In particular, a student's assignment need not be perfect to get a 5, they only need demonstrate successful understanding of the material. Likewise, grades of 4, 3, 2, and 1 roughly correspond to B, C, D, and F. The grade cutoffs are as follows: The instructor reserves the right to adjust the "in-between" grade cutoffs (A-, B+, B-, C+, etc.) to make it easier to get these grades. The cutoffs won't be adjusted to make any grades harder to get. The plan is to not make any adjustments, such an adjustment will only happen under an exceptional circumstance.

There are two quizzes, which do not contribute to the final grade. Instead, a quiz grade will replace one unit grade if the quiz grade is higher. Thus, a quiz could replace a homework, participation, or half of a final project grade. If the quiz grade is lower than all homework/participation/final project grades, nothing changes.

Furthermore, if a student wishes to improve their grade on homeworks, there will be an opportunity to do so at the end of class, roughly they will have the opportunity to do one or more extra final projects to replace a grade from their homework. Extra final projects must be proposed by the student, and topics must be related to a non-perfect grade in a previous homework or quiz. 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). Ane missing element will score 1 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.

Homework: There will be 7 weekly assignments. Homeworks 1-3 will be completed as by all students. Homeworks 4-7 will each have two choices--a "Math" assignment and a "Programming" assignment. Students choose exactly one of the two choices and do that one. Between the four assignments, each student must choose two math assginments and two programming assignments. No credit will be given for assignments which do not follow the previous rules. For example, if a student does three "Math" assginments, they will not recieve credit for the third one.
All assignments will be assigned, completed, submitted, evaluated, and returned using CoCalc; the process will be explained in the first lecture. Homeworks will be due Fridays at 10:00 PM Pacific time during weeks 2-8.

Students will be able to turn in homeworks up to one week late for a deduction of one point--i.e. if they would have recievced a 4 but the assignment was completed late, they will recieve a 3.

Because life happens, students will be granted two week-long extenstions on homeworks. These are intended for non-normal circumstances. In order for a student to use an extension, they must request it on a google form BEFORE the due date of the assignment. In addition, during weeks 4-7, the student must specify whether they will complete the "Math" or the "Programming" assginment BEFORE the due date. 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).

Quizzes: Two take-home quizzes, due Thursdays at 8pm (in weeks 5 and 8). Quizzes will be assigned 24 hours before the due time and submitted via CoCalc.
Quiz 1 will take place on Thursday of week 5, and Quiz 2 will take place on Thursday of week 8.

Final exam: None. Instead, there will be an open-ended final project (due Thursday of finals week at 8pm), to be submitted via CoCalc. This will be associated with a final presentation. 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 at 8pm on the day after the the lecture. Participation will not be measured for the first week (week of 1/9); the third lecture (1/13) will be measured for practice to illustrate how the system works.

Grading for the participation unit is as follows:

Upshot: those who want to follow along by watching recordings should plan on watching the recording the day of or the day after the lecture to recieve full participation credit.

Grading Algorithm: Grades will be calculated in the following way: first, a all relevant unit grades will be calculated on the scale from 1 to 5. This inlcudes homeworks, quizzes, participation, and final projects (2 unit grades per final project). Then the best 10 of these will be kept and used to score the student's grade.

Academic Integrity:

Topics calendar:

Some adjustments may be made as the term progresses.