We've asked students to provide feedback on courses they've taken at ETH. While we split CSE from non-CSE courses, this list is in no particular order. [back to ETH main page].

CSE Courses
Non-CSE Courses
Student Quotes

Abbreviations Used in Course Descriptions

V = lecture in a big plenum
U = exercises
P = practice (lab)
S = seminaries
G = mixed and defined by the teaching professor

For example, 2V means two lecture meetings and 2U means additionally 2 hours/units of exercises. 10P = 10 hours in a laboratory or a similar situation.

Credits below are in ECTS (standard European) credits, and are provided as a guide to roughly how much work each class will require. 1 ECTS = .75 UW credits, rounding up for partial credits of .5 and highter. So, 2 and 3 ECTS = 2 UW; 4 ECTS = 3 UW; 5 ECTS = 4 UW; 6 and 7 ECTS = 5 UW; 8 ECTS = 6 UW.  

CSE Courses

ECTS Credits: 4

“This course is the Bachelors version of a Master’s course called Algorithm’s Lab. The content of the course is learning new algorithms to solve certain problems more efficiently. We covered divide and conquer, greedy algorithms, dynamic programming, shortest path, minimum spanning tree, convex hull, and a few others. The class consisted of one lecture per week in which there was a brief discussion about a new algorithm and then we would go over solutions to the previous week’s homework. Each week, 3 or so problems were given to solve and were expected to take ~2 hours each. All coding must be done in C# but it is not a prerequisite to taking the class (I had never used C# and it was no problem). Doing all the homework was not required (or necessarily expected). 100% of the grade is based off of the final exam, which is 6 hours long and you are given 4 problems similar to the homework to solve. You submit the code to an automatic grading system that compiles and tests your code to give you instant feedback. The best way to prepare for the exam is to do the homework. I did the majority of the homework in the 3 week semester break before the exam and did just fine. In general, class attendance and homework participation was quite low during the semester.” From 2014

Advanced Operating Systems

"I dropped this course after about five weeks. However, it seemed good during the time I took it: Mothy (Timothy Roscoe) is a well-known professor in the field, and he has a quick, intelligent, and entertaining style of talking through some of the grittier details of OS (operating systems), filled with anecdotes of his experiences programming various computers during the 80s. The project is very cool: you build your own OS on top of a microkernel (the L4). The only real downside was that the project was just too difficult – I attempted to take this without having taken a bachelor’s level OS class, which ended up being crazy. For those that have taken an introductory OS class, this could would be a fantastic to seriously solidify their knowledge of the topic."

Advanced Surface Representations
ECTS credits: 4

"This class is interesting, and fun. Heavily based on homework assignments and a final project of your choice. Learn the OpenMesh framework, which is very strange, at least to me since it uses some advanced programming methods. Overall I'd recommend this course. Workload is very fair."

Algorithmic Game Theory
ECTS credits: 7

"Positives: This was a good introduction to many fundamental concepts of game theory, and for me, a good introduction to actual proofs and heavy use of formal notation. I came to ETH in part to improve the mathematical / theoretical side of my computer science knowledge, and this I felt helped me get more up to speed with what the ETH students had as bachelors students. Topics went from classic (prisoner’s dilemma and Nash Equilibrium) to modern (Google’s auction system for add slots). Negatives: About half of the lectures, I would have absolutely no idea what was going on by the end. Several of my classmates said this was the worst lecture they had ever attended, but I didn’t find so bad, just frustrating at times. The Professor (Widmayer) was unable to teach anything but the first lecture, so Matú Mihaľák taught the rest."  From 2011

"I also took this course from Widmayer. The class was very theoretical and the majority of the work was formal proofs that were often quite difficult. There were quite a few times that I had the correct answer to a problem but I did not prove it perfectly and was told the answer would get very few points on an exam. So really focus on formalizing your proofs! 100% of the grade is based off of the final exam but I would strongly recommend at least attempting the homework before section (where we would go over answers) or else it is not worth going. Many lectures were interesting but I also got lost several times. Often a proof took up the entire 1.5 hours and had many steps that were sometimes hard to connect. Widmayer knew the material very well, but was a little difficult to interact with." From 2013

Foundations of Artificial Intelligence

