# Search result: Catalogue data in Autumn Semester 2021

Computational Science and Engineering Bachelor | ||||||||||||||||||||||||

Basic Courses | ||||||||||||||||||||||||

Block G1 | ||||||||||||||||||||||||

Number | Title | Type | ECTS | Hours | Lecturers | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|

401-0353-00L | Analysis 3 | O | 4 credits | 2V + 2U | M. Iacobelli | |||||||||||||||||||

Abstract | In this lecture we treat problems in applied analysis. The focus lies on the solution of quasilinear first order PDEs with the method of characteristics, and on the study of three fundamental types of partial differential equations of second order: the Laplace equation, the heat equation, and the wave equation. | |||||||||||||||||||||||

Objective | The aim of this class is to provide students with a general overview of first and second order PDEs, and teach them how to solve some of these equations using characteristics and/or separation of variables. | |||||||||||||||||||||||

Content | 1.) General introduction to PDEs and their classification (linear, quasilinear, semilinear, nonlinear / elliptic, parabolic, hyperbolic) 2.) Quasilinear first order PDEs - Solution with the method of characteristics - COnservation laws 3.) Hyperbolic PDEs - wave equation - d'Alembert formula in (1+1)-dimensions - method of separation of variables 4.) Parabolic PDEs - heat equation - maximum principle - method of separation of variables 5.) Elliptic PDEs - Laplace equation - maximum principle - method of separation of variables - variational method | |||||||||||||||||||||||

Literature | Y. Pinchover, J. Rubinstein, "An Introduction to Partial Differential Equations", Cambridge University Press (12. Mai 2005) | |||||||||||||||||||||||

Prerequisites / Notice | Prerequisites: Analysis I and II, Fourier series (Complex Analysis) | |||||||||||||||||||||||

401-0647-00L | Introduction to Mathematical Optimization | O | 5 credits | 2V + 1U | D. Adjiashvili | |||||||||||||||||||

Abstract | Introduction to basic techniques and problems in mathematical optimization, and their applications to a variety of problems in engineering. | |||||||||||||||||||||||

Objective | The goal of the course is to obtain a good understanding of some of the most fundamental mathematical optimization techniques used to solve linear programs and basic combinatorial optimization problems. The students will also practice applying the learned models to problems in engineering. | |||||||||||||||||||||||

Content | Topics covered in this course include: - Linear programming (simplex method, duality theory, shadow prices, ...). - Basic combinatorial optimization problems (spanning trees, shortest paths, network flows, ...). - Modelling with mathematical optimization: applications of mathematical programming in engineering. | |||||||||||||||||||||||

Literature | Information about relevant literature will be given in the lecture. | |||||||||||||||||||||||

Prerequisites / Notice | This course is meant for students who did not already attend the course "Mathematical Optimization", which is a more advance lecture covering similar topics. Compared to "Mathematical Optimization", this course has a stronger focus on modeling and applications. | |||||||||||||||||||||||

401-2673-00L | Numerical Methods for CSE | O | 9 credits | 2V + 2U + 4P | R. Hiptmair | |||||||||||||||||||

Abstract | The course gives an introduction into fundamental techniques and algorithms of numerical mathematics which play a central role in numerical simulations in science and technology. The course focuses on fundamental ideas and algorithmic aspects of numerical methods. The exercises involve actual implementation of numerical methods in C++. | |||||||||||||||||||||||

Objective | * Knowledge of the fundamental algorithms in numerical mathematics * Knowledge of the essential terms in numerical mathematics and the techniques used for the analysis of numerical algorithms * Ability to choose the appropriate numerical method for concrete problems * Ability to interpret numerical results * Ability to implement numerical algorithms afficiently | |||||||||||||||||||||||

Content | * Computing with Matrices and Vectors * Direct Methods for linear systems of equations * Least Squares Techniques * Data Interpolation and Fitting * Iterative Methods for non-linear systems of equations * Filtering Algorithms * Approximation of Functions * Numerical Quadrature | |||||||||||||||||||||||

Lecture notes | Lecture materials (PDF documents and codes) will be made available to the participants through the course web page, whose address will be announced in the beginning of the course. | |||||||||||||||||||||||

