ETHZ Courses Attended

Computer Science - Loris Reiff

Here you find a list of all courses I attended at ETHZ as a computer science student. I also added a short review to (almost) each course listing, because one thing I always missed at ETHZ was a public course review board. Of course there is the exam evaluation where you can get some information about the courses, or one can ask friends in higher semesters. However, as the name suggests the exam evaluation focuses on the exam, and your friends might not have taken the course you're interested in. Naturally, you could also ask online, but that isn't as comfortable. I was thinking about implementing such a site myselves. However, such a site requires moderation and I am not really interested in maintaining such a website. Adding short reviews to my site, on the other hand, is simple and might help someone in choosing a course. If you have questions about a course, feel free to drop me a line.

Bachelor Courses

Linear Algebra - HS 16

Credits: 7

Taught by: Ö. Imamoglu, O. Sorkine Hornung

The course was nicely structured. However, the intuition of the definition was often missing for me and I wished that some geometric interpretations would have been covered. The Essence of linear algebra by 3Blue1Brown is in my opinion a good addition to the course. Also I believe a bit more material should be covered in order to prepare better for e.g. Numerical Methods for CSE.

Discrete Mathematics - HS 16

Credits: 7

Taught by: U. Maurer

Discrete Mathematics was one of my favorite courses in the Basisjahr. Prof. Maurer has a really captivating way of teaching and he knows how to display the beauty of mathematics. This course is in general a great introduction to mathematical thinking and proofs. I truly enjoyed this course!

Introduction to Programming - HS 16

Credits: 7

Taught by: T. Gross

I already knew how to program prior to the begin of my studies, so this course was rather easy. That's why I'd suggest to already take a GESS course in the first semester if you have programming experience. I'd say the course provides a solid introduction to programming, but that is difficult to judge with experience.

Algorithms and Data Structures - HS 16

Credits: 7

Taught by: P. Widmayer, M. Püschel

P. Widmayer is a great teacher! It is a bit unfortunal that he retired. He really knows how to intuitively explain algorithms on a blackboard in an interesting manner. Algorithms and Data Structures is great course and in my view it strikes the balance between theory and practice perfectly.

Algorithms and Probability - FS 17

Credits: 7

Taught by: A. Steger, E. Welzl

This course continues where Algorithms and Data Structures left off. It is maybe a bit more theoretical than A&D, but not less interesting! When I took the course, it was completely new and had some rough corners. However, A. Steger was keen on our feedback, and I am sure the initial issues were fixed. I highly enjoyed this course.

Design of Digital Circuits - FS 17

Credits: 7

Taught by: O. Mutlu, S. Capkun

One can really feel O. Mutlu's passion for computer achitecture when attending the lectures! What's nice, he references to a lot of papers as additional reading which is great if you are interested in the topic. Also most if not all of his lectures are available online. On a negative note he tended not to end on time.

Parallel Programming - FS 17

Credits: 7

Taught by: T. Hoefler, M. Vechev

Whenever I have a race condition in my code I think back to this course. Concurrency and parallelism is hard and this course gives a little glimpse into that. It is definitely a helpful course! Unfortunate the structure of the course was sometimes a bit confusing and parts of the material got covered twice, once by by T. Hoefler and once by M. Vechev. From the theoretical side some parts could be formalized slightly more. And from a practical perspective it would be nice to cover some concurrency issue in a real world application.

Analysis I - FS 17

Credits: 7

Taught by: Ö. Imamoglu

Contrary to linear algebra, Ö. Imamoglu tried to cover the intuition of definitions if relevant, which I liked. I enjoyed the course, even though there is a number of computer scientist students are not particularly fond of analysis.

Analysis II - HS 17

Credits: 5

Taught by: Ö. Imamoglu

This course is a natural continuation from Analysis I. So similary comments apply. The only additional critic is that Ö. Imamoglu's timetable didn't work out. At the end of the course we flew over interesting (and important) topics, which is a little unfortunate.

Numerical Methods for CSE - HS 17

Credits: 7

Taught by: R. Alaifari

This course is a bit of a mixed bag. It was the first time R. Alaifari taught this course and she clearly put a lot of effort in it to explain the material in a understandable way. Also there are many important take aways from the course. However, I felt like the connection between subtopics of this course were not always clear and the problems could have been motivated more extensively.

