# Introduction to Scientific Computing

[Joachim Schöberl](https://www.asc.tuwien.ac.at/schoeberl)

TU Wien, [Institute of Analysis and Scientific Computing](https://www.asc.tuwien.ac.at)


Many scientific challenges require non-trivial software solutions, which have to be tackeled by researchers with diverse skills. 

In this class we learn the development of scientific software in a *learning by doing* approach.

We have chosen three typical application areas: Basic Linear Algebra, i.e. computing with vectors and matrices, solution of ordinary differential equations,
and numerical solution of partial differential equations. 

We think finding a proper abstraction level of the mathematical concepts, and creating types in the sense of C++ classes is of utmost importance. Then complex algorithms can be written down in a readable and maintainable way. 


Many thanks go to [Matthias Hochsteger](https://www.linkedin.com/in/matthias-hochsteger-316213196) and [Christopher Lackner](https://www.linkedin.com/in/christopher-lackner-2ab075191) for their technical help, and to [Edoardo Bonetti](https://www.asc.tuwien.ac.at/?id=scicomp/people) for careful checking.


This lecture is designed for students in applied mathematics in an early stage.
It is given in this form the first time in winter term 23/24.
If you have suggestions for improvements, or found some errors, please send them per mail
to the author, or open a pull request on the source repo of the book.
Many section are still in draft version, and will be cleaned as the class proceeds.


```{tableofcontents}
```
