# Search result: Catalogue data in Autumn Semester 2020

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

Bachelor Studies (Programme Regulations 2018) | ||||||

First Year Compulsory Courses | ||||||

First Year Examination Block 1 | ||||||

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

401-0151-00L | Linear Algebra | O | 5 credits | 3V + 2U | V. C. Gradinaru | |

Abstract | Contents: 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. | |||||

Objective | Einführung in die Lineare Algebra für Ingenieure unter Berücksichtigung numerischer Aspekte | |||||

Literature | K. Nipp / D. Stoffer, Lineare Algebra, vdf Hochschulverlag, 5. Auflage 2002 Peter J. Olver / Chehrzad Shakiban, Applied linear algebra, 2nd ed. 2018, 10.1007/978-3-319-91041-3 , online in ETH-BIB | |||||

252-0025-01L | Discrete Mathematics | O | 7 credits | 4V + 2U | U. Maurer | |

Abstract | Content: 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). | |||||

Objective | The 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. | |||||

Content | See course description. | |||||

Lecture notes | available (in english) | |||||

252-0856-00L | Computer Science | O | 4 credits | 2V + 2U | F. Friedrich Wicker, M. Schwerhoff | |

Abstract | The 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. | |||||

Objective | Primary 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. | |||||

Content | The 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 notes | English 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. | |||||

Literature | Bjarne 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 | ||||||

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

401-0231-10L | Analysis 1 | O | 8 credits | 4V + 3U | E. Kowalski | |

Abstract | Reelle und komplexe Zahlen, Grenzwerte, Folgen, Reihen, Potenzreihen, stetige Abbildungen, Differential- und Integralrechnung einer Variablen, Einführung in gewöhnliche Differentialgleichungen | |||||

Objective | Einführung in die Grundlagen der Analysis | |||||

Lecture notes | Christian Blatter: Ingenieur-Analysis (Kapitel 1-4) | |||||

Literature | Konrad Koenigsberger, Analysis I. Christian Blatter, Analysis I. | |||||

402-0043-00L | Physics I | O | 4 credits | 3V + 1U | T. Esslinger | |

Abstract | Introduction 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. | |||||

Objective | The 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. | |||||

Content | Mechanics (motion, Newton's laws, work and energy, conservation of momentum, rotation, gravitation, fluids) Periodic Motion and Waves (periodic motion, mechanical waves, acoustics). | |||||

Lecture notes | The lecture follows the book "Physics" by Paul A. Tipler. | |||||

Literature | Paul A. Tipler and Gene P. Mosca, Physics (for Scientists and Engineers), W. H. Freeman and Company | |||||

Repetition Fist Year Computational Science and Engineering BSc | ||||||

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

900-9021-00L | Repetition Fist Year Computational Science and Engineering BSc | 0 credits | not available | |||

Abstract | ||||||

Objective | ||||||

GRUPPEN 3. Semester | ||||||

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

900-9021-10L | Gruppen Rechnergestützte Wissenschaften BSc, 3. Semester This course unit is being used for grouping the excercises classes. The groups are fix and can't be changed during the semester. Only for 3rd semester CSE students and repeaters. | O | 0 credits | not available | ||

Abstract | ||||||

Objective | ||||||

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-0663-00L | Numerical Methods for CSE | O | 8 credits | 2V + 2U + 3P | 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 * Filtering Algorithms * Data Interpolation and Data Fitting in 1D * Approximation of Functions in One Dimension * Numerical Quadrature * Iterative Methods for non-linear systems of equations | |||||

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. Familiarity with C++, object oriented and generic programming is an advantage. Participants of the course are expected to learn C++ by themselves. | |||||

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. | ||||||

Core Courses from Group I (Modules) | ||||||

Module A | ||||||

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

151-0107-20L | High Performance Computing for Science and Engineering (HPCSE) I | W | 4 credits | 4G | P. Koumoutsakos, S. M. Martin | |

Abstract | This 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. | |||||

Objective | With 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. | |||||

Content | 1. 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 notes | https://www.cse-lab.ethz.ch/teaching/hpcse-i_hs20/ 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 / Notice | Students 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 | ||||||

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

263-2800-00L | Design of Parallel and High-Performance Computing | W | 9 credits | 3V + 2U + 3A | T. Hoefler, M. Püschel | |

Abstract | Advanced topics in parallel and high-performance computing. | |||||

Objective | Understand concurrency paradigms and models from a higher perspective and acquire skills for designing, structuring and developing possibly large parallel high-performance software systems. Become able to distinguish parallelism in problem space and in machine space. Become familiar with important technical concepts and with concurrency folklore. | |||||

Content | We will cover all aspects of high-performance computing ranging from architecture through programming up to algorithms. We will start with a discussion of caches and cache coherence in practical computer systems. We will dive into parallel programming concepts such as memory models, locks, and lock-free. We will cover performance modeling and parallel design principles as well as basic parallel algorithms. | |||||

Prerequisites / Notice | This class is intended for the Computer Science Masters curriculum. Students must have basic knowledge in programming in C as well as computer science theory. Students should be familiar with the material covered in the ETH computer science first-year courses "Parallele Programmierung (parallel programming)" and "Algorithmen und Datenstrukturen (algorithm and data structures)" or equivalent courses. | |||||

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. | ||||||

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

401-2000-00L | Scientific Works in MathematicsTarget audience: Third year Bachelor students; Master students who cannot document to have received an adequate training in working scientifically. | O | 0 credits | M. Burger, E. Kowalski | ||

Abstract | Introduction to scientific writing for students with focus on publication standards and ethical issues, especially in the case of citations (references to works of others.) | |||||

Objective | Learn 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 / Notice | Directive Link | |||||

401-2000-01L | Lunch Sessions – Thesis Basics for Mathematics StudentsDetails and registration for the optional MathBib training course: https://www.math.ethz.ch/mathbib-schulungen | Z | 0 credits | Speakers | ||

Abstract | Optional MathBib training course | |||||

Objective | ||||||

402-2000-00L | Scientific Works in PhysicsTarget audience: Master students who cannot document to have received an adequate training in working scientifically. Directive Link | W | 0 credits | C. Grab | ||

Abstract | Literature 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. | |||||

Objective | Basic standards for scientific works in physics: How to write a Master Thesis. What to know about research integrity. | |||||

401-3990-18L | Bachelor's Thesis 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 | O | 14 credits | 30D | Supervisors | |

Abstract | The 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 420 hours of work. | |||||

Objective | In 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 / Notice | The 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. |

- Page 1 of 1