# Search result: Catalogue data in Autumn Semester 2018

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

Lecture notes | K. Nipp / D. Stoffer, Lineare Algebra, vdf Hochschulverlag, 5. Auflage 2002 | |||||

Literature | K. Nipp / D. Stoffer, Lineare Algebra, vdf Hochschulverlag, 5. Auflage 2002 | |||||

252-0025-00L | 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. O. Friedrich, M. Schwerhoff | |

Abstract | Die Vorlesung bietet eine Einführung in das Programmieren mit einem Fokus auf systematischem algorithmischem Problemlösen. Lehrsprache ist C++. Es wird keine Programmiererfahrung vorausgesetzt. | |||||

Objective | Primäres Lernziel der Vorlesung ist die Befähigung zum Programmieren mit C++. Studenten beherrschen nach erfolgreichem Abschluss der Vorlesung die Mechanismen zum Erstellen eines Programms, sie kennen die fundamentalen Kontrollstrukturen, Datenstrukturen und verstehen, wie man ein algorithmisches Problem in ein Programm abbildet. Sie haben eine Vorstellung davon, was "hinter den Kulissen" passiert, wenn ein Programm übersetzt und ausgeführt wird. Sekundäre Lernziele der Vorlesung sind das Computer-basierte, algorithmische Denken, Verständnis der Möglichkeiten und der Grenzen der Programmierung und die Vermittlung der Denkart eines Computerwissenschaftlers. | |||||

Content | Wir behandeln fundamentale Datentypen, Ausdrücke und Anweisungen, (Grenzen der) Computerarithmetik, Kontrollanweisungen, Funktionen, Felder, zusammengesetze Strukturen und Zeiger. Im Teil zur Objektorientierung werden Klassen, Vererbung und Polymorhpie behandelt, es werden exemplarisch einfache dynamische Datentypen eingeführt. Die Konzepte der Vorlesung werden jeweils durch Algorithmen und Anwendungen motiviert und illustriert. | |||||

Lecture notes | Ein Skript in englischer Sprache wird semesterbegleitend herausgegeben. Das Skript und die Folien werden auf der Vorlesungshomepage zum Herunterladen bereitgestellt. | |||||

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 1Studierende im BSc EEIT können alternativ auch 401-1261-07L Analysis I (für BSc Mathematik, BSc Physik und BSc IN (phys.-chem. Fachrichtung)) belegen und den zugehörigen Jahreskurs prüfen lassen. Studierende im BSc EEIT, welche 401-1261-07L/401-1262-07L Analysis I/II anstelle von 401-0231-10L/401-0232-10L Analysis 1/2 belegen möchten, wenden sich vor der Belegung an ihren Studiengang. | O | 8 credits | 4V + 3U | A. Iozzi | |

Abstract | Calculus of one variable: Real and complex numbers, vectors, limits, sequences, series, power series, continuous maps, differentiation and integration in one variable, introduction to ordinary differential equations | |||||

Objective | Einfuehrung in die Grundlagen der Analysis | |||||

Lecture notes | Christian Blatter: Ingenieur-Analysis (Kapitel 1-3) Skript der Vorlesung (A. Iozzi) Konrad Koenigsberger, Analysis I. | |||||

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

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

Basic Courses | ||||||

Block G1 | ||||||

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

401-0353-00L | Analysis III | O | 4 credits | 2V + 2U | A. Figalli | |

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 | 4V + 2U + 1P | R. Alaifari | |

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 | 1. Direct Methods for linear systems of equations 2. Least Squares Techniques 3. Data Interpolation and Fitting 4. Filtering Algorithms 8. Approximation of Functions 9. Numerical Quadrature 10. Iterative Methods for non-linear systems of equations 11. Single Step Methods for ODEs 12. Stiff Integrators | |||||

Lecture notes | Lecture materials (PDF documents and codes) will be made available to the participants through the course web page: https://metaphor.ethz.ch/x/2018/hs/401-0663-00L/ | |||||

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

401-0603-00L | Stochastics (Probability and Statistics) | O | 4 credits | 2V + 1U | M. H. Maathuis | |

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

Objective | Knowledge of the basic principles of probability and statistics. | |||||

Content | Introduction to probability theory, some basic principles from mathematical statistics and basic methods for applied statistics. | |||||

Lecture notes | Lecture notes | |||||

Literature | Lecture notes | |||||

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 advances 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-00L | Systems Programming and Computer Architecture | O | 7 credits | 4V + 2U | T. Roscoe | |

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) offered as of HS 2019 | ||||||

