## Advanced Programming

The course aims to provide advanced knowledge of both theoretical and practical programming in C++11 and Python3, with particular regard to the principles of object-oriented programming and best practices of software development.

**Syllabus:**

## Numerical Solution of PDEs Using the Finite Element Method

**The Finite Element Method Using deal.II** This is an intensive course that teaches how to use the finite element library deal.II (www.dealii.org).Prerequisites: you should be familiar with C/C++, and with the Unix command line. We'll cover the basics of Finite Element Methods, and go from solving the Laplace equation on a uniformly refined grid, to solving the same equation using adaptively refined grids, in parallel, on a supercomputer.Lectures will be structured in the following way:

## Reduced Order Methods for Computational Mechanics

The course aims to provide the basic aspects of numerical approximation and efficient solution of parametrized; PDEs for computational mechanics problem (heat and mass transfer, linear elasticity, viscous and potential flows) using reduced order methods.

## Topics in Continuum Mechanics

- Reminders on Linear Algebra and Tensor Calculus
- Kinematics of deformable bodies
- Eulerian and Lagrangian descriptions of motion
- Balance laws of continuum mechanics: conservation of mass, balance of linear and angular momentum, energy balance and dissipation inequality
- Constitutive equations
- Fluid dynamics: the Navier Stokes equations
- Solid mechanics: nonlinear and linearized elasticity
- Selected topics from the mechanics of biological systems