Department of Computer Science | Institute of Theoretical Computer Science
For the Algolab, we use
This page is here to help you to get these technical details out of the way as quickly and painlessly as possible.
The computer rooms CAB H56/H57 and HG E26.1 are equipped with the necessary software and are reserved for Algolab during the problem-of-the-week timeslot on Monday.
We recommend that you use the Fedora operating system on these machines. On those C++, BGL and CGAL should run fine and with recent versions.
Just download the most recent g++, boost and cgal packages from your favorite package manager. On Ubuntu for instance, just run
sudo apt-get install build-essential libboost-all-dev libcgal-dev cmake cmake-data
First install Xcode (via the App Store) which includes a recent version of the LLVM C++ compiler. To install Boost and CGAL, we recommend either Mac Ports or homebrew which offer packages for both of them.
Getting everything to run with cygwin can be a pain. We recommend that you use our VirtualBox image, see below.
You can download a VirtualBox image with the libraries preinstalled here!
The goal of this virtual machine is to provide you with a hassle-free way to get started with the BGL and CGAL libraries for the Algorithms Lab.
We use Ubuntu as the operating system. A program called VirtualBox allows you to use it within your existing operating system. This guide is mostly for users of Windows and OS X. If you are using Linux, it's probably easier to just install the necessary packages for Algolab directly on your machine. But if you don't want to fill your machine with CGAL and Boost packages that you only need for the course, then this virtual machine (VM) might also be useful for you.
Important warning: Updating Ubuntu within the VM might lead to instabilities with VirtualBox. We recommend to just use the VM as it is.
Importing the Virtual Machine into VirtualBox
If you get an error when importing the appliance which says that the "compressed image is corrupted", then something probably failed when downloading the file algolab64.ova. In that case it should help if you just download algolab64.ova again. If that does not help, try another browser or do it while connected at ETH.
Where can I submit?
Just click on the name of the problem on the exercise overview page on Code Expert.
Run errors only on the judge
If you access a vector outside of its bounds, i.e. at V[V.size()], then many different things can happen. On your local machine, e.g. if it is running macOS, it might seem to run fine, your program reads a zero value and continues. On Code Expert however, your program most likely crashes and gets the verdict "RUN ERROR". Luckily, there is an easy way to locally check whether you run out of the bounds of any standard library container: Just compile with the g++ flag -D_GLIBCXX_DEBUG. If you are using clang++ (default on macOS), then use -D_LIBCPP_DEBUG=0 instead.
No support for bundled properties
Bundled Properties could be nice to cleanup the template code in our graph definitions. Unfortunately, there is no obvious way on how to make them work with the flow algorithms that we need for the course, so we currently recommend that you do not use them.
Can I bring my own keyboard (or any other custom hardware)?
No.
What material is available during the exam?
Everything on the course documentation page (lecture slides, code templates, library manuals) is available during the exam. The moodle and your past submissions are NOT available. If you would like to propose some helpful scripts to all the students to be added here, please post it in the Moodle forum "Exam Tools".
I cannot access the documentation on algoab.inf.
The course documentation is only available from within the ETH network. If you get an Error 403, please use ETH VPN.