You're not currently signed in. Sign in »

Numerical Methods for Partial Differential Equations (CS 555) Spring 2022

What Where
Time/place Wed/Fri 11:00am-12:15pm 3025 Campuse Instructional Facility/ Catalog
Class URL
Live lecture Participate » · Send instant message
Class recordings Watch »
Forum Discuss » (needs user account)
Calendar View »
Office Hours Participate » (Please use Chrome/Chromium to connect for now)


Quizzes and Feedback Form


Why you should take this class

This course covers the basics of finite difference schemes, finite volume schemes, and finite element methods. In addition, we'll cover some advanced topics such as discontinuous Galerkin and integral equation methods, time permitting.

One of the goals of this course is to build intuition for these methods. We will be providing background for many of the computational and mathematical concepts in the course. As such, you do not need to be an expert in PDEs or in coding. But you should have a course in numerical analysis as your background (CS450 or equivalent), be comfortable with differential equations, and have some coding experience.

The course is divided in roughly two parts: hyperbolic and elliptic. This is of course a generalization, but it does allow us to focus on finite difference/finite volume methods for one part of the course and finite elements for another part. In addition to model problems we'll look at Stokes and other equations in order to develop a full understanding of the methods.

The course involves several homeworks (usually bi-weekly) and two projects: a midsemester project and a final project. There is also a participation grade based on quizzes.

The course homeworks and examples in class will be in Python. In particular, we'll use numpy and scipy.


Andreas Kloeckner

Andreas Kloeckner



Office: 4318 Siebel

Course Outline

Note: the section headings in this tree are clickable to reveal more detail.


These scribbled PDFs are an unedited reflection of what we wrote during class. They need to be viewed in the context of the class discussion that led to them. See the lecture videos for that.

If you would like actual, self-contained class notes, look in the outline above.

These scribbles are provided here to provide a record of our class discussion, to be used in perhaps the following ways:

  • as a way to cross-check your own notes
  • to look up a formula that you know was shown in a certain class
  • to remind yourself of what exactly was covered on a given day

By continuing to read them, you acknowledge that these files are provided as supplementary material on an as-is basis.


We will be using Python with the libraries numpy, scipy and matplotlib for assignments. No other languages are permitted. Python has a very gentle learning curve, so you should feel at home even if you've never done any work in Python.

Books and Source Material

Draft Textbook

Once you sign in and complete your enrollment in RELATE, you will gain access to a draft textbook that was made available by Luke Olson.

Supplementary Text Books

Finite Difference Schemes and Partial Differential Equations
Strikwerda, John C. Finite Difference Schemes and Partial Differential Equations. (available as an e-book via the UIUC library) Society for Industrial and Applied Mathematics, 2004. Second edition. DOI.

Numerical Methods for Conservation Laws
LeVeque, Randall J. Numerical Methods for Conservation Laws. (available as an e-book via the UIUC library) 2nd ed. Birkhäuser Basel, 1992. DOI.

Finite Elements: Theory, Fast Solvers, and Applications in Solid Mechanics
Braess, Dietrich. Finite Elements: Theory, Fast Solvers, and Applications in Solid Mechanics. (available as an e-book via the UIUC library) Cambridge University Press, 2007. DOI.

Previous editions of this class

Computing Resources




Grading Policies

View grading policies »