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 this page for announcements.

**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 subject. 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 involve guided experimentation and discovery.
We will make extensive use of the Python programming language,
the Jupyter notebook system,
and the SageMath computer algebra system; however,
no prior exposure to these tools, other mathematical software (Mathematica, Maple, Matlab, etc.), or computer programming will be assumed.

This course is based on the cloud computing platform CoCalc (formerly SageMathCloud). As one component of the course grade is in-class participation, students are required to bring a laptop or large tablet to lectures; however, 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.

Officially, this course is being offered for the first time. However, a pilot version of the course was offered during winter 2017 as Math 152: Applicable Math and Computing (based on a course taught by William Stein at University of Washington). Here are the syllabus from that course, the lecture materials, and the CAPE report. (If you took my Math 152 course, please do not not register for Math 157!)

Although Math 157 has been permanently added to the course catalog, 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.

Since Math 157 is new, it may not yet appear in the list of approved courses for certain majors. I have confirmed that Math 157 is now an approved List B/C elective for Mathematics-Computer Science (MA30) majors and an approved upper-division elective for Probability and Statistics (MA35) majors. If you are interested in the course but are unsure whether it will count for your major, please contact me for guidance.

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

**TAs:**

- Thomas Grubb, tgrubb [at] ucsd [etcetera].
- Jun Bo Lau, jblau [at] ucsd [etcetera].
- Peter Wear, pwear [at] ucsd [etcetera].

**Lectures:** MWF 2:00-2:50pm in HSS 1330. No lectures on Monday, January 15 or Monday, February 19 (university holidays). There is a class participation component that contributes to the course grade; see below.

**Discussion sections:** Tuesday 6:00-6:50pm (Wear), 7:00-7:50pm (Wear), 8:00-8:50pm (Grubb), 9:00-9:50pm (Lau) in APM 6402.
Beware that the exterior doors to APM are locked each weekday after 9:20pm.

**Office hours:**

- Kedlaya: Thursday 4-5pm, APM 7202.
- Grubb: Tuesday 11am-12pm, APM 6446.
- Lau: Thursday 11am-12pm, APM 6446.
- Wear: Wednesday 3-5pm, APM 6132.

**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.
(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.

**Prerequisites:**
Math 20D, plus any one of Math 18 or Math 20F or Math 31AH. As usual, these can be waived by the instructor, but I will be pretty strict because I have already made a substantial effort to keep the prerequisites low to begin with.

**Homework:** Weekly problem sets, due Fridays at 8pm (one each during weeks 2-9).
All assignments will be assigned, completed, submitted, evaluated, and returned using CoCalc; the process will be explained in the
first lecture. For security reasons, grades will not be posted within CoCalc; check TritonEd for those.

**Midterms:** None.

**Final exam:** None. Instead, there will be a final project due on the last day of classes (Friday, March 16). This will include an in-class component on March 12 and March 14.

**Grading:**

- 60% homework (best 6 assignments, weighted equally).
- 20% final project.
- 20% in-class participation (up to 20 of 24 lectures counted). Participation is evaluated based on changes in the lectures/[date] directory during the class hour (as timestamped by CoCalc). No evaluations for the first lecture (1/8) or during week 10 (March 12-16).

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. 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.
- Violations of academic integrity may be handled by zeroing out scores on individual assigments; assigning failing course grades; and/or campus disciplinary measures.

**Topics calendar:**

Some adjustments may be made as the term progresses.

- Weeks 1-2: CoCalc, Jupyter notebooks, markdown syntax, Python
- Week 3: Sage
- Week 4: Linear algebra (including comparison with MATLAB)
- Week 5: Discrete math (combinatorics, graph theory)
- Week 6: Algebra, number theory, cryptography
- Weeks 7-8: Statistics (including comparison with R), machine learning
- Week 9: Julia
- Week 10: Final project