Systems Programming and Computer Architecture - HS 17

Credits: 7

Taught by: T. Roscoe

If you are curious about low level programming, you are going to love this course! The lectures as well as the assignments are great. What's great about T. Roscoe is that he spikes the course with interesting anecdotes from the past. However, if you are less excited about system programming you might consider his stories a negative point, as he sometimes gets lost in them. Which means you have to review more material on your own.

Theoretical Computer Science - HS 17

Credits: 7

Taught by: J. Hromkovic

The course closely follows the book Theoretische Informatik. Students with a strong maths background usually find the course not too challenging. Computer scientists that are more engineering focused might need to invest a bit more time. At least this was my impression when I was a teaching assistant for this course. What is nice about the course is that you don't have a session exam, but a mid- and end-term exam.

A Sampler of Histories and Philosophies of Mathematics - HS 17

Credits: 3

Taught by: R. Wagner

I really enjoyed the reading material of this GESS course (e.g. On Proof and Progress in Mathematics by William P. Thurston)! Some lectures were also helpful, but the lecturing style was occasionally a bit dull. All in all I would recommend the course to people that are interested in mathematics and its philosophical aspect.

Current Issues in Security Policy - HS 17

Credits: 3

Taught by: A. Wenger, O. Thränert

This course helps you to understand international politics better, at least with regards to security policies. I really enjoyed this aspect. At the time of taking the course, the tension was rising between North Korea and the USA, because of North Korea's missile tests. The material was really up to date and was true to its name. Treaties and issues of this conflict were included in the lectures. Furthermore, the course was quite broad. I can recommend the course, but only if you are really interested.

Complex Analysis - FS 18

Credits: 4

Taught by: P. S. Jossen

I liked Complex Analysis a lot. P. S. Jossen knows how to teach maths and there were mind-blowing theorems presented. Given that it is a course from the EE departement, the applied side was of course also not neglected. All in all a well rounded course.

Computer Networks - FS 18

Credits: 7

Taught by: A. Perrig, A. Singla

While it was the first time that this course wasn't taught as "Operating Systems and Networks", it made a very well structured impression. I also appreciated the projects. It helped me to gasp the theory even better.

Data Modelling and Databases - FS 18

Credits: 7

Taught by: C. Zhang, G. Alonso

Personally I found the course a bit dull. The material taught is very valuable indeed, but the lecture didn't spark joy for me. I often didn't go the lecture and read the corresponding pages in the suggested book instead. This review of the book fits in my opinion pretty well.

Probability and Statistics - FS 18

Credits: 5

Taught by: P. Cheridito

This course repeated some of the essential theorems in probability which were covered in "Algorithms and Probability" and introduced some basic ideas from statistics. In hindsight I wish we covered more statistics and motivated the ideas and concepts more.

Formal Methods and Functional Programming - FS 18

Credits: 7

Taught by: D. Basin, P. Müller

This course is 50% great and 50% meh. The great part is the functional programming one, where David Basin introduces Haskell. If you like maths and programming you will enjoy haskell. Furthermore, I found D. Basin's humor to be great, but your mileage may vary. As you may have guessed, the meh part is about formal methods. Formal methods is absolutely not semi-formal... A big part of the exercises is writing formal induction proofs by hand, which gets boring pretty quickly. I think a bit more computer aided verification and computer based proofs would greatly improve the course.

Physics 1 - FS 18

Credits: 4

Taught by: A. Imamoglu

The old regulation of the computer science bachelor had an obligatory physics lecture. I felt like not having to take physics was a big loss. And since I enjoyed physics in high school, I took this course as a minor (Ergänzung) without giving it much thought. This turned out to be a mistake, almost all topics were covered during high school (at least if you took PAM). In this course we derived a bit more formulas, and the difficulty level was also a bit higher than in high school. However, I wanted to gain additional insight not repeat thermodynamics and friends. So read the course description carefully, otherwise you'll end up like me sitting through a course without much joy.

Algorithms, Probability, and Computing - HS 18

Credits: 8

Taught by: E. Welzl, M. Ghaffari, A. Steger, D. Steurer, P. Widmayer