"I dropped this course about five or seven weeks in. Throughout the course, we could not decide if Marcus Hutter is a revolutionary genius pioneer of a field waiting to be discovered, or just completely nuts. Hutter was on a teaching sabbatical if I remember correctly, so the course will likely not be offered regularly, so my feedback here won’t be extremely helpful, but I will say that understanding the math involved would have taken me a significant amount of self study. Hutter teaches in the opposite style of Müller – fast. Really fast. He will zoom through slides that are just filled with his own crazy notation for measuring complexity and mathematics related to his field. The course follows a similar narrative to the book he wrote (and sells during the course), but rather than provide a more in-depth explanation, he tasks himself with covering so much material that for me, it was too quick to grasp a solid introduction to the field. Students with more advanced mathematics should find this fine."

ECTS Credits: 7
Grading: Two midterms and a final

"This course was really interesting, but was very difficult. That difficulty was compounded by one of the greatest evils at ETH: optional homework. This course is very manageable if you keep up on all of the homework, but honestly that is very difficult to do at the beginning of your study abroad experience. Having midterm exams was nice, because it gave me at least some idea of where I was before the final exam. The two midterms are more or less reading checks with some of the easier questions from the homework thrown in, so it should be easy to do pretty well on those, assuming you've been reading and keeping up on the homework. A large portion of the final is homework-based questions. You can do well if you have a really good memory, or if you are very comfortable with the material, as most of the questions are practically cut and paste from the homeworks."

"It's almost entirely theory and proofs. You have to know your discrete math REALLY well, and I found it very difficult. Maurer really knows his stuff, but I found his lecture style quite dry."

Computer Graphics
ECTS Credits: 6
Grading: Small projects throughout the semester, a midterm exam, and a final exam

"I really liked this course. My project partner for this course became my best friend in Zurich. Also, I'd say it is the most "American" of any of the three courses I took my first semester. Thanks to the homwork assignments, students get plenty of feedback from the TA's, which was really nice. The overall grading system is also very generous: the homework is worth 50% of the overall grade, and the midterm and final are both worth 25%, unless you do better on the final than the midterm, in which case the midterm doesn't contribute to your final grade, and the final is worth 50%. By far the most generous grading structure I have seen. Take this if you want to feel really comfortable knowing how well you're doing in a course at all times."

Physically-Based Simulation in Computer Graphics

"On the plus side, this course teaches from the basics to the state-of-the-art in physically based simulation, and is extremely relevant for animation and games programming. The slides are well done, and there is the opportunity to do an interesting project. On the minus side, the course required much more math prerequisites than it hinted at (hadn’t taken differential equations or linear algebra yet, which made coursework rather difficult), the exercises were kind of a 0% or 100% ordeal, and there was no direction for what would be on the exam (and none was provided when asked), leaving us to attempt to memorize hundreds of slides. The exam ended up having us do math by hand, which we had never done in the exercises."

XML and Databases
ECTS Credits: 6
Grading: One non-graded but required project, and a final exam

"During the semester I was only required to do a small project using XQuery. A lot of interesting database implementation details are shown in lecture, although the final exam is almost entirely syntax-based. Kinda like CSE 142/143 but with low-level details thrown in, and less guidance in learning the language. This one can be very fun and stress free if you keep up with the new programming features taugh in lecture and practice them while they are still fresh in your mind."

"The good: Donald Kossmann is a very entertaining professor, and will rant about what he deems as important. I took this course entirely because I sat in on another course of his that I couldn’t take, but wanted to take something from him. Also, this game me a thorough understanding of hierarchical data serialization, and the last unit on the semantic web (RDF, OWL, SPARQL, …) got me the most excited that I have been about a topic in a while. Also, the assistant, Martin Kaufmann, had immaculate slides and was extremely well prepared. The bad: Kossmann would spend an hour on one slide and then click through sixty more. The material and project were also somewhat dated: he frequently mentioned that this is a course he taught at Stanford six years ago, and that it was cutting edge and exciting at the time. Hours and hours seemed to be spent on details of schema and database optimization that weren’t tested; even Kossmann didn’t seem excited about them. It would have been far more interesting to do a project on protocol buffers or the semantic web – hot technologies of today."

Game Programming Lab
ECTS Credits: 10

"This class is really fun, but very time consuming. Definitely worth it, especially if your other courses aren't too work-intensive."

