Scientific Computing (MATH-GA.2043/CSCI-GA.2112)
This class will be online on zoom (scheduled via NYU classes) during the Fall of 2019, Thursdays 5:10pm-7pm. An additional session will be scheduled for group work (TBD). We will use CampusWire for a communication board for group work and questions (signup link will be sent via NYU Classes).
The class content will be very similar to that from Fall 2019, so consult that if deciding whether to take this class.
Instructor
Aleksandar Donev,
1016 Warren Weaver Hall
E-mail: donev@courant.nyu.edu
Office hours / extra sessions on zoom Fridays 12pm-1pm(ish) or by appointment
Grader
Sachin Nachin (netid srn324).
Course description
This course is a graduate-level introduction to practical introduction to computational problem solving, including both mathematical analysis of numerical algorithms (numerical analysis) and practical problem solving. This is not a programming course but programming in homework projects with Matlab or numerical/scientific Python is an important part of the course work.
3 points per term
Topics covered include:
- floating point arithmetic, conditioning and stability
- direct methods for systems of linear equations
- matrix eigenvalue problems and SVD decomposition
- numerical interpolation, differentiation and integration
- nonlinear systems of equations and unconstrained optimization
- Fourier and wavelet transforms
- ordinary and partial differential equations
- Monte Carlo methods.
All materials related to this course, including lecture notes,
homeworks, schedule, etc., will be posted here. Homework assignments
submission and the exams will be handled via NYU Classes. Videos of my lectures
as well as some example solutions of assignments will also be posted
there.
Prerequisites
A solid background (undergraduate level) in multivariate calculus and linear algebra. Experience with writing computer programs (in Matlab, Python with numpy, Julia or other high-level language) is strongly recommended as homework assignments will involve programming from the start and you will be expected to catch up on your own (summer break is a good time to learn programming!).
Prior knowledge of Matlab is not required, but it will be used as the main language for the course right away from the start so you will need to catch up on your own. If you have experience with other languages (Fortran, C, C++, Python), Matlab will be easy to learn and use, and comes with a great help facility. Please look at some of the "Additional Readings" above for programming guides.
Assignments and grading
There will be regular (biweekly) challenging
assignments. The assignments will be mostly
computational. You will be expected to submit a PDF of your
solutions as a report with figures and equations and explanations.
The grade will be (TBD!) ~50% based on assignments and ~50% on a final exam or project.
Academic integrity policies will be strictly enforced for homework
assignments. In particular, group work on assignments is not allowed and will be treated as a violation of academic
integrity, but group discussions via CampusWire to get some ideas or clarifications or to get unstuck are OK. You will work together on assignments in groups after you submit your own solutions; this ensures that everyone spends time with the assignment on their own first and writes their (initial) code by themselves.