Course overview: Introduction to computational mathematics covering topics in (numerical) linear algebra, statistics, and optimization. Topics included are those of particular relevance to upper-division computer science courses in machine learning, numerical analysis, graphics, vision, robotics, and more. An emphasis is placed both on understanding core mathematical concepts and introducing associated computational methodologies.
Instructor: Anil Damle
Office hours: Tuesdays 3:00 to 4:00 pm and Wednesdays 10:30 to 11:30 am (Zoom link available on Canvas and CMSX)
TA: Darian Nwankwo
Office hours: Fridays 2:30 to 3:30 pm (Zoom link available on Canvas and CMSX)
Undergraduate TA: Leo Huang
Office hours: By appointment
Lectures: Monday, Wednesday, and Friday from 4:10 PM till 5 PM online (Zoom links are distributed via email and available in CMSX. email the instructor for links if you would like to attend class while not enrolled.)
Course websites: Homework, projects, and exams will be turned in using the course management system (CMS). There will also be a course discussion forum run via Piazza. Lecture videos will be available through Canvas.
Your grade in this course is comprised of three components: homeworks, exams, and a final project. Please also read through the given references in concert with the lectures.
There will be a number of homework assignments throughout the course, typically made available roughly one to two weeks before the due date. They will include a mix of mathematical questions and basic implementation of algorithms. Any required implementation may be done in MATLAB, Julia, or Python. Homeworks should be typeset and submitted along with any associated code via the CMS.
The goal of this course is to provide you with the mathematical and computational fundamentals that underpin a broad range of applications. Therefore, in lieu of a final exam this course will have an open ended final project. In particular, leveraging what you have learned about linear algebra, statistics, and optimization you will tackle a problem of interest to you (you may work individually or in a group and the maximum group size is TBD). Several example projects spanning a range of applications will be provided, though you may also propose your own. More details about the project will be provided within the first several weeks of class including specific requirements and due dates for proposals, check-ins, etc. Per university policy, the final project will be due December 21 at 5 pm ET.
There will be two short take-home prelim exams for this class focused on the more theoretical material discussed in the first two thirds of the course. The specific scope of each exam will be provided closer to the exam date along with relevant practical information.
Your final grade in the course will be computed based on the homework assignments, project, exams, and course participation
This semester is highly unusual. In response to the ongoing global health pandemic flexibility is important. While many aspects of this course have built in flexibility, if situations arise where added flexibility would be beneficial to you please reach out to the instructor to discuss potential arrangements.
You are encouraged to actively participate in class. This can take the form of asking questions in class, responding to questions in class, and actively asking/answering questions on the online discussion board. We will also be soliciting feedback mid-semester to hopefully improve the course.
You may discuss the homework and projects freely with other students, but please refrain from looking at code or writeups by others. You must ultimately implement your own code and write up your own solution.
Except for the final project report, all work is due at 11:59 pm on the due date. Homework and projects should be submitted via the CMS. For each assignment you are allowed up to two "slip days". However, over the course of the semester you may only use a total of eight slip days. You may not use slip days for the final project report exams.
Grades will be posted to the CMS, and regrade requests must be submitted within one week.
MATH 2210 or MATH 2940 or equivalent; pre- or co- requisite: one programming class, and some familiarity with probability and statistics
The Cornell Code of Academic Integrity applies to this course.
In compliance with the Cornell University policy and equal access laws, I am available to discuss appropriate academic accommodations that may be required for student with disabilities. Requests for academic accommodations are to be made during the first three weeks of the semester, except for unusual circumstances, so arrangements can be made. Students are encouraged to register with Student Disability Services to verify their eligibility for appropriate accommodations.
Online course materials are intended to be accessible (e.g., captions on videos, compliant PDFs, etc.). If some aspect of this class does not meet your needs in this regard, please reach out to the course staff so we can fix the necessary items and adjust our processes as necessary.
There is no single required textbook for this course as much of what we will cover is spread out across numerous areas. Nevertheless, the following is a list of good resources for the course and the schedule will be updated to include specific readings.
A tentative schedule follows, and includes the topics we will be covering, relevant reference material, and assignment information. It is quite possible the specific topics covered on a given day will change slightly. This is particularly true for the lectures in the latter part of the course, and this schedule will be updated as necessary.
|9/4||Notation and fundamentals||Section 1.1 and 1.2 of Linear Algebra and Learning from Data by Strang [Section 1.1] [Section 1.2]|
|9/7||Four fundamental subspaces||See notes on Canvas|
|9/9||Norms||See notes on Canvas|
|9/11||Orthogonal matrices, subspaces, and projection matrices||See notes on Canvas||Projection matrices|
|9/14||The SVD||Worksheet||HW 1 due|
|9/16||The SVD and applications||SVD demo||The SVD|
|9/18||The SVD and applications|
|9/21||The SVD and sensitivity of linear systems||The condition number|
|9/23||Eigenvalues and eigenvectors||HW 2 due on 9/24|
|9/28||The power method|
|9/30||The power method and Page Rank|
|10/2||Matrix factorizations and linear systems|
|10/7||Least squares||HW 3 due|
|10/9||Floating point||Take-home exam 1 assigned|
|10/12||Floating point and linear algebra wrap up|
|10/15||Take-home exam 1 due|
|10/16||Intro to probability|
|10/19||Intro to probability|
|10/21||Limit theorems and multivariate Gaussians|
|10/28||Esitmation||HW 4 due|
|11/4||Statistical learning||Project proposal due|
|11/6||Least Squares with noise|
|11/9||PCA||Take-home exam 2 available|
|11/13||Bias variance trade-off||Take-home exam 2 due|
|11/30||What it means to solve an optimization problem|
|12/2||What it means to solve an optimization problem|
|12/4||Search direction methods|
|12/7||Flex||HW 5 due|
|12/14||Flex||HW 6 due|
|12/16||Flex||Last day of class|
|12/21||Project due at 5 pm ET|