Search result: Catalogue data in Autumn Semester 2020

Computer Science Master Information
Master Studies (Programme Regulations 2009)
Focus Courses
Focus Courses in Distributed Systems
Focus Core Courses Distributed Systems
NumberTitleTypeECTSHoursLecturers
252-1414-00LSystem Security Information W7 credits2V + 2U + 2AS. Capkun, A. Perrig
AbstractThe 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.
ObjectiveIn 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.
ContentThe 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-3845-00LData Management Systems Information W8 credits3V + 1U + 3AG. Alonso
AbstractThe 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.
ObjectiveThe 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.
ContentThe 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.
LiteratureThe 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.
Focus Elective Courses Distributed Systems
NumberTitleTypeECTSHoursLecturers
252-0817-00LDistributed Systems Laboratory
This only applies to Study Regulations 09: In the Master Programme max.10 credits can be accounted by Labs on top of the Interfocus Courses. These Labs will only count towards the Master Programme. Additional Labs will be listed on the Addendum.
W10 credits9PG. Alonso, T. Hoefler, A. Klimovic, T. Roscoe, A. Singla, R. Wattenhofer, C. Zhang
AbstractThis course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including wireless networks, ad-hoc networks, RFID, and distributed applications on smartphones.
ObjectiveGain hands-on-experience with real products and the latest technology in distributed systems.
ContentThis course involves the participation in a substantial development and/or evaluation project involving distributed systems technology. There are projects available in a wide range of areas: from web services to ubiquitous computing including as well wireless networks, ad-hoc networks, and distributed application on smartphones. The goal of the project is for the students to gain hands-on-experience with real products and the latest technology in distributed systems. There is no lecture associated to the course.
227-2210-00LComputer Architecture Information W8 credits6G + 1AO. Mutlu
AbstractComputer architecture is the science & art of designing and optimizing hardware components and the hardware/software interface to create a computer that meets design goals. This course covers basic components of a modern computing system (processors, memory, interconnects, accelerators). The course takes a hardware/software cooperative approach to understanding and designing computing systems.
ObjectiveWe will learn the fundamental concepts of the different parts of modern computing systems, as well as the latest trends by exploring the recent research in Industry and Academia. We will extensively cover memory technologies (including DRAM and new Non-Volatile Memory technologies), memory scheduling, parallel computing systems (including multicore processors and GPUs), heterogeneous computing, processing-in-memory, interconnection networks, specialized systems for major data-intensive workloads (e.g. graph processing, bioinformatics, machine learning), etc.
ContentThe principles presented in the lecture are reinforced in the laboratory through 1) the design and implementation of a cycle-accurate simulator, where we will explore different components of a modern computing system (e.g., pipeline, memory hierarchy, branch prediction, prefetching, caches, multithreading), and 2) the extension of state-of-the-art research simulators (e.g., Ramulator) for more in-depth understanding of specific system components (e.g., memory scheduling, prefetching).
Lecture notesAll the materials (including lecture slides) will be provided on the course website: Link
The video recordings of the lectures are expected to be made available after lectures.
LiteratureWe will provide required and recommended readings in every lecture. They will mainly consist of research papers presented in major Computer Architecture and related conferences and journals.
Prerequisites / NoticeDigital Design and Computer Architecture.
263-3850-00LInformal Methods Information W5 credits2G + 2AD. Cock
AbstractFormal 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.
ObjectiveThis 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.
ContentThis 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).
Seminar in Distributed Systems
NumberTitleTypeECTSHoursLecturers
263-3504-00LHardware Acceleration for Data Processing Information
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 credits2SG. Alonso, A. Klimovic, C. Zhang
AbstractThe seminar will cover topics related to data processing using new hardware in general and hardware accelerators (GPU, FPGA, specialized processors) in particular.
ObjectiveThe seminar will cover topics related to data processing using new hardware in general and hardware accelerators (GPU, FPGA, specialized processors) in particular.
ContentThe general application areas are big data and machine learning. The systems covered will include systems from computer architecture, high performance computing, data appliances, and data centers.
Prerequisites / NoticeStudents taking this seminar should have the necessary background in systems and low level programming.
263-3900-01LCommunication Networks Seminar Information Restricted registration - show details
Number of participants limited to 20.

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 credits2SA. Singla, L. Vanbever
AbstractWe explore recent advances in networking by reading high quality research papers, and discussing open research opportunities, most of which are suitable for students to later take up as thesis or semester projects.
ObjectiveThe objectives are (a) to understand the state-of-the-art in the field; (b) to learn to read, present and critique papers; (c) to engage in discussion and debate about research questions; and (d) to identify opportunities for new research.

Students are expected to attend the entire seminar, choose a topic for presentation from a given list, make a presentation on that topic, and lead the discussion. Further, for each reading, every student needs to submit a review before the in-class discussion. Students are evaluated on their submitted reviews, their presentation and discussion leadership, and participation in seminar discussions.
LiteratureA program will be posted here: Link, comprising of a list of papers the seminar group will cover.
Prerequisites / NoticeAn undergraduate-level understanding of networking, such that the student is familiar with concepts like reliable transport protocols (like TCP) and basics of Internet routing. ETH courses that fulfill this requirement: Computer Networks (252-0064-00L) and Communication Networks (227-0120-00L). Similar courses at other universities are also sufficient.
  •  Page  1  of  1