"I had mixed feelings about this course. On the plus side, you have huge amounts of freedom to build an XBOX360 game from scratch, which is wicked cool. There’s no other coursework or assignments (besides the occasional report or presentation about how the game is going), and you even get some cool perks, like talking with real game developers who give you some feedback about your game, and taking a field trip to a video game museum. On the minus side, your experience can vary hugely depending on the group of people you end up with. I didn’t have a group in mind before starting the class, and didn’t know more than one person in it, so I ended up in a group of “I don’t have a group” students. I liked the guys I worked with, but not having a direction coming into the class meant hours upon hours of arguing what our game would be about, and many difficulties cooperating and collaborating closely down the road. I would strongly recommend this class if a student knows who he/she will work with in the course (and even better, has some idea of the game he/she would like to make)."

General Purpose Programming on the GPU
ECTS Credits: 4

"This class is a lot of work, but it's interesting, and seeems like a good way to practice a new, valuable skill. Again, homework and project components make up for a lot of your grade, which is nice. Far more work than the credits you recieve, although the current professor for the course is leaving after this year, and the content may change significantly next year."

Information Retrieval - Taught by a Google person

"I quite enjoyed it and found the material fairly straight forward. It's the basic stuff relevant to search engines and a little bit about text classification (e.g. spam filter). You have to do 3 out of the 4 projects assigned in class, and "pass" on the projects in order to take the final, which was also a straightforward test. I don't know if the class taught in the same way every year."

Information Security
ECTS credits: 8

“This is a Bachelor’s course that is split into two parts, taught by two different professors. The first half of the course was taught by Srdjan Capkun and covered the basics of cryptography. The second half of the class was taught by Adrian Perrig and covered selected topics in security. 100% of the grade is based off of the final exam and the weekly homework is not required. While the material was decent and the exam was fair, this was one of my most boring courses. Capkun taught in an uninspiring manner and class attendance was poor as a result.”

Machine Learning
ECTS credits: 4

“I took this course from Adreas Krause who was a very good teacher. The course had 3 projects, which combined for 30% of the grade. The projects were clearly defined and fairly interesting. You could be in groups of up to 3 students and would have several weeks for each project. The other 70% of the grade was based off of the final exam. There was a homework roughly biweekly that was not graded nor collected. This is meant to be an introductory course so the class is self-contained. The material was fairly difficult but feasible. It was nice having a class with some of the grade based off of projects to ease the pressure on the exam a little bit. I found the exam for this course to be extremely difficult. The entire course content was taught at a very theoretical level and even the homework was quite theoretical. However, the exam involved a lot of applying concepts we have learned to small data sets and we had never had any practice similar to this. Overall, I learned a lot in this class and I managed to pass so I was happy.”

Mobile and Personal Information Systems
ECTS credits: 4

“This was a discussion based class meant to consider the issues with and the potential of the growing popularity of mobile computers. There was one lecture per week taught by Michael Niebling. There were several “brainstorming” classes where we got in groups and had to come up with an idea for an app to solve a specified problem. There were two projects throughout the semester that were optional to do and only a few people did. The final exam was a 15 minute oral exam in which the professor asked about concepts from the slides. Overall, the class was not overly exciting. However, it did provide good opportunity to develop apps and borrow expensive devices from ETH if you decide to take advantage of the opportunities.”

Network Security

    "More base layer things, such as port scan, routing, connection hijacking, and password cracking. You have to do about 5 labs in order to take the exam, which is oral. (I haven't taken the exam yet so I don't know how hard it is.) I think it would be extremely interesting to someone who is interested. I personally found it boring because I like higher level programming."

Operating Systems and Networks
ECTS credits: 8

“This is a Bachelor’s course that is split into two parts, taught by two different professors. The two halves of the class were interleaved (so I would have 2 weeks of OS, 2 weeks of Networking, 2 weeks of OS, etc.) but they mentioned changing it back to two separate halves in following years. There was weekly homework but it was neither graded nor collected. 100% of the grade was determined by the final exam. In general the professors and the material were fairly engaging. Torsten Hoefler taught OS and was very passionate and knowledgeable, although he sometimes spoke very fast and assumed some knowledge. Adrian Perrig taught Networks and he was not quite as engaging but still very good. The Networking class was taught based off of the UW course taught by David Wetherall and used the exact same slides. I actually used David Wetherall’s online course videos to study! Overall, I really liked this course. The only problem is there is almost no application of the things you learn. The content is all concepts and learning basic protocols/algorithms but no implementation. If you want to actually get your hands dirty take OS at UW!”

Security of Wireless Networks

