SER ICPC Contest Image

All contestants will use a customized linux environment based on the current Ubuntu Long Term Support(LTS) release. This environment is optimized for booting off a usb flash drive, so no modifications to the computer hardware are required.

This is similar to the World Finals contest environment which is also conducted in a linux environment.

Installation

Installation is as simple as imaging a flash drive. Instructions for both Linux and Windows are provided.

Linux

  • Download one of the compressed image files below
  • Decompress the image: gunzip ??.img.gz
  • Use dd to image a flash drive: dd if=??.img of=/dev/sdx bs=1M
    • Make sure to replace /dev/sdx with your actual flash drive

Windows

  • Download one of the compressed image files below
  • Decompress the image using a tool such as 7zip
  • Use USB Image Tool to write the image to a flash drive

Testing

Once you have imaged your flash drive, it can be used in any x86-64 computer capable of booting from a usb drive. UEFI boot or regular BIOS booting are both supported. The hard drive of the system will not be changed and is inaccessible to the contestants.

No password is needed to log in as the contestant user. The password for the icpcadmin account on the '-insecure' image is icpcadmin, and this user has root (sudo) privileges.

On the regular images this password will be distributed by your contest manager.

To test the various language implementations run the following command which runs the solutions for eight ICPC style problems. This lasts several minutes and should produce columns of green "PASS"es. (Note: You may have to run this as the icpcadmin user as the firewall may block the contestant from accessing all of the necessary data files)

wget -O - https://ser.cs.fit.edu/testing/test.sh | /bin/sh
Icon  Name                          Last modified      Size  Description
[   ] 2018-09-29_image-amd64.img.gz 2018-09-29 16:23 3.7G [   ] 2018-10-14_image-amd64.img.gz 2018-10-14 22:49 3.7G [DIR] guide/ 2018-11-02 10:54 -

For Contestants

Software and Versions

The environment is loaded with just about every programming language you might want to use as well as some of the more popular IDEs and editors. See below for a list of available software and tools.

Compilers

Language Version
ada7.3.0
c7.3.0-27
c++7.3.0-27
c#5.14.0.177
clojure1.9.0
dart2.0.0
D8.2.0-1
erlang20.2.2
f#4.1
fortran7.3.0-27
go1.10.1
gccgo8.2.0-1
haskell8.0.2
groovy2.4.15
Language Version
java10.0.2+13
lua5.2.4
js8.10.0
kotlin1.2.60
nim0.17.2
ocaml4.05.0
pascal3.0.4
prolog7.6.4
python 22.7.15
pypy5.10.0
python 33.6.6
ruby2.5.1p57
rust1.25.0
scala2.11.12

IDEs/Tools

Tool Name Version
Eclipse 4.8(Codename Photon)
Eclipse PyDev 6.5.0.201809011628
Eclipse CDT 9.5.3.201809121146
(G)Vim 8.0.1453
emacs 25.2+1-6
gedit 3.28.1
Atom 1.26.1-1~webupd8~0
GNU Make 4.1
Geany 1.32
Monodevelop 7.5.0.1254-0xamarin1+ubuntu1804b1
IntelliJ IDEA 2018.2.4 (Community)
Code::Blocks 16.01
Visual Studio Code 1.27.2

After The Contest

This contest image is designed to provide contestants with easy access to their work after the contest is over. Contestants can take the drive with them and boot it on their own machines to recreate the contest environment exactly. They can also copy files into the folder /mnt/usbdrive(or /home/contestant/usbdrive), which is a Fat32 compatible filesystem. In this way they can simply plug the flash drive in to any Windows/OSX/Linux machine and view the files directly.

After the contest the firewall restrictions will expire and the system will have general access to the internet again.


For Admins

Image configuration

Each workstation must be configured for each team with a few simple settings. The first time the environment boots it will run through a few prompts to set everything up. Just follow the prompts and everything will be configured. After configuration the system will run a self-test. If you see anything in red there's probably an issue. If you're seeing all green passes you're all set.

Logging contestants in to DOMjudge

During the initial workstation set up the DOMjudge credentials are configured. When the team clicks on the login page in DOMjudge, there will be a button near the top that says "Log in using computer credentials". The team can click this button to be logged in to their assigned team. Manual login of teams is still possible

Resetting after the practice round

After the practice round, it is important to reset all team workstations before the real contest begins. This is a simple process. Log the contestant user out on each workstation. Then log in as the Clear Team Account(teamreset) user using the same password as for the icpcadmin user. This will remove all files from the contestant user and reboot the machine. It will preserve your team name, printer ip address settings, and DOMjudge credentials.

Other tools

Logging in as the icpcadmin user is sometimes beneficial if you need to adjust various things. It's a full linux machine so you can do basically whatever you'd need to do.

Firewall notes

The firewall is configured to block the contestant user from accessing anything on the network except localhost. There is a squid proxy running that is configured by default and only allows access to certain restricted sites.

All other users/accounts have unrestricted access to the network. This allows for printing with cups or troubleshooting issues without having to remember to turn the firewall off or back on.

Troubleshooting

If the desktop doesn't load(stays at a black or gray screen), you can take the following steps to fix it