Literature | U. ASCHER AND C. GREIF, A First Course in Numerical Methods, SIAM, Philadelphia, 2011. A. QUARTERONI, R. SACCO, AND F. SALERI, Numerical mathematics, vol. 37 of Texts in Applied Mathematics, Springer, New York, 2000. W. Dahmen, A. Reusken "Numerik für Ingenieure und Naturwissenschaftler", Springer 2006. W. Gander, M.J. Gander, and F. Kwok "Scientific Computing", Springer 2014. M. Hanke-Bourgeois "Grundlagen der Numerischen Mathematik und des wissenschaftlichen Rechnens", BG Teubner, 2002 P. Deuflhard and A. Hohmann, "Numerische Mathematik I", DeGruyter, 2002 | |||||||||||||||||||||||

Prerequisites / Notice | The course will be accompanied by programming exercises in C++ relying on the template library EIGEN. Knowledge of C++ is taken for granted. | |||||||||||||||||||||||

Competencies |
| |||||||||||||||||||||||

Block G2 | ||||||||||||||||||||||||

Number | Title | Type | ECTS | Hours | Lecturers | |||||||||||||||||||

402-0811-00L | Programming Techniques for Scientific Simulations I | O | 5 credits | 4G | R. Käppeli | |||||||||||||||||||

Abstract | This lecture provides an overview of programming techniques for scientific simulations. The focus is on basic and advanced C++ programming techniques and scientific software libraries. Based on an overview over the hardware components of PCs and supercomputer, optimization methods for scientific simulation codes are explained. | |||||||||||||||||||||||

Objective | The goal of the course is that students learn basic and advanced programming techniques and scientific software libraries as used and applied for scientific simulations. | |||||||||||||||||||||||

252-0061-00L | Systems Programming and Computer Architecture | O | 7 credits | 4V + 2U | T. Roscoe, A. Klimovic | |||||||||||||||||||

Abstract | Introduction to systems programming. C and assembly language, floating point arithmetic, basic translation of C into assembler, compiler optimizations, manual optimizations. How hardware features like superscalar architecture, exceptions and interrupts, caches, virtual memory, multicore processors, devices, and memory systems function and affect correctness, performance, and optimization. | |||||||||||||||||||||||

Objective | The course objectives are for students to: 1. Develop a deep understanding of, and intuition about, the execution of all the layers (compiler, runtime, OS, etc.) between programs in high-level languages and the underlying hardware: the impact of compiler decisions, the role of the operating system, the effects of hardware on code performance and scalability, etc. 2. Be able to write correct, efficient programs on modern hardware, not only in C but high-level languages as well. 3. Understand Systems Programming as a complement to other disciplines within Computer Science and other forms of software development. This course does not cover how to design or build a processor or computer. | |||||||||||||||||||||||

Content | This course provides an overview of "computers" as a platform for the execution of (compiled) computer programs. This course provides a programmer's view of how computer systems execute programs, store information, and communicate. The course introduces the major computer architecture structures that have direct influence on the execution of programs (processors with registers, caches, other levels of the memory hierarchy, supervisor/kernel mode, and I/O structures) and covers implementation and representation issues only to the extend that they are necessary to understand the structure and operation of a computer system. The course attempts to expose students to the practical issues that affect performance, portability, security, robustness, and extensibility. This course provides a foundation for subsequent courses on operating systems, networks, compilers and many other courses that require an understanding of the system-level issues. Topics covered include: machine-level code and its generation by optimizing compilers, address translation, input and output, trap/event handlers, performance evaluation and optimization (with a focus on the practical aspects of data collection and analysis). | |||||||||||||||||||||||

Lecture notes | - C programmnig - Integers - Pointers and dynamic memory allocation - Basic computer architecture - Compiling C control flow and data structures - Code vulnerabilities - Implementing memory allocation - Linking - Floating point - Optimizing compilers - Architecture and optimization - Caches - Exceptions - Virtual memory - Multicore - Devices | |||||||||||||||||||||||

Literature | The course is based in part on "Computer Systems: A Programmer's Perspective" (3rd Edition) by R. Bryant and D. O'Hallaron, with additional material. | |||||||||||||||||||||||

Prerequisites / Notice | 252-0029-00L Parallel Programming 252-0028-00L Design of Digital Circuits | |||||||||||||||||||||||

Block G3 All course units within Block G3 are offered in the spring semester. | ||||||||||||||||||||||||

Block G4 All course units within Block G4 are offered in the spring semester. |

- Page 1 of 1