VU: Scientific Computing in Mathematics (2h)


Contents: Extended programming with C++, bash, python, sage, matlab and whatever is needed. Project managment with make, development tools and a version control system. Use of available mathematical libraries. Mathematical problem solving by means of scientific computing tools.

Lecturer: Prof. Gundolf Haase, Heinrichstr. 36, Zi 506, Klappe 5178,

Time and place: Tuesday 11:30-13:00 in KFU: SR 11.33

Modus and deadline (Empfehlungen zu VU):

Time table for lectures

March 5, 2019
Preminary discussion of the lecture (specialization of students in master studies, laptops?, operating system?, topic of bacc./master thesis?)
March 12, 2019
recall C++:
STL (container, iterator, algorithm, vector, list, arraycode 1, code 2
and some C++11: auto, range-for, lambda function (capture); initializer list; (p2), Examples (Area_1, 2, 3); Memory costs of containers (1, 2, 3)
March 19, 2019
Class hierachy (code), polymorphism (code), const;
Template functions/classes (code 1/code 2)
C++11: auto, range-for, lambda function; code 1 (old, new), code 2
March 26, 2019
Comparison of exercise solutions.
Dynamic memory allocation (tutorial),
exception handling (exceptions, tutorial),
deep copy vs. shallow copy (notes)
myvector (template): incl. NDEBUG, (also p1, p2)
April 2, 2019
C++11:  rvalue reference, move, initializer list ;
methods: =default, = delete; override, final; explicit ;
delegating constructor, inherited constructor (Stroustrup, example),
shared pointer, nullptr, const_expression, static_assert;
Multiprecision libraries: gmp-int (code), mpf/float128 (code), Kahan summation (code)
April 9, 2019
Sparse matrices: CRS and COO
Mixing of C/C++/Fortran (code)
make (tutorial)
April 30, 2019
Compare solutions. make (tutorial)
May 7, 2019
Intro into Linux (Wie werde ich UNIX-Guru? (OpenBook):
command line arguments, redirection, pipelining, tools (example; myvector_ext, BinaryMatrix)
May 14, 2019
bash scripts (ex), make (tutorial)
May 21, 2019
git (basics, simple intro, learn git in 15 min, info)
May 28, 2019
Presentation of project with the subtasks
June 4, 2019
Details on finite elements, solvers, meshing
June 18, 2019

Consulting, web representation of projects (excellent work by students)
June 25, 2019
Project presentation by students

Task sheets:
Students who are not primarily enrolled at KFU: Guide
Books:


C++:
Octave/Matlab:
Python:
Unix:

Version control systems:



  June 18, 2019