"Srđan Čapkun is an excellent professor, and presented a very well-thought-out course in his lecture on hacking and defending wireless transmissions. I have mostly only good things to say about this course – really the only flaws were mine (I was slow at the labs; I couldn’t build a good antenna; I didn’t know enough electrical engineering to get a great score on the exam). Computer scientists be warned, Čapkun is an electrical engineer and he does expect a deeper knowledge of some topics than you already have (e.g. frequency, waves, signal transmission). This helped introduce me to the fact of ETH where if you haven’t adequately learned something that is covered in a course, it’s not the professor’s job to remove it, it’syour job to learn it on your own time."

Software Architecture and Engineering
ECTS Credits: 8

"“This Bachelor’s class was split into two parts taught by Peter Müller and Peter Vechev. There was one project for each half of the class each worth 20% of the grade. The final exam was the other 60%. While both professors had relatively engaging styles of teaching, the material was rather dull in my opinion. I was hoping to learn good software engineering practices and design patterns. Rather, the majority of the first half of the class (and the entire first project) was about modeling with a language called Alloy. The whole second half of the class (and the second project) was about static analysis of programs. It was not a difficult class, but it should be renamed to Modeling & Analysis.” From 2014

"This course covers the gauntlet of software development: from gathering the requirements of a project, planning and designing the project, to implementing and testing the project. It also touches on some concepts of project management. For me, it was helpful to be introduced to the formal method of software development, and there were several new topics including use cases, UML diagrams of all types, mocking, stubbing, static analysis, and cost / time estimation tools. Peter Müller was generally friendly and entertaining, and clearly knew what he was talking about, offering good anecdotes from his time in the industry. However, there were three huge drawbacks to the course. First, though Peter Müller is thorough, he meticulously reads every word of every single slide in his entire deck, explaining in depth each paragraph and diagram. This sometimes can deteriorate to walking us through simple addition and subtraction for twenty minutes. Secondly, the method of software engineering we learn about, called the ‘Waterfall’ method, is never used in industry today, because it’s been proven to be a horrible approach to software engineering. This was admitted in the course! But it’s still the backbone of the entire structure of the course! Why not teach a brief version of the ‘Waterfall’ model for historical reasons, and then spend most of the course on better methods of software engineering that are actually used by top companies today? Third, and this was the biggest, the course on ‘software development’ invoved everything except for … actually writing software! The project included meticulous detail on planning and designing a software system, but then it skips the implementation (the actual writing of the software) entirely and goes right on to testing. In the introduction to the course, the slides read “After this course, you should be able to: produce high quality software,” which to me is laughable because we didn’t spend any time writing any software. It’s like taking a class about the theory behind playing piano, and then telling students they’ll be master pianists afterwards." From 2012

Software Engineering Laboratory: Open-Source EiffelStudio
ECTS Credits: 4
Grading: Project-based

"This course was a good way to meet researchers at ETH. I don't know if there are other software development courses like this one, but I can at least recommend this if you're looking for a relaxed 4-credit course. I can't say exactly what I did because it is still secret and unpublished, but I did enjoy learning a new programming language (Eiffel) and programming paradigm (contract-based programming). This course also helped me find work to do over the summer at a lab at ETH."

Web Engineering
ECTS Credits: 4

"This class teaches you all sorts of topics about the web. I wasn't very familiar with any aspects of the web before taking this course, but if you are familiar, it may be quite boring and easy (which may not be a bad thing for you). 25% of the grade is projects, and 75% of the grade is based on the final exam."

Bachelor's Thesis/Semester Project
ECTS Credits: 10/5

"I took this course in order to ensure that I could stay over the Summer. I plan on working 4 days a week, and travelling the other 3 all Summer. I figured that the opportunity to spend an entire Summer in Europe was a once-in-a-lifetime opportunity, and wanted to take advantage of it. ETH will not give you your stipend for no reason over the Summer, you need to be earning credits. You may be able to stay over the Summer without working in such a position if you have final exams in August, but in that case you won't get any Summer work/research experience. I figured tha tthis would look good on my resume, and I like both of the labs that I am looking at working in (Disney Research, and Bertrand Meyer's lab)."

Non-CSE Courses

Intensive German / Intensive German A1.1

    "Must take, especially if you don't know German. But it's also a great way to meet some people."
    "I am extremely glad I signed up in time to take the intensive German course; in my opinion, learning some German was one of the most important things I did here, and I believe it allowed Zurich to feel much more like a home. It was also a great way to meet friends and explore Zurich before course work had started."

