Suchergebnis: Katalogdaten im Herbstsemester 2019

Informatik Bachelor Information
Basisprüfung
Basisprüfungsblock 1
NummerTitelTypECTSUmfangDozierende
401-0131-00LLineare AlgebraO7 KP4V + 2UM. Einsiedler, O. Sorkine Hornung
KurzbeschreibungEinführung in die lineare Algebra (Vektorräume und lineare Abbildungen, Matrizen), Matrixzerlegungen (LR-, QR-, Eigenwert- und Singulärwert-Zerlegung).
LernzielDie Lernziele sind:
- die fundamentalen Konzepte der linearen Algebra gut zu verstehen und anwenden zu können
- Anwendungen der linearen Algebra kennenzulernen
InhaltLineare Algebra:
Lineare Gleichungssysteme, Vektoren und Matrizen, Normen und Skalarprodukte, LR-Zerlegung, Vektorräume und lineare Abbildungen, Ausgleichsprobleme, QR-Zerlegung, Determinanten, Eigenwerte und Eigenvektoren, Singulärwertzerlegung, Anwendungen.
SkriptSkript "Lineare Algebra" (Gutknecht).
Voraussetzungen / BesonderesDer relevante Schulstoff wird am Anfang kurz wiederholt.
252-0025-01LDiskrete Mathematik Information O7 KP4V + 2UU. Maurer
KurzbeschreibungInhalt: Mathematisches Denken und Beweise, Abstraktion. Mengen, Relationen (z.B. Aequivalenz- und Ordnungsrelationen), Funktionen, (Un-)abzählbarkeit, Zahlentheorie, Algebra (Gruppen, Ringe, Körper, Polynome, Unteralgebren, Morphismen), Logik (Aussagen- und Prädikatenlogik, Beweiskalküle).
LernzielHauptziele der Vorlesung sind (1) die Einführung der wichtigsten Grundbegriffe der diskreten Mathematik, (2) das Verständnis der Rolle von Abstraktion und von Beweisen und (3) die Diskussion einiger Anwendungen, z.B. aus der Kryptographie, Codierungstheorie und Algorithmentheorie.
InhaltSiehe Kurzbeschreibung.
Skriptvorhanden (englisch)
252-0027-00LEinführung in die Programmierung Information O7 KP4V + 2UT. Gross
KurzbeschreibungEinführung in grundlegende Konzepte der modernen Programmierung. Vermittlung der Fähigkeit, Programme von höchster Qualität zu entwickeln. Einführung in Prinzipien des Software Engineering mit objekt-orientiertem Ansatz.
LernzielViele Menschen können Programme schreiben. Die Ziele der Vorlesung "Einführung in die Programmierung" gehen aber darüber hinaus: sie lehrt die fundamentalen Konzepte und Fertigkeiten, die nötig sind, um professionelle Programme zu erstellen. Nach erfolgreichem Abschluss der Vorlesung beherrschen Studenten die fundamentalen Kontrollstrukturen, Datenstrukturen, die Verfahren zur Problemlösung und Mechanismen von Programmiersprachen, die die moderne Programmierung auszeichnen. Sie kennen die Grundregeln für die Produktion von Software in hoher Qualität. Sie haben die nötigen Vorkenntnisse für weiterführende Vorlesungen, die das Programmieren in spezialisierten Anwendungsgebieten vorstellen.
InhaltGrundlagen der objekt-orientierten Programmierung. Objekte und Klassen. Vor- und Nachbedingungen, Invarianten, Design by Contract. Elementare Kontrollstrukturen. Zuweisungen und Referenzierung. Elementare Datenstrukturen und Algorithmen. Rekursion. Vererbung und Interfaces, Grundkonzepte aus Software Engineering wie dem Softwareprozess, Spezifikation und Dokumentation, Debugging, Reuse und Quality Assurance.
SkriptDie Vorlesungsfolien werden auf der Vorlesungswebseite zum Download zur Verfügung gestellt.
LiteraturWeitere Literaturangaben auf der Web Seite der Vorlesung.
Voraussetzungen / BesonderesDie Vorlesung hat keine besonderen Voraussetzungen. Sie erwartet das gleichzeitige Belegen der anderen Informatik Vorlesungen des Basisjahres.
252-0026-00LAlgorithmen und Datenstrukturen Information Belegung eingeschränkt - Details anzeigen O7 KP3V + 2U + 1AM. Püschel, D. Steurer
KurzbeschreibungEs werden grundlegende Entwurfsmuster für Algorithmen sowie klassische algorithmische Probleme und Datenstrukturen behandelt. Das Zusammenspiel von Algorithmen und Datenstrukturen wird anhand von Geometrie- und Graphenproblemen illustriert. In die Graphentheorie wird kurz eingeführt.
LernzielVerständnis des Entwurfs und der Analyse grundlegender Algorithmen und Datenstrukturen.
InhaltEs werden grundlegende Algorithmen und Datenstrukturen vorgestellt und analysiert. Dazu gehören auf der einen Seite Entwurfsmuster für Algorithmen, wie Induktion, divide-and-conquer, backtracking und dynamische Optimierung, ebenso wie klassische algorithmische Probleme, wie Suchen und Sortieren. Auf der anderen Seite werden Datenstrukturen für verschiedene Zwecke behandelt, darunter verkettete Listen, Hashtabellen, balancierte Suchbäume, verschiedene heaps und union-find-Strukturen. Weiterhin wird Adaptivität bei Datenstrukturen (wie etwa Splay-Bäume) und bei Algorithmen (wie etwa online-Algorithmen) beleuchtet. Das Zusammenspiel von Algorithmen und Datenstrukturen wird anhand von Geometrie- und Graphenproblemen illustriert. Hierfür werden grundlegende Konzepte der Graphentheorie eingeführt.
LiteraturTh. Ottmann, P. Widmayer: Algorithmen und Datenstrukturen, Spektrum-Verlag, 5. Auflage, Heidelberg, Berlin, Oxford, 2011
Basisprüfungsblock 2
Die Fächer des Blocks 2 werden im Frühjahrsemester angeboten.
Grundlagenfächer
NummerTitelTypECTSUmfangDozierende
252-0057-00LTheoretische Informatik Information O7 KP4V + 2UJ. Hromkovic, H.‑J. Böckenhauer
KurzbeschreibungKonzepte zur Beantwortung grundlegender Fragen wie: a) Was ist völlig automatisiert machbar (algorithmisch lösbar) b) Wie kann man die Schwierigkeit von Aufgaben (Problemen) messen? c) Was ist Zufall und wie kann er nützlich sein? d) Was ist Nichtdeterminisus und welche Rolle spielt er in der Informatik? e) Wie kann man unendliche Objekte durch Automaten und Grammatiken endlich darstellen?
LernzielVermittlung der grundlegenden Konzepte der Informatik in ihrer geschichtlichen Entwicklung
InhaltDie Veranstaltung ist eine Einführung in die Theoretische Informatik, die die grundlegenden Konzepte und Methoden der Informatik in ihrem geschichtlichen Zusammenhang vorstellt. Wir präsentieren Informatik als eine interdisziplinäre Wissenschaft, die auf einer Seite die Grenzen zwischen Möglichem und Unmöglichem und die quantitativen Gesetze der Informationsverarbeitung erforscht und auf der anderen Seite Systeme entwirft, analysiert, verifiziert und implementiert.

