During the Fall 2021 semester, I studied computer science as an exchange student at the University of Zürich and a special student at ETH Zürich in Switzerland. Here’s how it went.
(Most of this content is readapted from my exchange experience report, thanks goes to my friend Elaine for helping me edit this.)
I applied to UZH through Northeastern’s Global Experience Office. I was interested in Swiss universities for their strong rankings in computer science and finance. At the time, I wanted to pursue software engineering at a quantitative finance firm — an intricate combination of both fields — so I thought the country would be a great fit. Also, none of my friends had studied in Switzerland before and I love walking paths less travelled.
Around the end of December 2020, I started making plans to study abroad next fall. I couldn’t have gone abroad in an earlier semester because of COVID-19. On the other hand, I had just wrapped up my second year of studies, so I needed to go abroad soon to have more flexibility before my final years of study.
In February 2021, I made several appointments with my study abroad advisors to inquire about opportunities in Switzerland. Naturally, I learned about NEU’s partnership with UZH from these conversations. I also learned I could take classes as a special student at the ETH, so I could experience both universities in Zürich.
In March 2021, I researched a lot of the computer science courses I could take at UZH that would transfer over as NEU courses. A lot of these courses weren’t registered in NEU’s system yet, so I “shotgunned” course evaluation petitions in hopes that they would count for classes needed in my degree. Because of the uncertainty induced by the pandemic, I also needed to complete a lengthy high-risk petition to qualify for an exchange.
In April 2021, I officially submitted my application to UZH. At the same time, I was notified that most of my course evaluations would satisfy NEU degree requirements, so I got lucky with my planned schedule. To apply, I filled out my personal details, cleaned up my CV, drafted a motivation letter, compiled my transcripts, and went through the arduous process of passport renewal.
In May 2021, I was accepted into UZH’s exchange program and NEU had approved my high-risk petition! With my acceptance, I received a timeline of important deadlines from UZH’s Global Student Experience office.
In the final months from July to September 2021, my time was split between finding housing and applying for a visa. UZH’s exchange office put me in contact with the WOKO student co-op housing organization, where I was able to easily find accomodation. I mailed the nearest Swiss consulate with an authorization form from UZH to obtain my visa. A flight from LAX to ZRH in early September began my exchange!
I lived in the WOKO Cäsar-Ritz-Strasse student house in Zürich’s Affoltern district, close to the ETH Hönggerberg campus. I lived with two roommates and we shared a kitchen, dining area, and bathroom. Conveniently, there was a Coop store (one of Switzerland’s two major grocery chains) just a two minute walk from my apartment.
It took me roughly 45 minutes to get to the UZH main campus in downtown Zürich by bus. Depending on which timetable was more convenient, I would either take the Mühlacker Line 61 bus or the Holzerhurd Line 32 bus. All of my computer science courses took place at the UZH Oerlikon campus, which took roughly 30 minutes by bus.
Switzerland has a sound public transportation system, so it was also easy to hop on a 2-3 hour train ride to different cities like Geneva and Lauterbrunnen for a weekend outing.
Health insurance was mandatory and incredibly difficult to get exempted from. I found that the most cost-effective solution was SwissCare’s plan for foreign students.
I learned about Switzerland periodically growing up in the US, so I had an idea of what to expect when visiting the country for the first time. The common stereotypes about Switzerland are neutrality, punctuality, and precision. Banking, chocolate, cheese, and watchmaking are major industries. But there were more subtle differences that surprised me.
Most businesses were closed by 8 PM, except for some restaurants and bars in downtown Zürich — 24/7 service isn’t a thing. On Sundays, almost every business or service is closed except for public transportation. Sundays are reserved for relaxation (i.e. a beautiful hike in the countryside)!
Being in the heart of Europe, Switzerland is incredibly multicultural. German, French, Italian, and Romansh are all official languages depending on which canton you’re at. Nearly everyone I met in Zürich was bilingual with German and English or even trilingual.
There is a huge emphasis on promoting environmental sustainability – Zürich’s air quality was very clean. Air conditioning is uncommon. Recycling stations were abundant and garbage collection was strictly done through designated “Zuri-Sacks”.
The last thing I want to discuss is Switzerland’s reputation of being expensive. Visiting the country as a tourist, this is definitely true. An inexpensive restaurant meal costs around $20-30, and a slightly upscale restaurant easily breaks the $40-60 range. A packet of ramen even cost us $3! A single 1 hour bus ticket can cost $5 in Zürich center and more if you travel across different zones.
To save costs on transportation, I purchased monthly ZVV NetworkPass plans and the SBB Half Fare travelcard. For eating, I’ve found that you can get steeply discounted meals via the TooGoodToGo app, which facilitates food waste reduction with local restaurants and grocers.
But significant costs like rent and tuition are inexpensive compared to the US. My student rent costs around $800 per month – in Boston, it could easily be around double that. For domestic and foreign students, the tuition fee is around just $800-1300 per semester respectively, more than 20x cheaper than sticker price for American universities like NEU!
Shortly after landing in Zürich, I took a two-week supplementary A1 German intensive course from the Sprachenzentrum (language center) that I failed. However, it was still useful in teaching me basic survival phrases and how to read some signs in the city. I continued with Duolingo and the “Coffee Break German” podcast on Spotify from that point on.
The credit system at UZH is the European Credit Transfer and Accumulation (ECTS) System, standardized across many European universities as its name implies. The conversion from NEU’s credit system is roughly (0.5 units = 1 ECTS). The grading scale is from 1.0-6.0 where 4.0 is passing and 6.0 is excellent — exact cutoffs are determined by a curve after exam results are in. The fall semester starts in late September and classes end just before Christmas. A mid-January exam session concludes the semester for UZH and a late-January to mid-February exam session concludes the semester for ETH.
I took the following four computer science (also called informatics) courses during my time in Switzerland. All courses successfully transferred over to NEU:
Compiler Design (8 ECTS)
This course uses compilers as examples to expose students to modern software development techniques.
Informally, a compiler is a computer application that translates human-readable code to machine code. The course was taught 100% remotely over Zoom, with recordings posted afterwards, although physical rooms were still reserved at ETH if students decided to participate asynchronously from there. There were two lectures every Wednesday and Thursday, as well as exercise sessions every other Monday. Programming assignments and the final (session) exam both contribute 50% of the grade.
The material was conceptually difficult and the programming assignments consumed around 70-80% of all my time spent on academics (each taking tens of hours)! However, I learned so much through the course and am very thankful I took it. For most of the assignments, I partnered up with an ETH student from Bulgaria. We met both physically at the ETH computer science building and over Zoom, learning more towards the latter as the semester progressed.
For tech-savvy readers: the language of choice for assignments was OCaml, a functional language developed by the INRIA in France and used in some trading firms like Jane Street. The coursework began with simulating x86 assembly instructions, followed by compiling the LLVM intermediary language to x86, followed by compiling a C-like language to LLVM, before finally finishing off with implementing some compiler optimizations. Along the way, important topics like lexing, parsing, dynamic dispatch, control flow analysis, and garbage collection are touched upon. Ideas from my prior algorithms, theory of computation, operating systems, and functional programming courses were beautifully woven together.
Computer Networks and Distributed Systems (6 ECTS)
Students will receive the required insights into basic foundations on Communication Networks and Distributed Systems.
Now that everything is digitized, it becomes important to understand how networks like the Internet work under the hood. During the course add/drop deadline, I dropped my Algorithmic Game Theory course to add this one, as I felt that I lacked prerequisite knowledge for the former and that this was more applicable to my studies.
A combined lecture and exercise session took place onsite at UZH Oerlikon every Thursday morning. Being a night owl, I simply watched recordings posted afterwards to keep up with the class. The course material was split into three main phases: computer networks, distributed systems, and security. One thing I will say is that it was interesting learning about networks from a foreign perspective, given that conventions like well-known top-level domains (.edu and .com) are US-centric. 100% of your grade is the final exam in January, however you would qualify for a 10% grade boost if you submitted 10/13 homeworks on time with measurable effort. The assignments were exercise sheets consisting of technical trivia on information presented during the previous week’s lectures.
Foundations of Computing II (6 ECTS)
The goal of the course is to familiarize the student with formal methods of computing and their value for computer science and related disciplines, and to provide basic training in applying formal methods to many different kinds of problems.
This course is the meat of theoretical computer science — trying to formalize what problems computers can and cannot solve. The course was held every Friday afternoon at UZH Oerlikon, where the weeks would alternate between 3-hour lectures and 1.5 hour lecture and exercise sessions. All the lecture recordings were posted online afterwards, however my exercise session wasn’t, so I went in-person to attend those mainly. Like with networks, 100% of my grade was dependent on the final exam. However, you must pass at least 5 out of the 6 homework assignments to qualify to take the exam, each tediously written in a LaTeX file.
The course material is conceptually difficult and this course was my next biggest time investment after Compilers Design, but at least I did get a lot better at doing proofs! A new professor was teaching the course this semester at UZH, so my teaching assistants remarked that some of the material was not seen in previous iterations of the course. Nevertheless, they are very knowledgeable about the subject and did a great job helping me understand the overall material.
Human-Computer Interaction (6 ECTS)
This course will introduce students to principles and processes for designing successful interactive systems which enable users to effectively complete their tasks while being easy and fun to use.
As its name suggests, there is a human element to well-designed software and this course teaches best practices involving user interfaces. The layout of the course was unusual, to say the least. 60% of your grade depends on a semester-long group project — building a user prototype for a fitness themed app. The other 40% comes from the final exam, for which you need to pass 9 out of 11 participation quizzes to qualify to take. This class met rarely — even though class times were on Wednesday and Friday mornings every week, there ended up being no Friday classes at all. The few times class was held on Wednesday, the professor used the time to provide project feedback sessions and facilitate group activities. Every lecture and reading is posted online by week, watched at your own discretion.
There were several milestones optionally due for the project, if our group wanted feedback on our work thus far. My two roommates were also taking the course, so we formed a group along with two other UZH students. I felt that we worked well together as a group, as we clearly communicated and partitioned what tasks we were responsible for. Unfortunately, we thought that oftentimes, the assignments were unclear and feedback we received was inconsistent between teaching assistants and the professor himself.
Pedro and Reece from Chile and Canada were the first two people I met as my roommates. Initially, we would plan weekend outings and help each other understand the workings of Switzerland.
I quickly made friends with European and Chinese masters students who sat with me in my German course. Given that most of us were adjusting to our new city and schools, we would go on tours of Zürich after class ended.
The fall was also a great time to start in-person hackathons again, and Switzerland’s prime location enabled convenient travel to other European countries. I attended HackZurich in Switzerland, HackPrague in the Czech Republic, and HackCambridge in the United Kingdom (as the latter two were just a short flight away).
I applied to and joined a student organization called AIESEC, which is an international professional organization for young adults (similar to Greek life in the US). It helps facilitate international exchanges, develop leadership skills, and connect members to internship opportunities. Even though few of the activities had to do with my major, I signed up with the hope that it would help me find a diverse friend group at UZH and ETH. Little did I know that AIESEC would exceed my expectations. Through AIESEC, I attended meetings locally in Zürich and even nationally across Switzerland, so I got to meet people from other cantons. The average AIESEC member studied business or finance, and I thought it was very valuable talking to people who weren’t in my field of study.
When in Rome, do as the Romans do
These were some of the hardest exams I’ve taken in my life. Amongst my peers, the most popular way to study was to make a summary of all the course content and complete practice tests. If they had extra time, it was spent doing more practice tests or even making summaries of summaries. I followed in their footsteps.
Getting an “A” in a Swiss university (>= 5.5 out of 6) was much harder than at a typical US university. Exams were graded on a strict curve and it’s nearly impossible to get everything right. In fact, passing with a “C” (>= 4.0) on the first try/not needing to retake is already solid (many students I met told me about a course they failed before!) How Northeastern interpreted my transcript was less than ideal.
Classes ended right before Christmas, and my exams went from mid-January to mid-February. I got a little bit of traveling across Europe during the holidays, before I sacrified the rest of my break preparing for my first three exams. A few days before I returned from vacation, my roommate caught COVID-19 so I lived like a hermit who just studied every waking hour of the day.
My last exam for Compilers Design was a month out in February, so I could concentrate solely on that for a couple of weeks. At this point in time, my housing lease had expired, so I rented out an AirBNB for the remainder of my exchange to take this exam. The spring semester at NEU also started, so I did the bare minimum to keep up remotely.
The concept of taking exams after winter break and them bearing such a huge weight was probably the most foreign aspect to me. It was my first time taking courses where my entire grade counted on the final exam and that my winter “break” was more like an intense study session.
Academics were pretty theoretical. My compilers course involved a lot more lectures on graph theory than NEU’s equivalent course. My Foundations of Computing course taught algorithms such as automata minimization not even included in NEU’s equivalent course. But on the flip side, my networks course lacked programming assignments, which are a main emphasis in how networks is taught at NEU.
There is a lot less hand-holding when it comes to studies. Except in some lower division courses, there was no notion of “office hours” like in the US. To get help, you needed to take advantage of weekly exercise sessions and wait for a response on forums, sometimes to no avail. Good self-studying habits are a necessity. And indeed, the graduation rate at UZH/ETH is a great deal lower than at NEU according to Google. In Switzerland, university is only meant for certain types of people and it’s not expected for one to participate over an apprenticeship if the latter is more appropriate for a given career.
Getting settled in and dealing with culture shock was not bad. My quality of life was great and my surroundings peaceful. My social life was fantastic and it even made me question the common view that the Swiss were reserved — I believe if you put in the effort, people here will open up about themselves to you.
My time in Zürich was a fantastic way to start fresh in a post-pandemic world!