Core Courses from Group II offered as of HS 2019 | ||||||

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

Lecture notes | Moodle of the Mathematics Library: https://moodle-app2.let.ethz.ch/course/view.php?id=519 | |||||

Prerequisites / Notice | Directive Link | |||||

401-2000-01L | Training Course "Search for Documents in Mathematics" [under revision]Details and registration for the optional MathBib training course: https://www.math.ethz.ch/mathbib-schulungen | Z | 0 credits | Speakers | ||

Abstract | Optional course "Recherchieren in der Mathematik" (held in German) by the Mathematics Library. | |||||

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

Bachelor Studies (Programme Regulations 2012 and 2016) | ||||||

Basic Courses | ||||||

Block G1 | ||||||

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

401-0353-00L | Analysis III | O | 4 credits | 2V + 2U | A. Figalli | |

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

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 advances 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-00L | Numerical Methods for CSE | O | 8 credits | 4V + 2U + 1P | R. Alaifari | |

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 | 1. Direct Methods for linear systems of equations 2. Least Squares Techniques 3. Data Interpolation and Fitting 4. Filtering Algorithms 8. Approximation of Functions 9. Numerical Quadrature 10. Iterative Methods for non-linear systems of equations 11. Single Step Methods for ODEs 12. Stiff Integrators | |||||

Lecture notes | Lecture materials (PDF documents and codes) will be made available to the participants through the course web page: https://metaphor.ethz.ch/x/2018/hs/401-0663-00L/ | |||||

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

401-0603-00L | Stochastics (Probability and Statistics) | O | 4 credits | 2V + 1U | M. H. Maathuis | |

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

Objective | Knowledge of the basic principles of probability and statistics. | |||||

Content | Introduction to probability theory, some basic principles from mathematical statistics and basic methods for applied statistics. | |||||

Lecture notes | Lecture notes | |||||

Literature | Lecture notes | |||||

252-0834-00L | Information Systems for Engineers | O | 4 credits | 2V + 1U | G. Fourny | |

Abstract | This course provides the basics of relational databases from the perspective of the user. We will discover why tables are so incredibly powerful to express relations, learn the SQL query language, and how to make the most of it. The course also covers support for data cubes (analytics). After this course, you will be ready for Big Data for Engineers. | |||||

Objective | After visiting this course, you will be capable to: 1. Explain, in the big picture, how a relational database works and what it can do in your own words. 2. Explain the relational data model (tables, rows, attributes, primary keys, foreign keys), formally and informally, including the relational algebra operators (select, project, rename, all kinds of joins, division, cartesian product, union, intersection, etc). 3. Perform non-trivial reading SQL queries on existing relational databases, as well as insert new data, update and delete existing data. 4. Design new schemas to store data in accordance to the real world's constraints, such as relationship cardinality 5. Explain what bad design is and why it matters. 6. Adapt and improve an existing schema to make it more robust against anomalies, thanks to a very good theoretical knowledge of what is called "normal forms". 7. Understand how indices work (hash indices, B-trees), how they are implemented, and how to use them to make queries faster. 8. Access an existing relational database from a host language such as Java, using bridges such as JDBC. 9. Explain what data independence is all about and didn't age a bit since the 1970s. 10. Explain, in the big picture, how a relational database is physically implemented. 11. Know and deal with the natural syntax for relational data, CSV. 12. Explain the data cube model including slicing and dicing. 13. Store data cubes in a relational database. 14. Map cube queries to SQL. 15. Slice and dice cubes in a UI. And of course, you will think that tables are the most wonderful object in the world. | |||||

Content | Using a relational database ================= 1. Introduction 2. The relational model 3. Data definition with SQL 4. The relational algebra 5. Queries with SQL Taking a relational database to the next level ================= 6. Database design theory 7. Databases and host languages 8. Databases and host languages 9. Indices and optimization 10. Database architecture and storage Analytics on top of a relational database ================= 12. Data cubes Outlook ================= 13. Outlook | |||||

Literature | - Lecture material (slides). - Book: "Database Systems: The Complete Book", H. Garcia-Molina, J.D. Ullman, J. Widom (It is not required to buy the book, as the library has it) | |||||

Prerequisites / Notice | For non-CS/DS students only, BSc and MSc Elementary knowledge of set theory and logics Knowledge as well as basic experience with a programming language such as Pascal, C, C++, Java, Haskell, Python |

- Page 1 of 5 All