German during the semester / German A1.2

    "You learn some things. It's an easy 2 credits and hang out with friends you've already made. But you can only learn so much German in 1.5 hours a week."
    "I was fortunate enough to have room in my schedule for the next in the German language sequence – also a valuable motivator to keep studying with regular checks every week."

Italian A2
ECTS Credits: 2
Grading: Participation and Final Exam

"I tried to sign up for a German class too late, and instead wound up taking Italian. Taking a non-german course is a good way to meet Swiss people, although if you don't know any German going into the program, I recommend taking a German course. Language courses are numbered A1, A2, B1, B2..."

Decision Theory

"This course came extremely highly recommended to me from even the most discerning of students – Ryan Murphy is tasked with breaking down why we decided to do what we do (often badly) in many different scenarios and situations. For me, this was the most disappointing course at ETH, though probably because it was so hugely hyped. The first half of the lectures were silly clichés and tricks that anyone who has used the internet before has likely came across – things like visual illusions, popular YouTube videos, and popular ‘knowledge twisters’ like the Monty Hall problem and the prisoner’s dilemma. It fits the bill as an easy course, and there is some material in the last third of the class that is stimulating, but it’s only sometimes engaging and certainly never difficult."

Politics of Environmental Problem Solving in Developing Countries

    "Not interesting.. You can study the cases on your own. Unless you're desperate for 2 more credits, don't bother taking it."


    "I really enjoyed this three credit course. Test is should be fairly easy if you study for it (or go to all the lectures)."

Scientists and their Notebooks

"Another GESS (Humanities, Social, and Political Sciences) course, this offered a very specific look at the role of ‘the notebook’ in the history of science. Omar Nasim is a liberal arts teacher at its best, presenting us articles to read and discuss that use over-inflated vocabulary to obscure simple concepts supported by hand-wavy evidence. On the plus side, I had a great time arguing with him about many topics presented in the course, and by the last lecture I think I had finally gotten on the same wavelength as him about the purpose and scope of his work, and I found the topic to be pretty enriching. This gives an interesting, very deep, very narrow look at history through the written records of scientists, and does give insight into how current scientific practices are shaped by what came before them."


Student Comments about Classes

"In general, I found that people here really make you do all the work. About half of the classes don't require anything, just that you take the final. Even when they do give you projects (for example, information retrieval), there are hardly any guidelines for it (in any language, with any framework, from scratch, with no example or expected output)."

"One aspect of ETH that was new for me was their system for exams. Generally your grade depends solely on the final. This takes place sometime in the last month of the semester break, so in theory you have about two months to prepare for exams. That can be nice, but it makes travelling in the months leading up a little stressful. I felt a little guilty for wanting to travel around Europe instead of studying. Another new experience was oral exams. These are 15-30 minute sessions with a professor where your knowledge of the subject is probed. At first I was nervous about these exams, but I grew to like them over the year. Usually orals focus on your overall understanding of a topic, rather than bogging down in minor details or long solutions."


Exams at ETH were simultaneously not as bad as everyone made them out to be, and worse than I expected.

Why exams at ETH are bad:

  • They don’t tell you what to study. Professors will have often have hundreds of slides or dozens of pages of notes by the end of a course, and they rarely hand out summaries, study guides, topic outlines, or exam guidelines (or previous exams). For some courses, all that one can do is attempt to memorize everything covered in the course, which is insane. It’s unclear what needs to me learned in depth.
  • You’re supposed to study all year. Winter and summer breaks are polluted by study guilt.
  • All of your work during a semester counts for nothing (usually). Practical work may be assigned, but it’s just a pre-requisite for entering an exam. This gives exams 100% of the points towards your grade.
  • Because homework does not count towards your grade and there is such a large gap between the end of courses and exams, for some people procrastination is encouraged and class attendance and participation can be low.

Why exams at ETH are not so bad:

  • They are generally pretty sane. I have heard from multiple sources that exams in the bachelors are much harder than the masters exams. I was fortunate to avoid taking any labs, which I only learned later in the year are intended to weed out (fail) students, so most exams I took in my time here arepretty reasonable.
  • They make you learn stuff pretty well. The advantage of having to (or being supposed to) study all year is that you do get a pretty long exposure to the material.