This course offers a hands-on introduction to the rigorous foundations of computing with continuous data (real numbers, sequences, functions): from in/computability via complexity to programming practice.
We emphasize the difference between a recipe/heuristic and an algorithm. You will be reminded of aspects from the classical (i.e. discrete) Theory of Computation, from computability to complexity. We then apply it to numerical problems, yielding a rigorous perspective on the (i) computability, (ii) complexity, and (iii) semantics of: real tests, root finding, differentiation, maximization, integration, ODE and PDE solving. The course culminates in a programming assignment in iRRAM: a C++ library providing via object-oriented overloading an abstract data type REAL. In addition, each week will conclude with a theoretical homework assignment.
Lecturer: Martin Ziegler
Language: English only
Prerequisites: Introduction to Computer Science, Discrete Mathematics, Calculus I, C++, root on some Linux computer
Teaching Assistant: Donghyun Lim
Test questions for self-assessment of mathematical background:
Grading: 10% attendance, 50% homework/programming assignments, 40% final exam
There will be 3 small homework/programming assignments throughout July and a final exam on July 25+26 (two parts).
in E3-1 #3444