Search result: Catalogue data in Autumn Semester 2020
|Electrical Engineering and Information Technology Master|
|Master Studies (Programme Regulations 2008)|
| Major Courses|
A total of 42 CP must be achieved during the Master Programme. The individual study plan is subject to the tutor's approval.
|Computers and Networks|
| Core Subjects|
These core subjects are particularly recommended for the field of "Computers and Networks".
|227-0575-00L||Advanced Topics in Communication Networks (Autumn 2020)||W||6 credits||2V + 2U||L. Vanbever|
|Abstract||This course covers advanced topics and technologies in computer networks, both theoretically and practically. It is offered each Fall semester, with rotating topics. Repetition for credit is possible with consent of the instructor. In the Fall 2020, the course will cover advanced topics in Internet routing and forwarding.|
|Objective||The goals of this course is to provide students with a deeper understanding of the existing and upcoming Internet routing and forwarding technologies used in large-scale computer networks such as Internet Service Providers (e.g., Swisscom or Deutsche Telekom), Content Delivery Networks (e.g., Netflix) and Data Centers (e.g., Google). Besides covering the fundamentals, the course will be “hands-on” and will enable students to play with the technologies in realistic network environments, and even implement some of them on their own during labs and a final group project.|
|Content||The course will cover advanced topics in Internet routing and forwarding such as:|
- Hierarchical routing
- Traffic Engineering and Load Balancing
- Virtual Private Networks
- Quality of Service/Queuing/Scheduling
- IP Multicast
- Fast Convergence
- Network virtualization
- Network programmability (OpenFlow, P4)
- Network measurements
The course will be divided in two main blocks. The first block (~10 weeks) will interleave classical lectures with practical exercises and labs. The second block (~4 weeks) will consist of a practical project which will be performed in small groups (~3 students). During the second block, lecture slots will be replaced by feedback sessions where students will be able to ask questions and get feedback about their project. The last week of the semester will be dedicated to student presentations and demonstrations.
|Lecture notes||Lecture notes and material will be made available before each course on the course website.|
|Literature||Relevant references will be made available through the course website.|
|Prerequisites / Notice||Prerequisites: Communication Networks (227-0120-00L) or equivalents / good programming skills (in any language) are expected as both the exercices and the final project will involve coding.|
|227-0579-00L||Hardware Security||W||6 credits||4G||K. Razavi|
|Abstract||This course covers the security of commodity computer hardware (e.g., CPU, DRAM, etc.) with a special focus on cutting-edge hands-on research. The aim of the course is familiarizing the students with hardware security and more specifically microarchitectural and circuit-level attacks and defenses through lectures, reviewing and discussing papers, and executing some of these advanced attacks.|
|Objective||By the end of the course, the students will be familiar with the state of the art in commodity computer hardware attacks and defenses. More specifically, the students will learn about:|
- security problems of commodity hardware that we use everyday and how you can defend against them.
- relevant computer architecture and operating system aspects of these issues.
- hands-on techniques for performing hardware attacks.
- writing critical reviews and constructive discussions with peers on this topic.
This is the course where you get credit points by building some of the most advanced exploits on the planet! The luckiest team will collect a Best Demo Award at the end of the course.
|Literature||Slides, relevant literature and manuals will be made available during the course.|
|Prerequisites / Notice||Knowledge of systems programming and computer architecture is a plus.|
|227-0781-00L||Low-Power System Design|
Does not take place this semester.
|W||6 credits||2V + 2U|
|Abstract||Introduction to low-power and low-energy design techniques from a systems perspective including aspects both from hard- and software. The focus of this lecture is on cutting across a number of related fields discussing architectural concepts, modeling and measurement techniques as well as software design mainly using the example of networked embedded systems.|
|Objective||Knowledge of the state-of-the-art in low power system design, understanding recent research results and their implication on industrial products.|
|Content||Designing systems with a low energy footprint is an increasingly important. There are many applications for low-power systems ranging from mobile devices powered from batteries such as today's smart phones to energy efficient household appliances and datacenters. Key drivers are to be found mainly in the tremendous increase of mobile devices and the growing integration density requiring to carefully reason about power, both from a provision and consumption viewpoint. Traditional circuit design classes introduce low-power solely from a hardware perspective with a focus on the power performance of a single or at most a hand full of circuit elements. Similarly, low-power aspects are touched in a multitude of other classes, mostly as a side topic. However in successfully designing systems with a low energy footprint it is not sufficient to only look at low-power as an aspect of second class. In modern low-power system design advanced CMOS circuits are of course a key ingredient but successful low-power integration involves many more disciplines such as system architecture, different sources of energy as well as storage and most importantly software and algorithms. In this lecture we will discuss aspects of low-power design as a first class citizen introducing key concepts as well as modeling and measurement techniques focusing mainly on the design of networked embedded systems but of course equally applicable to many other classes of systems. The lecture is further accompanied by a reading seminar as well as exercises and lab sessions.|
|Lecture notes||Exercise and lab materials, copies of lecture slides.|
|Literature||A detailed reading list will be made available in the lecture.|
|Prerequisites / Notice||Knowledge in embedded systems, system software, (wireless) networking, possibly integrated circuits, and hardware software codesign.|
|227-2210-00L||Computer Architecture||W||8 credits||6G + 1A||O. Mutlu|
|Abstract||Computer 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.|
|Objective||We 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.|
|Content||The 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 notes||All the materials (including lecture slides) will be provided on the course website: https://safari.ethz.ch/architecture/|
The video recordings of the lectures are expected to be made available after lectures.
|Literature||We 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 / Notice||Digital Design and Computer Architecture.|
|252-1414-00L||System Security||W||7 credits||2V + 2U + 2A||S. Capkun, A. Perrig|
|Abstract||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.|
|Objective||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.|
|Content||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-4640-00L||Network Security||W||8 credits||2V + 2U + 3A||A. Perrig, S. Frei, M. Legner|
|Abstract||Some of today's most damaging attacks on computer systems involve|
exploitation of network infrastructure, either as the target of attack
or as a vehicle to attack end systems. This course provides an
in-depth study of network attack techniques and methods to defend
|Objective||- Students are familiar with fundamental network security concepts.|
- Students can assess current threats that Internet services and networked devices face, and can evaluate appropriate countermeasures.
- Students can identify and assess known vulnerabilities in a software system that is connected to the Internet (through analysis and penetration testing tools).
- Students have an in-depth understanding of a range of important security technologies.
- Students learn how formal analysis techniques can help in the design of secure networked systems.
|Content||The course will cover topics spanning five broad themes: (1) network|
defense mechanisms such as secure routing protocols, TLS, anonymous
communication systems, network intrusion detection systems, and
public-key infrastructures; (2) network attacks such as denial of
service (DoS) and distributed denial-of-service (DDoS) attacks; (3)
analysis and inference topics such as network forensics and attack
economics; (4) formal analysis techniques for verifying the security
properties of network architectures; and (5) new technologies related
to next-generation networks.
|Prerequisites / Notice||This lecture is intended for students with an interest in securing|
Internet communication services and network devices. Students are
assumed to have knowledge in networking as taught in a Communication
Networks lecture. The course will involve a course project and some
smaller programming projects as part of the homework. Students are
expected to have basic knowledge in network programming in a
programming language such as C/C++, Go, or Python.
- Page 1 of 1