What I enjoyed in this course that it was thought by many different professors. Each one presented topics they liked particularly, at least that was my impression. So their passion might spark over to you. The course can be seen as continuation of "Algorithms and Data Structures" and "Algorithms and Probability" without the applied part. Ergo it is a theory course. In comparison to the other core courses I have taken, I would say that APC is more demanding. But the introduced topics are interesting, and some are helpful for the notorious AlgoLab course.

Computer Systems - HS 18

Credits: 8

Taught by: T. Roscoe, R. Wattenhofer

If you enjoyed SPCA, you will also enjoy the part taught by T. Roscoe in this course. Important operating system concepts are covered in a abstract, general manner and examples to implementations are given. The distributed systems part is a bit detached from the operating systems part. At least this was the case in the first iteration of the course. Personally, I enjoyed the operating system part better, but this is also linked to my interests. The distributed system part is certainly a solid introduction to the topic. In terms of effort this course is roughly in the middle compared to the core courses.

Visual Computing - HS 18

Credits: 8

Taught by: M. Pollefeys, S. Coros

The course is split into a visual computing and a computer graphics part. M. Pollefeys introduces many different visual computing techniques on a high-level. In my opinion those high-level explanation are not enough to truly understand the material (but enough to pass, if you're worried about that ;). I would suggest reading the corresponding chapters in Digital Image Processing by R. C. Gonzalez and R. E. Woods, if you want to get more out of the first part. The second part starts slow. However, it felt like all important building blocks are introduced. In comparison to other core courses, I'd rate the effort as below average.

Applied Computer Architecture - HS18

Credits: 6

Taught by: A. Gunzinger

A. Gunzinger is a really friendly guy. However, his course felt more like a high-school class. Not that this is bad, but 6 ECTS are not really justifed in my opinion. Also it is simpler to get a good grade in comparison to other courses. He even mentioned that the secretary complained about this. You will still learn a thing or two, but it is not comparable to a lecture by O. Mutlu!

Information Security - FS 19

Credits: 8

Taught by: D. Basin, S. Capkun, E. Mohammadi

This lecture is also split into two parts. In the first S. Capkun introduces cryptography, in the second D. Basin presents divers topics such as protocol security, network security and anonymity. I found the first part to be a bit slow paced, but important concepts of modern cryptography are introduced. To get an even deeper understanding the recommended book felt like a good companion. The second part had a good pace for me and was presented interestingly. The effort for this course is roughly the average with regards to core courses. Another cool aspect of the course was the optional CTF organized by E. Mohammadi.

Introduction to Machine Learning - FS 19

Credits: 8

Taught by: A. Krause

A. Krause took great care in introducing the core concepts of machine learning. The lectures were interesting and well balanced between theory and application. Furthermore, the biweekly projects are a great way to apply the learned techniques and contribute to the understanding. All in all a solid course. In terms of effort, I'd rate it a bit over the average of the core courses I visited.

Information & Physics - FS 19

Credits: 2

Taught by: S. Wolf

It is a rather big seminar (120 participants). So you do a presentation in a group of 2-3 people and there are many different available papers to choose from. It was not my favorite course, but it's okay. On a plus side you can have interesting discussions with S. Wolf.

Master Courses

Concepts of Object-Oriented Programming - HS 18

Credits: 6

Taught by: P. Müller

TODO

Formal Methods for Information Security - FS 19

Credits: 4

Taught by: R. Sasse, C. Sprenger

TODO

System Security - HS 19

Credits: 7

Taught by: S. Capkun, A. Perrig

TODO

Network Security - HS 19

Credits: 7

Taught by: A. Perrig

TODO

Applied Security Laboratory - HS 19

Credits: 8

Taught by: D. Basin, C. Sprenger, R. Sasse

TODO

Algorithms Lab - HS 19

Credits: 8

Taught by: A. Steger

TODO

World Views in the Digital Age - HS 19

Credits: 3

Taught by: J. Leuthold, C. aus der Au Heymann

TODO

Advanced Operating Systems - FS 20

Credits: 7

Taught by: T. Roscoe, D. Cock

TODO

Advanced Systems Lab - FS 20

Credits: 8

Taught by: M. Püschel

TODO

Applied Cryptography - FS 20

Credits: 8

Taught by: K. Paterson

TODO

Current Topics in Cryptography - FS 20

Credits: 2

Taught by: K. Paterson, D. Hofheinz, U. Maurer

TODO

Graph Theory - FS 20

Credits: 5

Taught by: B. Sudakov

TODO