Die Hauptthemen der Vorlesung sind:

- Alphabete, Wörter, Sprachen, Messung der Informationsgehalte von Wörtern, Darstellung von algorithmischen Aufgaben
- endliche Automaten, reguläre und kontextfreie Grammatiken
- Turingmaschinen und Berechenbarkeit
- Komplexitätstheorie und NP-Vollständigkeit
- Algorithmenentwurf für schwere Probleme
SkriptDie Vorlesung ist detailliert durch das Lehrbuch "Theoretische Informatik" bedeckt.
LiteraturBasisliteratur:
1. J. Hromkovic: Theoretische Informatik. 5. Auflage, Springer Vieweg 2014.

2. J. Hromkovic: Theoretical Computer Science. Springer 2004.

Weiterführende Literatur:
3. M. Sipser: Introduction to the Theory of Computation, PWS Publ. Comp.1997
4. J.E. Hopcroft, R. Motwani, J.D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie.
Pearson 2002.
5. I. Wegener: Theoretische Informatik. Teubner
Weitere Übungen und Beispiele:
6. A. Asteroth, Ch. Baier: Theoretische Informatik
Voraussetzungen / BesonderesWährend des Semesters werden zwei freiwillige Probeklausuren gestellt.
252-0061-00LSystems Programming and Computer Architecture Information O7 KP4V + 2UT. Roscoe
KurzbeschreibungIntroduction 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.
LernzielThe 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.
InhaltThis 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).
Skript- 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
LiteraturThe course is based in part on "Computer Systems: A Programmer's Perspective" (3rd Edition) by R. Bryant and D. O'Hallaron, with additional material.
Voraussetzungen / Besonderes252-0029-00L Parallel Programming
252-0028-00L Design of Digital Circuits
401-0213-16LAnalysis II Information O5 KP2V + 2UE. Kowalski
KurzbeschreibungDifferential and Integral calculus in many variables, vector analysis.
LernzielDifferential and Integral calculus in many variables, vector analysis.
InhaltDifferential and Integral calculus in many variables, vector analysis.
LiteraturFür allgemeine Informationen, sehen Sie bitte die Webseite der Vorlesung: https://metaphor.ethz.ch/x/2017/hs/401-0213-16L/
401-0663-00LNumerical Methods for CSEO8 KP4V + 2U + 1PR. Hiptmair
KurzbeschreibungThe 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++.
Lernziel* 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
Inhalt* 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
SkriptLecture 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.
LiteraturU. 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
Voraussetzungen / BesonderesThe 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.
Kernfächer
Vertiefung Information and Data Processing
NummerTitelTypECTSUmfangDozierende
252-0206-00LVisual Computing Information O8 KP4V + 3UM. Pollefeys, S. Coros
KurzbeschreibungThis course acquaints students with core knowledge in computer graphics, image processing, multimedia and computer vision. Topics include: Graphics pipeline, perception and camera models, transformation, shading, global illumination, texturing, sampling, filtering, image representations, image and video compression, edge detection and optical flow.
LernzielThis course provides an in-depth introduction to the core concepts of computer graphics, image processing, multimedia and computer vision. The course forms a basis for the specialization track Visual Computing of the CS master program at ETH.
InhaltCourse topics will include: Graphics pipeline, perception and color models, camera models, transformations and projection, projections, lighting, shading, global illumination, texturing, sampling theorem, Fourier transforms, image representations, convolution, linear filtering, diffusion, nonlinear filtering, edge detection, optical flow, image and video compression.

