Computer Engineering 2 (Technische Informatik 2) (FS 2018)
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. All lectures will be based on blackboard discussions, supported by a script. Where appropriate we will also use demonstrations. The lecture will feature weekly paper exercises.
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, exam), English (materials).
Lecture by Roger Wattenhofer, Thursday 10-12 @ ETF C 1
Exercises organized by Simon Tanner, Friday 16-18 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, 02. March 2018.
For some of the exercises you need access to a Linux terminal. On Windows 10 you can install the Ubuntu terminal. On other operating systems you can create a virtual machine with VirtualBox with an Ubuntu image.
Info that only applies to students in Rechnergestützte Wissenschaften
There will be two extra labs on April 12th from 8am-12am (Sockets and Rockets) and May 16th from 1pm-5pm (Parallelization in Minecraft) that you have to attend. The lab is held in ETF B 5.
The lectures on Databases & SQL (Chapter 7) as well as Dictionaries & Hashing (Chapter 8) will not be part of the exam for you.
The exam for Betriebssysteme & Netzwerke will also be an online exam.
Errata
- We fixed small mistakes in exercise 9 in the Algorithms 2, 3 and 5.
Excluded content
Material that was not covered will not be content for the exam.- Chapter 7: The code pieces of Algorithms 7.27 -- 7.30 were not covered.
- Chapter 10: The lecture covered the script up to Section 7.5.3 excluding Section 7.5.2. Section 7.6 was only covered in terms of the general idea (described in the first three paragraphs of Section 7.6). The remainder of the Chapter (7.7 etc.) was not covered.
- Chapter 11: The lecture covered the script excluding Section 9.3. Regarding concurrent hashing we only covered the basic concepts of Sections 13.2.1 and 13.2.2, without code examples.
- Chapter 12: The lecture did neither cover Lemmas 12.11 and 12.25 nor the proof of Lemma 12.15.
- Chapter 13: The lecture did neither cover items 13.18‒ 13.20 nor items 13.39 ‒ 13.42.
- That's it, everything else is assumed to be known in the exam.
Exam
The exam will take place on Wednesday, 8th of August 2018, 09:00-10:30 in ONA E 7 close to train station Zürich Seebach. The exam will be in German, you are allowed to answer in German or English.
You are allowed to bring any written material you like (script, books, personal notes,...) to the exam, but no electronic devices whatsoever (no calculator, phone, laptop,...).
We will do the exam as an online examination. It will take place in a computer room at ETH and you will answer the questions on a computer. If you need to write simple formulas, you can write them without special formatting as long as the meaning is clear from the context, e.g. xi can be written as xi or x_i. There will also be paper available in case you want to draw a picture, write down some formulas or hand in some additional notes which you cannot easily type on the computer. Answers to individual questions can also be handed in on paper as long as your handwriting allows for easy reading.
You will need your nethz username and password at the exam to log into the exam system.
The keyboards at the exam will have the Swiss keyboard layout. There is a limited number of keyboards with US layout available. If you rather want one of those, please fill in this form (ITET/RW) until July 8. It is not possible to bring your own keyboard, mouse or any other hardware.
We've uploaded a Moodle test exam (ITET/RW) with the password mockexam. You can use this to familiarize yourself with the user inteface of Moodle exams. However, the content of this exam is not related to the topics discussed in this course.
For examples of old exams: FS 16 mock exam (no solutions provided), FS 16 first exam, FS 16 second exam, FS 17 first exam (ITET), FS 17 first exam (RW), FS 17 second exam.Q&A session There will be a Q&A session on Thursday, 2nd of August from 14:00-16:00 in ETF E 1.
Exam review (Prüfungseinsicht)
There will be two exam review sessions for "Technische Informatik II" in the room ETZ G 88:
- Thursday, September 13, 13:00 - 15:00
- Friday, September 28, 09:00 - 12:00
And two exam review sessions for "Betriebssysteme & Netzwerke" in the room ETZ G 88:
- Wednesday, September 19, 13:30 - 15:30
- Friday, September 28, 09:00 - 12:00
Please take note of the following fine print:
- No registration is necessary. Just show up.
- At most two students can look at their exam at the same time. Thus, there might be a queue.
- In order to minimize the time your fellow students have to wait, we kindly ask you to limit your exam review to 20 minutes.
- Please bring your legi for identification; you will not be allowed to see your exam without this.
Second Exam
The second exam will take place on Wednesday, 23rd of January 2019, 09:00-10:30 in ETF E 1. The exam will be written on paper, not as an online exam. The exam will be in German, you are allowed to answer in German or English.
You are allowed to bring any written material you like (script, books, personal notes,...) to the exam, but no electronic devices whatsoever (no calculator, phone, laptop,...).
Q&A session There will be a Q&A session on Monday, 14th of January from 14:00-16:00 in ETZ E 81.
Exam review (Prüfungseinsicht)
There will be two exam review sessions in the room ETZ G 88:
- Monday, February 25, 13:00 - 15:00
- Wednesday, March 13, 09:00 - 11:00
Please take note of the following fine print:
- No registration is necessary. Just show up.
- At most two students can look at their exam at the same time. Thus, there might be a queue.
- In order to minimize the time your fellow students have to wait, we kindly ask you to limit your exam review to 20 minutes.
- Please bring your legi for identification; you will not be allowed to see your exam without this.
Lecture material single chapters
Title | Lecture Notes | Exercises | Responsible Assistant | Additional Material | |
---|---|---|---|---|---|
Preface 2018/02/22 |
PDF 1:1 PDF 2:1 |
|
|||
Chapter 1 Introduction 2018/02/22 |
PDF 1:1 PDF 2:1 |
|
|||
Chapter 2 Network Layer & Routing 2018/03/01 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Simon Tanner |
|
|
Chapter 3 Transport Layer & Flows 2018/03/08 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Georgia Avarikioti |
|
|
Chapter 4 Application Layer & Sockets 2018/03/15 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Manuel Eichelberger |
|
|
Chapter 5 Link & Physical Layers 2018/03/22 |
PDF 1:1 PDF 2:1 |
Exercises,
Solutions |
Gino Brunner |
|
|
Chapter 6 Storage & File Systems 2018/03/29 |
PDF 1:1 PDF 2:1 |
Exercises,
Solutions |
Pankaj Khanchandani |
|
|
Chapter 7 - not for RW Databases & SQL 2018/04/12 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Pál András Papp |
|
|
Chapter 8 - not for RW Dictionaries & Hashing 2018/04/19 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Georgia Avarikioti |
|
|
Chapter 9 Processes & Concurrency 2018/04/26 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Yuyi Wang |
|
|
Chapter 10 Locks & Contention 2018/05/03 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Pankaj Khanchandani |
|
|
Chapter 11 Concurrent Data Structures 2018/05/17 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Jakub Sliwinski |
|
|
Chapter 12 Markov Chains & PageRank 2018/05/24 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Yuyi Wang |
|
|
Chapter 13 Security & Cryptography 2018/05/31 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Jakub Sliwinski |
|
References
[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 |