Welcome to ETROPY

The goal of this platform is to practice your problem-solving skills and become fluent in the programming language(s) you are using: i.e. the syntax and basic data structures.

This website is in English for the simple reason that it is easier for us to use it for different groups of students but also for you because you need to learn the English names of programming concepts, algorithms, data structures, error messages, etc. such that you can search for more information online.

Programming is something you can only learn by actually doing it and regularly practicing. This website offers mainly easy and moderately difficult programming challenges which you can solve. Most tasks on this platform follow the format of programming competitions. This means that inputs are read from the standard input and you are supposed to give an answer by writing it to the standard output. This also means that you are supposed to provide a fully functioning program and not just the definition of some function that solves the problem. We will provide you with starter code for every problem to help you read the input and show what kind of output is expected.

The focus is usually on solving the problem at hand, not on solving it in any particular way. Unless explicitly mentioned, you are allowed to use any built-in function your language provides. This can be summing elements in a list, finding the largest or smallest element, etc. If we ask you to implement a function for which your language provides a built-in solution we do not check whether you used that one or wrote your own. So just be honest there. On an exam we WILL check and you will fail the question if you used the built-in function.

A nice thing about this platform is that you can directly write code in the browser and have it validated against some pre-defined test cases. The downside is that this makes it sometimes difficult to debug your code. When your code fails for whatever reason, the error log is sent back so you can inspect it. You can use this to obtain intermediate results of your code running on our server. If you print messages to the standard error channel, these messages are included in the error log. More information on how to do this is given in the start code for each supported programming language.