From 2 November 2020, the autumn semester 2020 will take place online. Exceptions: Courses that can only be carried out with on-site presence.
Please note the information provided by the lecturers via e-mail.

Search result: Catalogue data in Autumn Semester 2019

Computational Science and Engineering Bachelor Information
Bachelor Studies (Programme Regulations 2018)
First Year Compulsory Courses
First Year Examination Block 1
NumberTitleTypeECTSHoursLecturers
401-0151-00LLinear Algebra Information Restricted registration - show details O5 credits3V + 2UV. C. Gradinaru
AbstractContents: Linear systems - the Gaussian algorithm, matrices - LU decomposition, determinants, vector spaces, least squares - QR decomposition, linear maps, eigenvalue problem, normal forms - singular value decomposition; numerical aspects; introduction to MATLAB.
ObjectiveEinführung in die Lineare Algebra für Ingenieure unter Berücksichtigung numerischer Aspekte
Lecture notesK. Nipp / D. Stoffer, Lineare Algebra, vdf Hochschulverlag, 5. Auflage 2002
LiteratureK. Nipp / D. Stoffer, Lineare Algebra, vdf Hochschulverlag, 5. Auflage 2002
252-0025-01LDiscrete Mathematics Information O7 credits4V + 2UU. Maurer
AbstractContent: Mathematical reasoning and proofs, abstraction. Sets, relations (e.g. equivalence and order relations), functions, (un-)countability, number theory, algebra (groups, rings, fields, polynomials, subalgebras, morphisms), logic (propositional and predicate logic, proof calculi).
ObjectiveThe primary goals of this course are (1) to introduce the most important concepts of discrete mathematics, (2) to understand and appreciate the role of abstraction and mathematical proofs, and (3) to discuss a number of applications, e.g. in cryptography, coding theory, and algorithm theory.
ContentSee course description.
Lecture notesavailable (in english)
252-0856-00LComputer Science Information O4 credits2V + 2UF. O. Friedrich, M. Schwerhoff
AbstractThe course covers the fundamental concepts of computer programming with a focus on systematic algorithmic problem solving. Taught language is C++. No programming experience is required.
ObjectivePrimary educational objective is to learn programming with C++. After having successfully attended the course, students have a good command of the mechanisms to construct a program. They know the fundamental control and data structures and understand how an algorithmic problem is mapped to a computer program. They have an idea of what happens "behind the scenes" when a program is translated and executed. Secondary goals are an algorithmic computational thinking, understanding the possibilities and limits of programming and to impart the way of thinking like a computer scientist.
ContentThe course covers fundamental data types, expressions and statements, (limits of) computer arithmetic, control statements, functions, arrays, structural types and pointers. The part on object orientation deals with classes, inheritance and polymorphism; simple dynamic data types are introduced as examples. In general, the concepts provided in the course are motivated and illustrated with algorithms and applications.
Lecture notesEnglish lecture notes will be provided during the semester. The lecture notes and the lecture slides will be made available for download on the course web page. Exercises are solved and submitted online.
LiteratureBjarne Stroustrup: Einführung in die Programmierung mit C++, Pearson Studium, 2010
Stephen Prata, C++ Primer Plus, Sixth Edition, Addison Wesley, 2012
Andrew Koenig and Barbara E. Moo: Accelerated C++, Addison-Wesley, 2000
First Year Examination Block 2
NumberTitleTypeECTSHoursLecturers
401-0231-10LAnalysis 1 Information Restricted registration - show details
Students in BSc EEIT may instead register for 401-1261-07L Analysis I (for BSc Mathematics, BSc Physics and BSc Interdisciplinary Science (Phys Chem)) and take the performance assessment of the corresponding two-semester course. Students in BSc EEIT who wish to register for 401-1261-07L/401-1262-07L Analysis I/II instead of 401-0231-10L/401-0232-10L Analysis 1/2 must get in touch with the Study Administration before the registration.
O8 credits4V + 3UP. Feller
AbstractReelle und komplexe Zahlen, Grenzwerte, Folgen, Reihen, Potenzreihen, stetige Abbildungen, Differential- und Integralrechnung einer Variablen, Einführung in gewöhnliche Differentialgleichungen
ObjectiveEinführung in die Grundlagen der Analysis
Lecture notesChristian Blatter: Ingenieur-Analysis (Kapitel 1-4)
LiteratureKonrad Koenigsberger, Analysis I.
Christian Blatter, Analysis I.
402-0043-00LPhysics IO4 credits3V + 1US. P. Quanz
AbstractIntroduction to the concepts and tools in physics with the help of demonstration experiments: mechanics of point-like and ridged bodies, periodic motion and mechanical waves.
ObjectiveThe concepts and tools in physics, as well as the methods of an experimental science are taught. The student should learn to identify, communicate and solve physical problems in his/her own field of science.
ContentMechanics (motion, Newton's laws, work and energy, conservation of momentum, rotation, gravitation, fluids)
Periodic Motion and Waves (periodic motion, mechanical waves, acoustics).
Lecture notesThe lecture follows the book "Physics" by Paul A. Tipler.
LiteraturePaul A. Tipler and Gene P. Mosca, Physics (for Scientists and Engineers), W. H. Freeman and Company
Basic Courses
Block G1
NumberTitleTypeECTSHoursLecturers
401-0353-00LAnalysis 3 Information O4 credits2V + 2UM. Iacobelli
AbstractIn 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.
ObjectiveThe 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.
Content1.) 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
LiteratureY. Pinchover, J. Rubinstein, "An Introduction to Partial Differential Equations", Cambridge University Press (12. Mai 2005)
Prerequisites / NoticePrerequisites: Analysis I and II, Fourier series (Complex Analysis)
401-0647-00LIntroduction to Mathematical Optimization Information O5 credits2V + 1UD. Adjiashvili
AbstractIntroduction to basic techniques and problems in mathematical optimization, and their applications to a variety of problems in engineering.
ObjectiveThe 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.
ContentTopics 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.
LiteratureInformation about relevant literature will be given in the lecture.
Prerequisites / NoticeThis 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-0663-00LNumerical Methods for CSEO8 credits4V + 2U + 1PR. Hiptmair
AbstractThe 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
[ Filtering Algorithms, optional]
* Approximation of Functions
* Numerical Quadrature
* Iterative Methods for non-linear systems of equations
* Single Step Methods for ODEs
* Stiff Integrators
Lecture notesLecture 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.
LiteratureU. 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 / NoticeThe course will be accompanied by programming exercises in C++ relying on the template library EIGEN. Familiarity with C++, object oriented and generic programming is an advantage. Participants of the course are expected to learn C++ by themselves.
Block G2
NumberTitleTypeECTSHoursLecturers
402-0811-00LProgramming Techniques for Scientific Simulations IO5 credits4GR. Käppeli
AbstractThis 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
252-0061-00LSystems Programming and Computer Architecture Information O7 credits4V + 2UT. Roscoe
AbstractIntroduction 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.
ObjectiveThe 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.
ContentThis 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
LiteratureThe 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 / Notice252-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.
Core Courses from Group I (Modules)
Module A
NumberTitleTypeECTSHoursLecturers
151-0107-20LHigh Performance Computing for Science and Engineering (HPCSE) IW4 credits4GP. Koumoutsakos
AbstractThis course gives an introduction into algorithms and numerical methods for parallel computing on shared and distributed memory architectures. The algorithms and methods are supported with problems that appear frequently in science and engineering.
ObjectiveWith manufacturing processes reaching its limits in terms of transistor density on today’s computing architectures, efficient utilization of computing resources must include parallel execution to maintain scaling. The use of computers in academia, industry and society is a fundamental tool for problem solving today while the “think parallel” mind-set of developers is still lagging behind.

