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, exam), 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 Databases & SQL (Chapter 7) as well as Dictionaries & Hashing (Chapter 8) will not be part of the exam for you.
Errata
- Chapter 6: The solution to exercise 4a has been expanded since it was first uploaded.
- Chapter 8: There was a mistake in definition 8.2 that has been fixed in the available version of the script. The solution to exercise 3b has been expanded since it was first uploaded.
- Chapter 11: We fixed an issue with the code in exercise 3b after it was first uploaded
Excluded content
- Chapter 8: The lecture did not cover Section 8.5 of the script, which will therefore not be content for the exam.
- Chapter 10: The lecture only covered the script up to section 7.5.3 excluding section 7.5.2. Section 7.6 was only covered in terms of the overall ideas. Sections 7.7 and following were not covered. Material that was not covered will not be content for the exam.
- Chapter 11: The lecture only sketched section 13.2.2 of the script and did not cover 13.2.3, which will therefore not be content for the exam.
- Chapter 12: The lecture did not cover the proofs of Lemmas 12.11, 12.15, 12.25, so those proofs will not be content for the exam.
- Chapter 13: The lecture did not cover items 13.18 and 13.39 ‒ 13.42, so those will not be content for the exam.
First exam
The first exam will take place on Wednesday, 23rd of August 2017, 09:00-10:30 in Hönggerberg, HIL F 15. The exam will be in German, you will be allowed to answer in German or English. You are allowed to bring any written material you like (script, books, personal notes,...), but no electronic devices whatsoever (no calculator, phone, laptop,...).TI 2 exam with solutions, Betriebssysteme & Netzwerke exam with solutions
For examples of old exams: FS 16 mock exam (no solutions provided), FS 16 first exam, FS 16 second exam.
Q&A session There will be Q&A session on Monday, 21st of August from 2pm-4pm in ETZ E 8.
Exam review (Klausureinsicht) There will be an exam review in G88 (ETZ building) on Wednesday, September 20, from 9:00am to 12:00pm and on Monday, September 25, from 1:00pm to 4:00pm. 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, 14th of February 2018, 09:00-10:30 in HG G 3. The exam will be in German, you will be allowed to answer in German or English. You are allowed to bring any written material you like (script, books, personal notes,...), but no electronic devices whatsoever (no calculator, phone, laptop,...).
Exam review (Klausureinsicht) There will be an exam review in G88 (ETZ building) on Wednesday, February 28, from 1:00pm to 4:00pm and on Monday, March 5, from 9:00am to 12:00pm. 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.
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 |
Exercises,
Solutions |
Georg Bachmeier |
|
|
Chapter 7 - not for RW Databases & SQL 2017/04/06 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Manuel Eichelberger |
|
|
Chapter 8 - not for RW Dictionaries & Hashing 2017/04/13 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Georg Bachmeier |
|
|
Chapter 9 Processes & Concurrency 2017/04/27 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Yuyi Wang |
|
|
Chapter 10 Locks & Contention 2017/05/04 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Simon Tanner |
|
|
Chapter 11 Concurrent Data Structures 2017/05/11 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Pankaj Khanchandani |
|
|
Chapter 12 Markov Chains & PageRank 2017/05/18 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Darya Melnyk |
|
|
Chapter 13 Security & Cryptography 2017/06/01 |
PDF 1:1 PDF 2:1 |
Exercises,
Quiz
Solutions |
Thomas Ulrich |
|
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 |