Distributed Computing Group Distributed Computing Group
ETH Zurich Distributed Computing Group
ETH ZurichITETTIKDistributed Computing Group LecturesTi2

HOME
MEMBERS  
PUBLICATIONS  
COURSES  
THESES  
WIKI  
CONTACT  
     
SOFTWARE & APPS  
benG  
BitThief  
Conference Search  
DiscoMark  
jukefox  
Kännsch  
Smart Cloud Storage  
Newspaper 2.0  
Sinalgo  
sound mate  
TinyOS IDE  
     
SPIN-OFFs  
BitSplitters  
     
FORMER  
Spamato  
StreamForge  
Wuala  

Computer Engineering 2 (Technische Informatik 2) (FS 2017)


Computers come in all shapes and sizes: servers, laptops, tablets, smartphones, smartwatches, all the way down to that tiny microcontroller in a washing machine. People buy a computer because (i) it gives them access to the Internet, (ii) it provides storage, and probably also because (iii) it computes. While having network access seems to be vital, advanced storage and computing capabilities more and more move to designated servers ("the cloud"). In this lecture, we learn how computers provide networking, storage, and computation by means of an operating system.

We start out with networking, and discuss the internet protocol, addressing, routing, transport layer protocols, flows, some representative application layer protocols, and how to implement these with sockets. We also discuss the link and physical layer, Markov chains and PageRank, and selected topics in security. Regarding storage, we talk about file systems, the memory hierarchy, caching, efficient data structures such as hashing, and data base principles. Concerning computation, we discuss the virtualization of the processing units with processes and threads. We focus on concurrency and examine scheduling, locking, synchronization, mutual exclusion, deadlocks, and consistency.

The lecture will use various teaching paradigms. The majority of the lecture will be based on blackboard discussions, supported by a script. Where appropriate we will also use slides or demonstrations. A few lectures will be flipped classroom style. The lecture will feature weekly paper exercises.

However, some of the course material is best learned in front of an actual computer. In addition to the lecture we offer exciting hands-on exercises in a lab environment. Please check the lab website for details.

Course languages: German (lecture), English (materials).

Lecture by Roger Wattenhofer, Thursday 10-12 @ ETF C 1

Exercises organized by Georg Bachmeier, Friday 15-17 or Tuesday 10-12 @ ETF C 1. You can pick freely which one to attend - the two slots offer identical content. The first exercise session will be on Friday, 03. March 2017.


Info that only applies to students in Rechnergestützte Wissenschaften

There will be two extra labs on April 6th from 8am-12am (Sockets and Rockets) and May 17th from 1pm-5pm (Parallelization in Minecraft) that you have to attend. The lab is held in ETF B 5.
The lectures on Dictionaries & Hashing (Chapter 7) as well as Databases & SQL (Chapter 8) will not be part of the exam for you.


News

  • 24. February: there is no exercise for the first chapter. Exercises start on 03. March with chapter 2.


We were offered to put the material for the Prüfungsvorbereitungskurs by Michael Wolf that was offered after FS 2016 on here.
Disclaimer: this is not official material and has not been checked by us.
PVK material slide set 1 animated and print version.
PVK material slide set 2 animated and print version.

Lecture material single chapters


Title Lecture Notes Exercises Responsible Assistant Additional Material

Preface
2017/02/23
PDF 1:1
PDF 2:1

Chapter 1
Introduction
2017/02/23
PDF 1:1
PDF 2:1
Exercises,
Solutions

Chapter 2
Network Layer
2017/03/02
PDF 1:1
PDF 2:1
Exercises, Quiz
Solutions
Manuel Eichelberger

Chapter 3
Transport Layer
2017/03/09
PDF 1:1
PDF 2:1
Exercises, Quiz
Solutions
Pascal Bissig

Chapter 4
Application Layer
2017/03/16
PDF 1:1
PDF 2:1
Exercises, Quiz
Solutions
Gino Brunner

Chapter 5
Link Layer
2017/03/23
PDF 1:1
PDF 2:1
Exercises,
Solutions
Michael König

Chapter 6
Storage & File Systems
2017/03/30
PDF 1:1
PDF 2:1
Georg Bachmeier

Chapter 7 - not for RW
Databases & SQL
2017/04/06

Chapter 8 - not for RW
Dictionaries & Hashing
2017/04/13
PDF 1:1
PDF 2:1

Chapter 9
Processes & Concurrency
2017/04/27
PDF 1:1
PDF 2:1
Yuyi Wang
[OSYS] chapter numbers in the PDFs refer to this book

Chapter 10
Locks & Contention
2017/05/04

Chapter 11
Concurrent Data Structures
2017/05/11

Chapter 12
Markov Chains & PageRank
2017/05/18

Chapter 13
Security & Cryptography
2017/05/25

References

All references are accessible from within the ETH-network; OSTEP is accessible from everywhere.


[OSTEP] Operating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
Arpaci-Dusseau Books
[OSYS] Operating System Concepts, 8th Edition
Abraham Silberschatz, Peter Baer Galvin, Greg Gagne.
John Wiley & Sons, 2008, ISBN 978-0-470-12872-5
[APUE] Advanced Programming in the UNIX® Environment, Third Edition
W. Richard Stevens, Stephen A. Rago.
Addison-Wesley Professional, 2013, ISBN 978-0-321-63773-4
[AMP] The Art of Multiprocessor Programming
Maurice Herlihy, Nir Shavit.
Elsevier/Morgan Kaufmann, 2008, ISBN 978-0-12-370591-4