Distributed Computing
ETH Zurich

CodeJam Laboratory (FS 2024)

In this lab, you will practice writing computer programs in a fun competitive environment. The problem statements tell a short story, describe a puzzle, and clearly define input and output. Your short program must compute the solution in a few seconds. Besides being fun, competitive programming is a great way to improve your programming and problem solving skills. Competitive programming problems are also used frequently in interviews for software developer positions.

At the beginning of each lab, the supervisors will introduce you to a specific kind of programming problems. Subsequently, you will solve a series of problems of this particular type. The problems will be hosted on the Codeforces platform. Please register an account on the Codeforces platform to attend the lab (and choose your username or profile name such that we can map it to your real name). You may use any programming language supported by Codeforces, but we recommend C++ or Python that you may know from ITET lectures.

Lab time: Tuesday 14:00-18:00 (see dates below), ETZ D96-1

Lab language: German or English

Lab organization: Robin Fritsch, Andrei Constantinescu, Lab supervision: Noah Pfenniger, Mihail Lavric

Lab registration: Link If you have missed the deadline or want to unregister, please contact the lab supervisors (Noah Pfenniger, Mihail Lavric).

Passing requirements: For each lab, you need to solve a certain number of the problems to pass the lab. Alternatively, you also pass for staying the whole duration of the lab. At the begining of each lab, the assistants will introduce the topic of the lab. They will also give you hints and be available for questions during the lab. And there will be chocolates for solving problems first during the lab!

It is also possible to partipate remotely. To do so, you must solve suffiently many problems in the Codeforces contest by 5pm on the Friday of the week of the lab. If you have a good reason (e.g., illness) preventing you from attending in person, email us before the start of the lab.

Rules: You may use any resources you find online and work together with your colleagues. However, everyone must write their own programs. Do not copy other people's code!



Lab Topic Lab Date Passing Requirement
Lab 1 Introduction 05.03.2024 4 out of 6 / stay the whole lab
Lab 2 Greedy 12.03.2024 4 out of 6 / stay the whole lab
Lab 3 Graphs 26.03.2024 4 out of 6 during the lab / stay the whole lab
Lab 4 Dynamic Programming 09.04.2024 4 out of 6 during the lab / stay the whole lab
Lab 5 Binary Search (tentative) 23.04.2024 TBD
Lab 6 TBD 07.05.2024 TBD

Further Resources: If this lab has sparked your interest in competitive programming, you may also want to take a look at ACM VIS and the Google Developer Student Club at ETH. Additionally, you can find regular competitions and lots of practice problems on Codeforces.