Suchergebnis: Katalogdaten im Herbstsemester 2021
Informatik Master ![]() | ||||||||||||
![]() | ||||||||||||
![]() ![]() | ||||||||||||
![]() ![]() ![]() | ||||||||||||
Nummer | Titel | Typ | ECTS | Umfang | Dozierende | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
252-1414-00L | System Security ![]() | W | 7 KP | 2V + 2U + 2A | S. Capkun, A. Perrig | |||||||
Kurzbeschreibung | The first part of the lecture covers individual system aspects starting with tamperproof or tamper-resistant hardware in general over operating system related security mechanisms to application software systems, such as host based intrusion detection systems. In the second part, the focus is on system design and methodologies for building secure systems. | |||||||||||
Lernziel | In this lecture, students learn about the security requirements and capabilities that are expected from modern hardware, operating systems, and other software environments. An overview of available technologies, algorithms and standards is given, with which these requirements can be met. | |||||||||||
Inhalt | The first part of the lecture covers individual system's aspects starting with tamperproof or tamperresistant hardware in general over operating system related security mechanisms to application software systems such as host based intrusion detetction systems. The main topics covered are: tamper resistant hardware, CPU support for security, protection mechanisms in the kernel, file system security (permissions / ACLs / network filesystem issues), IPC Security, mechanisms in more modern OS, such as Capabilities and Zones, Libraries and Software tools for security assurance, etc. In the second part, the focus is on system design and methodologies for building secure systems. Topics include: patch management, common software faults (buffer overflows, etc.), writing secure software (design, architecture, QA, testing), compiler-supported security, language-supported security, logging and auditing (BSM audit, dtrace, ...), cryptographic support, and trustworthy computing (TCG, SGX). Along the lectures, model cases will be elaborated and evaluated in the exercises. | |||||||||||
263-2800-00L | Design of Parallel and High-Performance Computing ![]() ![]() Number of participants limited to 125. | W | 9 KP | 3V + 2U + 3A | T. Hoefler, M. Püschel | |||||||
Kurzbeschreibung | Advanced topics in parallel and high-performance computing. | |||||||||||
Lernziel | 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. | |||||||||||
Inhalt | 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. | |||||||||||
Voraussetzungen / Besonderes | 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. | |||||||||||
263-3845-00L | Data Management Systems ![]() | W | 8 KP | 3V + 1U + 3A | G. Alonso | |||||||
Kurzbeschreibung | The course will cover the implementation aspects of data management systems using relational database engines as a starting point to cover the basic concepts of efficient data processing and then expanding those concepts to modern implementations in data centers and the cloud. | |||||||||||
Lernziel | The goal of the course is to convey the fundamental aspects of efficient data management from a systems implementation perspective: storage, access, organization, indexing, consistency, concurrency, transactions, distribution, query compilation vs interpretation, data representations, etc. Using conventional relational engines as a starting point, the course will aim at providing an in depth coverage of the latest technologies used in data centers and the cloud to implement large scale data processing in various forms. | |||||||||||
Inhalt | The course will first cover fundamental concepts in data management: storage, locality, query optimization, declarative interfaces, concurrency control and recovery, buffer managers, management of the memory hierarchy, presenting them in a system independent manner. The course will place an special emphasis on understating these basic principles as they are key to understanding what problems existing systems try to address. It will then proceed to explore their implementation in modern relational engines supporting SQL to then expand the range of systems used in the cloud: key value stores, geo-replication, query as a service, serverless, large scale analytics engines, etc. | |||||||||||
Literatur | The main source of information for the course will be articles and research papers describing the architecture of the systems discussed. The list of papers will be provided at the beginning of the course. | |||||||||||
Voraussetzungen / Besonderes | The course requires to have completed the Data Modeling and Data Bases course at the Bachelor level as it assumes knowledge of databases and SQL. | |||||||||||
Kompetenzen![]() |
| |||||||||||
263-3850-00L | Informal Methods ![]() | W | 5 KP | 2G + 2A | D. Cock | |||||||
Kurzbeschreibung | Formal methods are increasingly a key part of the methodological toolkit of systems programmers - those writing operating systems, databases, and distributed systems. This course is about how to apply concepts, techniques, and principles from formal methods to such software systems, and how to get into the habit of thinking formally about systems design even when writing low-level C code. | |||||||||||
Lernziel | This course is about equipping students whose focus is systems with the insights and conceptual tools provided by formal methods, and thereby enabling them to become better systems programmers. By the end of the course, students should be able to seamlessly integrate basic concepts form formal methods into how they conceive, design, implement, reason about, and debug computer systems. The goal is not to provide a comprehensive introduction to formal methods - this is well covered by other courses in the department. Instead, it is intended to provide students in computer systems (who may or may not have existing background knowledge of formal methods) with a basis for applying formal methods in their work. | |||||||||||
Inhalt | This course does not assume prior knowledge of formal methods, and will start with a quick review of topics such static vs. dynamic reasoning, variants and invariants, program algebra and refinement, etc. However, it is strongly recommended that students have already taken one of the introductory formal methods course at ETH (or equivalents elsewhere) before taking this course - the emphasis is on reinforcing these concepts by applying them, not to teach them from scratch. Instead, the majority of the course will be about how to apply these techniques to actual, practical code in real systems. We will work from real systems code written both by students taking the course, and practical systems developed using formal techniques, in particular the verified seL4 microkernel will be a key case study. We will also focus on informal, pen-and-paper arguments for correctness of programs and systems rather than using theorem provers or automated verification tools; again these latter techniques are well covered in other courses (and recommended as a complement to this one). |
Seite 1 von 1