In theoretical and practical homework assignments students will learn to apply and implement the presented concepts and algorithms.
SkriptA scriptum will be handed out for a part of the course. Copies of the slides will be available for download. We will also provide a detailed list of references and textbooks.
LiteraturMarkus Gross: Computer Graphics, scriptum, 1994-2005
Vertiefung Theoretical Computer Science
NummerTitelTypECTSUmfangDozierende
252-0209-00LAlgorithms, Probability, and Computing Information O8 KP4V + 2U + 1AA. Steger, B. Gärtner, M. Ghaffari, D. Steurer
KurzbeschreibungAdvanced design and analysis methods for algorithms and data structures: Random(ized) Search Trees, Point Location, Minimum Cut, Linear Programming, Randomized Algebraic Algorithms (matchings), Probabilistically Checkable Proofs (introduction).
LernzielStudying and understanding of fundamental advanced concepts in algorithms, data structures and complexity theory.
SkriptWill be handed out.
LiteraturIntroduction to Algorithms by T. H. Cormen, C. E. Leiserson, R. L. Rivest;
Randomized Algorithms by R. Motwani und P. Raghavan;
Computational Geometry - Algorithms and Applications by M. de Berg, M. van Kreveld, M. Overmars, O. Schwarzkopf.
Vertiefung Systems and Software Engineering
NummerTitelTypECTSUmfangDozierende
252-0210-00LCompiler DesignO8 KP4V + 3UZ. Su
KurzbeschreibungThis course uses compilers as examples to expose students to modern software development techniques. Tentative topics include: compiler organization; lexical analysis; top-down and bottom-up parsing; symbol tables; semantic analysis; code generation; local and global optimization; register allocation; automatic memory management.
LernzielLearn principles of compiler design; gain practical experience designing and implementing a medium-scale software system.
InhaltThis course uses compilers as example to expose modern software development techniques. The course introduces the students to the fundamentals of compiler construction. Students will implement a simple yet complete compiler for an object-oriented programming language for a realistic target machine. Students will learn the use of appropriate tools. Throughout the course, students learn to apply their knowledge of theory (automata, grammars, stack machines, program transformation) and well-known programming techniques (module definitions, design patterns, frameworks, software reuse) in a software project.