The aim of the course is to introduce the student to the fundamentals of parallel programming using shared and distributed memory programming models. The goal is on learning to apply these techniques with the help of examples frequently found in science and engineering and to deploy them on large scale high performance computing (HPC) architectures.
Content1. Hardware and Architecture: Moore’s Law, Instruction set architectures (MIPS, RISC, CISC), Instruction pipelines, Caches, Flynn’s taxonomy, Vector instructions (for Intel x86)

2. Shared memory parallelism: Threads, Memory models, Cache coherency, Mutual exclusion, Uniform and Non-Uniform memory access, Open Multi-Processing (OpenMP)

3. Distributed memory parallelism: Message Passing Interface (MPI), Point-to-Point and collective communication, Blocking and non-blocking methods, Parallel file I/O, Hybrid programming models

4. Performance and parallel efficiency analysis: Performance analysis of algorithms, Roofline model, Amdahl’s Law, Strong and weak scaling analysis

5. Applications: HPC Math libraries, Linear Algebra and matrix/vector operations, Singular value decomposition, Neural Networks and linear autoencoders, Solving partial differential equations (PDEs) using grid-based and particle methods
Lecture noteshttps://www.cse-lab.ethz.ch/teaching/hpcse-i_hs19/
Class notes, handouts
Literature• An Introduction to Parallel Programming, P. Pacheco, Morgan Kaufmann
• Introduction to High Performance Computing for Scientists and Engineers, G. Hager and G. Wellein, CRC Press
• Computer Organization and Design, D.H. Patterson and J.L. Hennessy, Morgan Kaufmann
• Vortex Methods, G.H. Cottet and P. Koumoutsakos, Cambridge University Press
• Lecture notes
Prerequisites / NoticeStudents should be familiar with a compiled programming language (C, C++ or Fortran). Exercises and exams will be designed using C++. The course will not teach basics of programming. Some familiarity using the command line is assumed. Students should also have a basic understanding of diffusion and advection processes, as well as their underlying partial differential equations.
Module B
NumberTitleTypeECTSHoursLecturers
263-2800-00LDesign of Parallel and High-Performance Computing Information Restricted registration - show details W8 credits3V + 2U + 2AM. Püschel, T. Ben Nun
AbstractAdvanced topics in parallel / concurrent programming.
ObjectiveUnderstand concurrency paradigms and models from a higher perspective and acquire skills for designing, structuring and developing possibly large concurrent software systems. Become able to distinguish parallelism in problem space and in machine space. Become familiar with important technical concepts and with concurrency folklore.
Core Courses from Group II
No offering in the Autumn Semester
Bachelor's Thesis
If you wish to have recognised 402-2000-00L Scientific Works in Physics instead of 401-2000-00L Scientific Works in Mathematics (as allowed for the CSE programme), take contact with the Study Administration Office (www.math.ethz.ch/studiensekretariat) after having passed the performance assessment.
NumberTitleTypeECTSHoursLecturers
401-2000-00LScientific Works in Mathematics
Target audience:
Third year Bachelor students;
Master students who cannot document to have received an adequate training in working scientifically.
O0 creditsÖ. Imamoglu
AbstractIntroduction to scientific writing for students with focus on publication standards and ethical issues, especially in the case of citations (references to works of others.)
ObjectiveLearn the basic standards of scientific works in mathematics.
Content- Types of mathematical works
- Publication standards in pure and applied mathematics
- Data handling
- Ethical issues
- Citation guidelines
Prerequisites / NoticeDirective Link
401-2000-01LLunch Sessions – Thesis Basics for Mathematics Students
Details and registration for the optional MathBib training course: https://www.math.ethz.ch/mathbib-schulungen
Z0 creditsSpeakers
AbstractOptional MathBib training course
Objective
402-2000-00LScientific Works in Physics
Target audience:
Master students who cannot document to have received an adequate training in working scientifically.

