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.

- AM225 Canvas site for Zoom lecture links and homework submission
- AM225 page on Piazza for announcements and homework Q&A
- AM225 Github repository for code examples

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
- In general, the final project will be completed in groups of two or three students. Single person or multi-person projects 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.