A tentative list of topics: compiler organization; lexical analysis; top-down and bottom-up parsing; symbol tables; semantic analysis; code generation; local and global optimization; register allocation; automatic memory management; optional advanced topics if/when time permits.
LiteraturAho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition)

Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997
Voraussetzungen / BesonderesPrerequisites:
Prior exposure to modern techniques for program construction, knowledge of at least one processor architecture at the assembly language level.
252-0217-00LComputer Systems Information O8 KP4V + 2U + 1AT. Roscoe, R. Wattenhofer
KurzbeschreibungThis course is about real computer systems, and the principles on which they are designed and built. We cover both modern OSes and the large-scale distributed systems that power today's online services. We illustrate the ideas with real-world examples, but emphasize common theoretical results, practical tradeoffs, and design principles that apply across many different scales and technologies.
LernzielThe objective of the course is for students to understand the theoretical principles, practical considerations, performance tradeoffs, and engineering techniques on which the software underpinning almost all modern computer systems is based, ranging from single embedded systems-on-chip in mobile phones to large-scale geo-replicated groups of datacenters.

By the end of the course, students should be able to reason about highly complex, real, operational software systems, applying concepts such as hierarchy, modularity, consistency, durability, availability, fault-tolerance, and replication.
InhaltThis course subsumes the topics of both "operating systems" and "distributed systems" into a single coherent picture (reflecting the reality that these disciplines are highly converged). The focus is system software: the foundations of modern computer systems from mobile phones to the large-scale geo-replicated data centers on which Internet companies like Amazon, Facebook, Google, and Microsoft are based.

We will cover a range of topics, such as: scheduling, network protocol stacks, multiplexing and demultiplexing, operating system structure, inter-process communication, memory managment, file systems, naming, dataflow, data storage, persistence, and durability, computer systems performance, remove procedure call, consensus and agreement, fault tolerance, physical and logical clocks, virtualization, and blockchains.

The format of the course is a set of about 25 topics, each covered in a lecture. A script will be published online ahead of each lecture, and the latter will consist of an interactive elaboration of the material in the script. There is no book for the course, but we will refer to books and research papers throughout to provide additional background and explanation.
Voraussetzungen / BesonderesWe will assume knowlege of the "Systems Programming" and "Computer Networks" courses (or equivalent), and their prerequisites, and build upon them.
Wahlfächer
Es können auch Lehrveranstaltungen aus dem Master-Studiengang in Informatik gewählt werden. Es liegt in der Verantwortung der Studierenden, sicherzustellen, dass sie die Voraussetzungen für diese Lehrveranstaltungen erfüllen.
NummerTitelTypECTSUmfangDozierende
252-0341-01LInformation Retrieval Information W4 KP2V + 1UG. Fourny
KurzbeschreibungThis course gives an introduction to information retrieval with a focus on text documents and unstructured data.

