Introduction
Scientific computing has become an indispensable tool in many branches of
research, and is vitally important for studying a wide range of physical and
social phenomena. Applied Math 225 is designed as a second graduate-level
course in this field, and covers a variety of advanced topics in numerical
analysis, algorithm design, and high-performance computing.
The course is loosely designed as a follow-up to Applied Math 205
and will follow a similar style, with an emphasis on numerical methods for
ordinary and partial differential equations. Topics such as finite element
methods, finite volume methods, spectral methods, and interface tracking
methods will be covered. Advanced techniques in numerical linear algebra will
also be covered.
There will be a significant programming component, and the course will
extensively discuss the implementation of numerical algorithms on modern
computer architectures. Due to the importance of parallelism in modern
computing, the course will cover multithreaded programming using the OpenMP
library.
Teaching team
Nick Boffi
Teaching Fellow
Eder Medina
Teaching Fellow
Course information
A more detailed description of this information can be found in the course syllabus.
- Lectures
- Monday & Wednesday 10:30am ET via Zoom (see Canvas page for links)
- Homework
- There will be five homework assignments. The first
is due on Thursday February 11th, and the remainder are due at roughly two
week intervals. Homework assignments will be
due at 5pm ET and can be uploaded via the course Canvas page. In addition,
an introductory homework assignment 0 is provided, which is ungraded
but designed for you to refresh your familiarity with programming.
- Prerequisites
- The course will assume that students have
already taken a course in scientific computing that is similar to
AM 205.
Familiarity with linear algebra, calculus, and partial differential
equations will be assumed. An intermediate level of programming ability
(e.g. at the level of CS 50/51, AM 111/205) will
be assumed. The course will also require the use of either C++ or
Fortran—students should either be familiar with this, or have a
willingness to learn.
- Academic integrity policy
- Discussion and the exchange of ideas are
essential to doing academic work. For assignments in this course, you
are encouraged to consult with your classmates as you work on problem
sets. However, after discussions with peers, make sure that you can
work through the problem yourself and ensure that any answers you
submit for evaluation are the result of your own efforts. In addition,
you must cite any books, articles, websites, lectures, etc. that
have helped you with your work using appropriate citation practices.
Similarly, you must list the names of students with whom you have
collaborated on problem sets. Using homework solutions from previous
years is forbidden.
- Grades
- The final grade will be based on homework assignments
(65%), and the final project (35%).
- Final project
- This document contains
details about the final project organization. In general, the final
project will be completed in groups of one, two, or three students. Projects
with four or more people are also allowed with instructor permission. Each
group will propose a project topic drawn from an application area of
interest. The project should make use of concepts covered in the course.
The project should be roughly equivalent in scope to a section of a
published research article. You will be required to write software to solve
your problem, and to submit a report that includes a mathematical
discussion of your methodology in relation to the theory covered in the
course. Projects will be assessed based on a written report, and the
quality and correctness of software. Code should be well-documented and
should be organized so that figures submitted in the report can be easily
reproduced by the graders.