# Practical Lab SS 18 Practical Lab Numerical Simulation

## Programming Methods in Scientific Computing

For the implementation of the algorithms in scientific computing, various different programming languages and packages are used. In this practical training we shall systematically discuss some of the most wide-spread approaches and methods. They will be illustrated by procedures known from other numeric-courses. The practical training is however also suitable for beginners, who have little or no numerical experience. Bachelor as well as master-students are welcome.

### In particular we shall be concerned with

- A short introduction to the mathematical theory of computation, and the principles of moderen dgital computers
- A systematic introduction to Python, a well-structured powerfull language, by means of which the established programming paradigms procedural, functional and object-oriented can intuitively be explained.
- Especially for numerical computations we shall discuss the extensions Numerical Python, Scientific Python and Matplotlib for graphical representations.
- The Python-package SymPy that provides symbolic solution methods analoguous to the commercial computer-algebra systems Maple and Mathematica.
- C and its object oriented extension C++, which allow for a low-level processor-oriented and thus very efficient programming.
- MATLAB as an example of a highly integrated programming environment, that provides comprehensive libraries for different branches in scientific cumputing.
- Maple, a computer-algebra system, with which – amongst others – symbolic expressions can be evaluated, for example differentiation or integration of functions.
- The FEniCS Project, a collection of free software for the development of innovative concepts and tools for automated scientific computing, with a particular focus on automated solution of differential equations by finite element methods, which can be embedded into the Python or C++ programming languages. This part is mainly oriented towards master-students.

The topics will be presented in a lecture of 2 hours per week. The practical training is then divided into sets of homework exercises, which are to be solved individually or in small groups. This will require about 4-6 hours a week.

For the participants, modern workstation and a large Linux-cluster are provided in the INS. Python and all required packages can however also easly be installed on home-computers under Windows, Mac OS X or Linux.

### Times and Dates

- Times: tba
- Room: tba
- Preliminary: Wednesday, 11th October, 16:00h, Seminarraum 6.020, Wegelerstß 6