Directive Link
W0 creditsC. Grab
AbstractLiterature Review: ETH-Library, Journals in Physics, Google Scholar; Thesis Structure: The IMRAD Model; Document Processing: LaTeX and BibTeX, Mathematical Writing, AVETH Survival Guide; ETH Guidelines for Integrity; Authorship Guidelines; ETH Citation Etiquettes; Declaration of Originality.
ObjectiveBasic standards for scientific works in physics: How to write a Master Thesis. What to know about research integrity.
401-3990-18LBachelor's Thesis Restricted registration - show details
Only for Computational Science and Engineering BSc, Programme Regulations 2018.

Successful participation in the course unit 401-2000-00L Scientific Works in Mathematics or 402-2000-00L Scientific Works in Physicsis is required.
For more information, see www.math.ethz.ch/intranet/students/study-administration/theses.html
O14 credits30DSupervisors
AbstractThe BSc thesis concludes the curriculum. In their BSc thesis, students should demonstrate their ability to carry out independent, structured scientific work. The purpose of the BSc thesis is to deepen knowledge in a certain subject and to bring students into closer contact with applications in an existing computational group. The BSc thesis requires approximately 160 hours of work.
ObjectiveIn their Bsc thesis students should demonstrate their ability to carry out independent, structured scientific work. The purpose is to deepen knowledge in a certain subject and to enable students to collaborate in an existing scientific group to take a computational approach to problems encountered in applications.
Prerequisites / NoticeThe supervisor responsible for the Bachelor thesis defines the task and determines the start and the submission date. The Bachelor thesis concludes with a written report. The Bachelor thesis is graded.
Bachelor Studies (Programme Regulations 2012 and 2016)
Basic Courses
Block G1 (Programme Regulations 2012 and 2016)
NumberTitleTypeECTSHoursLecturers
401-0353-00LAnalysis 3 Information O4 credits2V + 2UM. Iacobelli
AbstractIn 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.
ObjectiveThe 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.
Content1.) 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
LiteratureY. Pinchover, J. Rubinstein, "An Introduction to Partial Differential Equations", Cambridge University Press (12. Mai 2005)
Prerequisites / NoticePrerequisites: Analysis I and II, Fourier series (Complex Analysis)
402-0811-00LProgramming Techniques for Scientific Simulations IO5 credits4GR. Käppeli
AbstractThis 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
401-0663-00LNumerical Methods for CSEO8 credits4V + 2U + 1PR. Hiptmair
AbstractThe 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
[ Filtering Algorithms, optional]
* Approximation of Functions
* Numerical Quadrature
* Iterative Methods for non-linear systems of equations
* Single Step Methods for ODEs
* Stiff Integrators
Lecture notesLecture 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.
LiteratureU. 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 / NoticeThe course will be accompanied by programming exercises in C++ relying on the template library EIGEN. Familiarity with C++, object oriented and generic programming is an advantage. Participants of the course are expected to learn C++ by themselves.
Block G2 (Programme Regulations 2012 and 2016)
252-0834-00L Information Systems for Engineers will be offered in the Spring Semester.
NumberTitleTypeECTSHoursLecturers
401-0603-00LStochastics (Probability and Statistics) Information Restricted registration - show details O4 credits2V + 1UC. Czichowsky
AbstractThis class covers the following concepts: random variables, probability, discrete and continuous distributions, joint and conditional probabilities and distributions, the law of large numbers, the central limit theorem, descriptive statistics, statistical inference, inference for normally distributed data, point estimation, and two-sample tests.
ObjectiveKnowledge of the basic principles of probability and statistics.
ContentIntroduction to probability theory, some basic principles from mathematical statistics and basic methods for applied statistics.
Lecture notesLecture notes
LiteratureLecture notes
  •  Page  1  of  5 Next page Last page     All