In this series, we take a look at the fundamental concepts of numerical computing to solve partial differential equations.

In order to follow the videos, you need the educational materials and content, which are provided as a set of Jupyter Notebooks. You can find the materials in this GitHub repository

**An easy (but not so short) introduction to applied numerical computing****Introduction to Jupyter notebooks****A quick overview of Python programming language****A short tutorial on NumPy, multi-dimensional arrays and matrices library****SciPy in a nutshell, the library of scientific algorithms for Python****Essential Matplotlib, data plotting library for Python****A quick look at SymPy for symbolic computation in Python****Use SymPy for solving ordinary differential equations in Python****High-performance computing and parallel programming in Python****A short git tutorial; introducing version control systems****Why numerical methods matter? Why we need them for computer simulations?****Finite difference method for (nonlinear) ordinary differential equations (ODEs)**.**Finite difference method for solving partial differential equations (PDEs)****Stability condition and higher-order methods for numerical solution of PDEs****Finite difference solution of the diffusion equation****Iterative solution of differential equations using finite difference method****All you need to know from finite element theory | Part 1 | approximation using basis functions****All you need to know from finite element theory | Part 2 | variational and weak formulation of PDEs****All you need to know from finite element theory | Part 3 | time-dependent and nonlinear problems**