Main topics comprise document modelling, various retrieval techniques, indexing techniques, query frameworks, optimization, evaluation and feedback.
LernzielWe keep accumulating data at an unprecedented pace, much faster than we can process it. While Big Data techniques contribute solutions accounting for structured or semi-structured shapes such as tables, trees, graphs and cubes, the study of unstructured data is a field of its own: Information Retrieval.

After this course, you will have in-depth understanding of broadly established techniques in order to model, index and query unstructured data (aka, text), including the vector space model, boolean queries, terms, posting lists, dealing with errors and imprecision.

You will know how to make queries faster and how to make queries work on very large datasets. You will be capable of evaluating the quality of an information retrieval engine.

Finally, you will also have knowledge about alternate models (structured data, probabilistic retrieval, language models) as well as basic search algorithms on the web such as Google's PageRank.
Inhalt1. Introduction

2. Boolean retrieval: the basics of how to index and query unstructured data.

3. Term vocabulary: pre-processing the data prior to indexing: building the term vocabulary, posting lists.

4. Tolerant retrieval: dealing with spelling errors: tolerant retrieval.

5. Index construction: scaling up to large datasets.

6. Index compression: how to improve performance by compressing the index in various ways.

7. Ranked retrieval: how to ranking results with scores and the vector space model

8. Scoring in a bigger picture: taking ranked retrieval to the next level with various improvements, including inexact retrieval

9. Probabilistic information retrieval: how to leverage Bayesian techniques to build an alternate, probabilistic model for information retrieval

10. Language models: another alternate model based on languages, automata and document generation

11. Evaluation: precision, recall and various other measurements of quality

12. Web search: PageRank

13. Wrap-up.

The lecture structure will follow the pedagogical approach of the book (see material).

