Course Description

Welcome to the beautiful world of numerical methods! This course will introduce basic techniques that underly many of the computational tools used in aerospace engineering and other related fields. Numerical methods are the centerpiece of applications like large-scale simulation of complex physical phenomena, Google’s Page Rank algorithms, font design, and weather prediction (to name just a few!). Our focus will be on how some key numerical methods work (and fail), and on how to implement these methods using code. That is, our learning outcomes are to both understand the mathematical properties (accuracy, stability, and general appropriateness) of a given method and be able to implement the method with code.

We hope you enjoy your exploration into this beautiful and important subject! Here are some (of many) exciting example applications of numerical methods: TODO

Pre-requisites: Credit or concurrent registration in CS 101 (or similar course), MATH 221, MATH 231, and MATH 241.

Learning Outcomes

  • Understand the mathematical fundamentals of prominent aerospace numerical methods.
  • Know how to implement and apply these methods using code.
  • Clearly communicate these methods and their application to challenging, open-ended problems through technical reports.
  • Have a growing appreciation for the beauty and power of mathematics and code.

Course Organization

Weekly Structure

The course is organized around a weekly structure of two lectures and one lab. Lectures aim to introduce key concepts. Labs aim to give you a chance to implement those concepts in code (by starting on homework and project assignments in a group setting).

Course Materials

Links to course materials are provided at the top of the website. Links to assignments will be posted on the Schedule page.

There is no textbook for this course. The lectures are designed to be self contained with supplementary material occassionaly covered in PDF notes. Additional references on numerical methods that you might find helpful are listed below.

Course Tools

Links to course tools are provided at the top of the website.


All announcements and discussions will be handled on Campuswire. We recommend you set up notifications to keep up with announcements.

Any questions about concepts, assignments, or course material should be made public to avoid answering the same question multiple times. Feel free to post anonymously to your peers or anonymously to everyone (including instructors) as desired. Messages regarding personal issues (e.g., sickness, leave, individual grades) should be messaged privately to the instructor(s).


All assignments will be distributed using GitHub Classroom. If you have not used GitHub, there is a short tutorial available here.

See the Assignments page for more details regarding assignment distribution and submissions.


All assignment submissions and grades will be handled on Gradescope.


All coding assignments will be done with Python using IPython (Jupyter) notebooks. Python is open-source, widely used, and has a very active support community (e.g., stack overflow). You are expected to already be proficient in Python.

Homework 1 is meant to be a quick refresher that gets you up-to-speed on Python for this course.

See the Resources page for resources related to coding (e.g., suggestions on setting up a programming environment for this course).


Quizzes: To help you stay on top of the lecture material, there will be brief multiple choice quizzes each week. The quizzes will cover topics from the current week. They are designed to be simple, straightforward, and short (to take < 10 minutes). Think of these as ``if I am attentive during lectures for the week, then I will get a 100% on this quiz.’’

Quizzes will be available at the beginning of each week and due the end of that same week.

Homeworks: There will a homework assignment each week, except during project weeks. Homeworks will contain a mix of analytical problems (e.g., derivations) and coding problems.

You are encouraged to work together on homeworks, but each student should prepare and submit their own work. Homework that is viewed as insufficiently distinct to warrant an independent submission will not be given credit, and, depending on the situation, may be submitted as cheating via the FAIR system.

Projects: In place of exams, this course will involve two projects (one individual, one group). Each project is expected to take significantly more effort and critical thinking than a homework, and will be submitted as a technical report (with supplementary code). The projects will be open-ended to offer you an opportunity to design your own methods and use them to understand aerospace-relevant problems. There will be no homework due while the project is going on.

While the group project will be a team effort, individual grades will be assigned based on the submitted work and peer review of individual contributions (as needed).

Drop Pollicy: Your lowest homework grade will be dropped.

Late Policy: Late mini-quiz submissions will not be accepted. Late homework and project submissions will be accepted up to 72 hours after the deadline with the following deductions: -10 points (within 24 hours of the deadline), -15 points (within 48 hours of the deadline), -20 points (within 72 hours of the deadline).


Your final grade will calculated from quizzes (5%), homeworks (35%), project 1 (25%), and project 2 (35%). The following grading scale will be used:

Grade Point Range
A [93, 100)
A- [90, 93)
B+ [87, 90)
B [83, 87)
B- [80, 83)
C+ [77, 80)
C [73, 77)
C- [70, 73)
D+ [67, 70)
D [63, 67)
D- [60, 63)
F < 60

Respect and Growth in the Classroom

The effectiveness of our course is dependent upon each of us to create a safe and encouraging learning environment that allows for the open exchange of ideas while also ensuring equitable opportunities and respect for all of us. Everyone is expected to help establish and maintain an environment where students, staff, and faculty can contribute without fear of personal ridicule, or intolerant or offensive language. We ask everyone to be ready to learn and grow in your respect and understanding of others, in addition to your understanding of the course material.


A feeling of belonging and inclusion is critical to the success and health of our community. The Aerospace Engineering department has a committee called Aero’s Space to Belong. They offer office hours, one-on-one discussion, and a reporting process. If you experience conflict that undermines your or someone else’s feelings of belonging, please consider using these resources:


Any student with special needs or circumstances requiring accommodation in this course (e.g., disability-related academic adjustments and/or auxiliary aids) is encouraged to contact the instructor and the Disability Resources and Educational Services (DRES) as soon as possible. To contact DRES, you may visit 1207 S. Oak St., Champaign, call 333-4603, e-mail or go to the DRES website. We will ensure these special needs are met.

Additional References

  • P. Moin, Fundamentals of engineering numerical analysis, 2nd edition, Cambridge.
    • This book was used for several years for AE 370. It covers much of the same material from lectures in an accessible manner, though with a different structure and presentation style.
  • M. T. Heath, Scientific computing: an introductory survey. McGraw-Hill.
    • This book covers more-or-less similar material to Moin’s book but with a very different tone. It is significantly less concise, which has its advantages and disadvantages.
  • W. H. Press, B. P. Flannery, S. A. Teukolsky, & W. T. Vettering, Numerical recipes: the art of scientific computing, Cambridge.
    • This is a very successful ``cookbook’’ on basic numerical methods. The presentation is varied, not constructed with a unified pedagological objective, so it does not make a great stand-alone textbook. It is meant more to be a handbook for the practitioner than a textbook for a course. However, it provides a pithy and in places brilliantly insightful analysis of some of the topics covered in this course. It has some significant free online content, including sample codes, which might be useful:
  • E. Suli, & D. Myers, An introduction to numerical analysis, Cambridge.
    • A good book if you’re looking for a more mathematical exposition of much (but not all) of the material covered here. There are some more details on topics not related to spectral methods.
  • R. J. LeVeque, Finite difference methods for ordinary and partial differential equations, SIAM.
    • A lovely book on finite difference methods, with particular application to the second part of the course on numerically solving ordinary and partial differential equations.
  • L. N. Trefethen, Approximation theory and approximation practice, Cambridge.
    • A book that focuses on function interpolation and approximation (the topics of the first part of this class). The text is well written and goes into much more mathematical detail than we have time for.