The field of information retrieval also encompasses machine learning aspects. However, we will make a conscious effort to limit overlaps, and be complementary with, the Introduction to Machine Learning lecture.
LiteraturC. D. Manning, P. Raghavan, H. Schütze, Introduction to Information Retrieval, Cambridge University Press.
Voraussetzungen / BesonderesPrior knowledge in elementary set theory, logics, linear algebra, data structures, abstract data types, algorithms, and probability theory (at the Bachelor's level) is required, as well as programming skills (we will use Python).
252-3110-00LHuman Computer Interaction Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 150.
W6 KP2V + 1U + 2AO. Hilliges, C. Holz
KurzbeschreibungThe course provides an introduction to the field of human-computer interaction, emphasising the central role of the user in system design. Through detailed case studies, students will be introduced to different methods used to analyse the user experience and shown how these can inform the design of new interfaces, systems and technologies.
LernzielThe goal of the course is that students should understand the principles of user-centred design and be able to apply these in practice.
InhaltThe course will introduce students to various methods of analysing the user experience, showing how these can be used at different stages of system development from requirements analysis through to usability testing. Students will get experience of designing and carrying out user studies as well as analysing results. The course will also cover the basic principles of interaction design. Practical exercises related to touch and gesture-based interaction will be used to reinforce the concepts introduced in the lecture. To get students to further think beyond traditional system design, we will discuss issues related to ambient information and awareness.
151-0107-20LHigh Performance Computing for Science and Engineering (HPCSE) IW4 KP4GP. Koumoutsakos
KurzbeschreibungThis 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.
LernzielWith 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.
Inhalt1. 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
Skripthttps://www.cse-lab.ethz.ch/teaching/hpcse-i_hs19/
Class notes, handouts
Literatur• 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
Voraussetzungen / BesonderesStudents 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.
227-0124-00LEmbedded Systems Information W6 KP4GJ. Beutel
KurzbeschreibungAn embedded system is some combination of computer hardware and software, either fixed in capability or programmable, that is designed for a specific function or for specific functions within a larger system. The course covers theoretical and practical aspects of embedded system design and includes a series of lab sessions.
LernzielUnderstanding specific requirements and problems arising in embedded system applications.

Understanding architectures and components, their hardware-software interfaces, the memory architecture, communication between components, embedded operating systems, real-time scheduling theory, shared resources, low-power and low-energy design as well as hardware architecture synthesis.

Using the formal models and methods in embedded system design in practical applications using the programming language C, the operating system FreeRTOS, a commercial embedded system platform and the associated design environment.
InhaltAn embedded system is some combination of computer hardware and software, either fixed in capability or programmable, that is designed for a specific function or for specific functions within a larger system. For example, they are part of industrial machines, agricultural and process industry devices, automobiles, medical equipment, cameras, household appliances, airplanes, sensor networks, internet-of-things, as well as mobile devices.

The focus of this lecture is on the design of embedded systems using formal models and methods as well as computer-based synthesis methods. Besides, the lecture is complemented by laboratory sessions where students learn to program in C, to base their design on the embedded operating systems FreeRTOS, to use a commercial embedded system platform including sensors, and to edit/debug via an integrated development environment.

Specifically the following topics will be covered in the course: Embedded system architectures and components, hardware-software interfaces and memory architecture, software design methodology, communication, embedded operating systems, real-time scheduling, shared resources, low-power and low-energy design, hardware architecture synthesis.

More information is available at https://www.tec.ee.ethz.ch/education/lectures/embedded-systems.html .
SkriptThe following information will be available: Lecture material, publications, exercise sheets and laboratory documentation at https://www.tec.ee.ethz.ch/education/lectures/embedded-systems.html .
LiteraturP. Marwedel: Embedded System Design, Springer, ISBN 978-3-319-56045-8, 2018.

G.C. Buttazzo: Hard Real-Time Computing Systems. Springer Verlag, ISBN 978-1-4614-0676-1, 2011.

Edward A. Lee and Sanjit A. Seshia: Introduction to Embedded Systems, A Cyber-Physical Systems Approach, Second Edition, MIT Press, ISBN 978-0-262-53381-2, 2017.

M. Wolf: Computers as Components – Principles of Embedded System Design. Morgan Kaufman Publishers, ISBN 978-0-128-05387-4, 2016.
Voraussetzungen / BesonderesPrerequisites: Basic knowledge in computer architectures and programming.
227-0627-00LAngewandte Computer ArchitekturW6 KP4GA. Gunzinger
KurzbeschreibungDiese Vorlesung gibt einen Überblick über die Anforderungen und die Architektur von parallelen Computersystemen unter Berücksichtigung von Rechenleistung, Zuverlässigkeit und Kosten.
LernzielArbeitsweise von parallelen Computersystemen verstehen, solche Systeme entwerfen und modellieren.
InhaltDie Vorlesung Angewandte Computer Architektur gibt technische und unternehmerische Einblicke in innovative Computersysteme/Architekturen (CPU, GPU, FPGA, Spezialprozessoren) und deren praxisnahe Umsetzung. Dabei werden oft die Grenzen der technologischen Möglichkeiten ausgereizt.
Wie ist das Computersystem aufgebaut, das die über 1000 Magneten an der Swiss Light Source (SLS) steuert?
Wie ist das hochverfügbare Alarmzentrum der SBB aufgebaut?
Welche Computer Architekturen werden in Fahrerassistenzsystemen verwendet?
Welche Computerarchitektur versteckt sich hinter einem professionellen digitalen Audio Mischpult?
Wie können Datenmengen von 30 TB/s, wie sie bei einem Protonen-Beschleuniger entstehen, in Echtzeit verarbeitet werden?
Kann die aufwändige Berechnung der Wettervorhersage auch mit GPUs erfolgen?
Nach welcher Systematik können optimale Computerarchitekturen gefunden werden?
Welche Faktoren sind entscheidend, um solche Projekte erfolgreich umzusetzen?
SkriptSkript und Übungsblätter.
Voraussetzungen / BesonderesVoraussetzungen:
Grundlagen der Computerarchitektur.
227-1037-00LIntroduction to Neuroinformatics Information W6 KP2V + 1UV. Mante, M. Cook, B. Grewe, G. Indiveri, D. Kiper, W. von der Behrens
KurzbeschreibungThe course provides an introduction to the functional properties of neurons. Particularly the description of membrane electrical properties (action potentials, channels), neuronal anatomy, synaptic structures, and neuronal networks. Simple models of computation, learning, and behavior will be explained. Some artificial systems (robot, chip) are presented.
LernzielUnderstanding computation by neurons and neuronal circuits is one of the great challenges of science. Many different disciplines can contribute their tools and concepts to solving mysteries of neural computation. The goal of this introductory course is to introduce the monocultures of physics, maths, computer science, engineering, biology, psychology, and even philosophy and history, to discover the enchantments and challenges that we all face in taking on this major 21st century problem and how each discipline can contribute to discovering solutions.
InhaltThis course considers the structure and function of biological neural networks at different levels. The function of neural networks lies fundamentally in their wiring and in the electro-chemical properties of nerve cell membranes. Thus, the biological structure of the nerve cell needs to be understood if biologically-realistic models are to be constructed. These simpler models are used to estimate the electrical current flow through dendritic cables and explore how a more complex geometry of neurons influences this current flow. The active properties of nerves are studied to understand both sensory transduction and the generation and transmission of nerve impulses along axons. The concept of local neuronal circuits arises in the context of the rules governing the formation of nerve connections and topographic projections within the nervous system. Communication between neurons in the network can be thought of as information flow across synapses, which can be modified by experience. We need an understanding of the action of inhibitory and excitatory neurotransmitters and neuromodulators, so that the dynamics and logic of synapses can be interpreted. Finally, the neural architectures of feedforward and recurrent networks will be discussed in the context of co-ordination, control, and integration of sensory and motor information in neural networks.
Seminar
Um das vorhandene Angebot optimal auszunutzen, behält sich das D-INFK vor, Belegungen von Studierenden zu löschen, die sich in mehreren Veranstaltungen dieser Kategorie eingeschrieben haben, bereits die erforderlichen Leistungen in dieser Kategorie erbracht haben oder aus anderen organisatorischen Gründen nicht auf die Belegung der Veranstaltung angewiesen sind.

Es kann auch ein Seminar aus dem Master in Informatik gewählt werden. Es liegt in der Verantwortung der Studierenden, sicherzustellen, dass sie die Voraussetzungen für diese Lehrveranstaltung erfüllen.
NummerTitelTypECTSUmfangDozierende
252-2600-05LSoftware Engineering Seminar Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 22.

The deadline for deregistering expires at the end of the second week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar.
W2 KP2SM. Schwerhoff, P. Tsankov
KurzbeschreibungThe course is an introduction to research in software engineering, based on reading and presenting high quality research papers in the field. The instructor may choose a variety of topics or one topic that is explored through several papers.
LernzielThe main goals of this seminar are 1) learning how to read and understand a recent research paper in computer science; and 2) learning how to present a technical topic in computer science to an audience of peers.
InhaltThe technical content of this course falls into the general area of software engineering but will vary from semester to semester.
252-4811-00LMachine Learning Seminar Information Belegung eingeschränkt - Details anzeigen
Number of participants limited to 24.

The deadline for deregistering expires at the end of the second week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar.
W2 KP2ST. Hofmann, G. Rätsch
KurzbeschreibungSeminal and recent papers in machine learning are presented and discussed.
LernzielThe seminar familiarizes students with advanced and recent ideas in machine learning. Original articles have to be presented, contexctualized, and critically reviewed. The students will learn how to structure a scientific presentation in English which covers the key ideas of a scientific paper.
InhaltThe seminar will cover a number of recent papers which have emerged as important contributions in the machine learning research community. The topics will vary from year to year but they are centered on methodological issues in machine learning like new learning algorithms, ensemble methods or new statistical models for machine learning applications.
LiteraturThe papers will be presented and allocated in the first session of the seminar.
Voraussetzungen / BesonderesBasic knowledge of machine learning as taught in undergraduate courses such as "252-0220-00 Introduction to Machine Learning" are required.
  •  Seite  1  von  5 Nächste Seite Letzte Seite     Alle