Hoppa till huvudinnehåll

Reseblogg IOI 2018

Postat den 01 Sep 2018
Denna blogg skrevs ursprungligen här. Allt innehåll har överförts till progolymp.se.

Reseblogg från IOI 2018, gymnasie-VM i programmering, som hölls i Tsukuba, Japan.

Var är Sven?

Välkomna till resebloggen från årets programmerings-OS (IOI)! Vi befinner oss denna gång i Japan, närmare bestämt staden Tsukuba. Likt förra året består ledarteamet av mig (Johan Sannemo) och Fredrik Niemelä. Årets landslag består av fyra kämpaglada svenskar: Fredrik Ekholm (guld i BOI 2018, brons i IOI 2017, brons i BOI 2017) Björn Magnusson (silver i BOI 2017) Hugo Eberhard (brons i BOI 2017) Erik Amirell Eklöf På pappret ett hyfsat starkt lag. Det är inte alls orimligt att vi lyckas repetera förra årets starka resultat med medaljer till hela laget! Fredriks BOI-guld lämnar dessutom möjligheten för medaljer av högre valör öppen. Resan Årets resa var lång – Tokyo är hela 7 tidszoner österut. Totalt tog vi tre olika resvägar; jag och Fredrik åkte från Arlanda, Fredrik åkte från USA och övriga från Kastrup. Alla utom Fredrik möttes dock upp vid Zurich där vi mellanlandade. I Zurich upptäcktes resans första allvarliga problem. Hugo hade glömt att ta med den svenska maskoten Sven (den lilla björnen, inte den stora). Ledarlaget misstänker att detta kommer drabba både svenskarnas tävlingsmoral och möjligheten för fnissiga bilder till bloggen negativt.

Försenade svenskar i Zurich

Vid avresan från Zurich visade det sig att vårt plan blev över två timmar försenat p.g.a ett ”tekniskt fel”. När vi satt i planet och väntade berättade kabinpersonalen att det var p.g.a en ”flygshow” som pågick över flygplatsen, vilket gjorde att plan inte kunde lyfta. Man kan ju tycka att det är en dum idé att blockera luftrummet för en av Europas stora flygplatser i två timmar. Vi kom fram till Tokyo-Narita flygplats på förmiddag japansk tid.

Glada svenskar i Japan

Från flygplatsen åkte vi sedan till ett av de två deltagarboende för registrering. Nytt för i år är att deltagarna anmäler när de vill gå på toa genom tävlingssystemet istället för att räcka upp en hand. De fick därför följande förvirrande formulär att fylla i:

Nu kanske ni frågar er vad som är förvirrande med formuläret. Ni kanske tycker det är helt uppenbart att alternativen står för ”jag vill att en manlig guide följer med mig till toan”, ”jag vill att en kvinnlig guide följer med mig till toan”, och ”jag bryr mig inte vem som följer med mig till toan”. Det visade sig dock att om man inte brydde sig vem som skulle följa med en till toan skulle man kryssa i alla tre rutor. Vad händer då om man kryssar i bara det tredje alternativet? Ingen av registreringsfolket visste. Erfarenheten överlag är att Japan är ett land där byråkratin styr. Formulären är många, underskrifter avkrävs frekvänt och principen ”inga system är för komplicerade så länge de kan skrivas ner i form av diagram i en bok”. Se ex. diagrammet över ”hur ni ska åka bussar mellan olika platser”:

Efter en kort middag vid registreringsplatsen åkte vi buss till våra hotell. Tyvärr bor ledarna och deltagarna en 20 minuters bussresa från varandra. Detta tycker vi ledare är lite synd. Deltagarna verkar dock ha det kul ändå, så det kanske är så att vi ledare inte är lika roliga som vi själva tycker. Öppningsceremonin Dagen efter ankomst var det dags för öppningsceremonin. Vi fick inte ta med oss paraplyer in till öppningsceremonin, eftersom en Väldigt Viktig Person skulle närvara. Säkerheten in i konferenscentret där ceremonin skulle hållas var hög, med metaldetektorer och ett flertal poliser. Vi blev något stötta av alla förseningar. Ceremonin började inte förrän 10:30, men vi hade alla redan satt oss i salen vid 9:30. Upplevelsen stod i stark kontrast till att Japan skulle vara ett punktligt land. Både jag och Fredrik tyckte att öppningsceremonin var ovanligt smärtfri. Den var hyfsat kort (under 1:30), alla tal hölls korta, och den Väldigt Viktiga Personen visade sig vara prinsessan Kako , medlem av japanska kungafamiljen. Kanske visar det på en annan syn på kunskap och IT i Japan jämfört med Sverige (det känns svårt att tro att Carl Philip skulle hedra ett svenskt IOI med sin närvaro). Utöver de korta talen hölls även ett antal sång- och dansuppträdanden som vanligt. Vi blev något chockade när det visade sig att IOIs ”ambassadör” tillika första artist att uppträda var den virtuella humanoida personan IA ( se uppträdande ). Efter öppningsceremonin bjöds vi på lunch och gjorde oss sedan redo för det första av de s.k. GA-mötena. Jag sprang snabbt iväg till närmsta 7-11, som verkade vara det enda stället inom 10 minuters promenad som serverade kaffe (ett av mina mer väldokumenterade beroenden ).

kaffe :3

GA-mötet Alla länders ledare deltar i en generalförsamling (GA, ”general assembly”) under varje IOI. Generalförsamlingen är tävlingens beslutsfattande organ. GA-mötet inleddes som vanligt med diskussion om regler. Varje år föreslår de internationella kommitteerna förändringar till reglerna, som generalförsamlingen röstar om innan tävlingsstart efter långa, eftertänksamma diskussioner med väl underbyggda argument (heh). Vi i den svenska delegatationen mötte årets regelförslag med bestörthet; Fredriks passionerade godisanförande från 2017 hade inte alls hörsammats – godis var fortfarande förbjudet för deltagarna att ta med in under tävlingen! Detta trots att GA under förra året tydligt gav de styrande kommitteerna i uppdrag att undersöka hur de kunde göra det möjligt för deltagarna att ta med godis. I år var vi dock inte ensamma i vår godiskritik. Rysslands lagledare Andrey Stankevich (en av de mest kända problemskaparna inom tävlingsprogrammeringsvärlden) invände snabbt – de ryska deltagarna uppskattade inte den japanska matkulturen, och ville gardera sig med att ta med eget godis in. Återigen visade sig godisets vara eller icke vara en mycket engagerande fråga. I princip verkar alla delegationer vara för godis, men de riskaversa kommitteerna emot (det är ”jobbigt” rent logistiskt att hantera). Vår godisdiskussion avbröts dock i förväg av Kazakhstan, som bestämde sig för att invända mot ett annat regeländringsförslag. Det tekniska teamet gillar inte att uppgifter kan ha decimaltal som poäng, eftersom det är ”jobbigt” rent kodmässigt att hantera. De ville därför att poängen för varje uppgift skulle avrundas till heltal. I efterhand visade det sig att det är en riktigt dålig idé att dra in 143 nitiska, algoritmiskt lagda ingenjörer i en diskussion om decimaltalsavrundningar. Diskussionen pågick i över 20 minuter, och slutade i en kompromiss; poängen ska avrundas till två decimaler (denna ändring visade sig dock senare inte vara möjlig, utan istället tillämpades heltalsavrundning mot närmsta heltal, där halvtal avrundas mot närmsta jämna heltal). Efter avrundningsdiskussionen återupptogs snacksdiskussionen, men den bordlades snabbt genom att delegera frågan till värdkommitten (som skulle undersöka om det verkligen är ”jobbigt” rent logistiskt att hantera). Det blev sedan dags för det mest kontroversiella ändringsförslaget. Under en tävling kan deltagarna vanligtvis inte se någon information om hur det går för de andra deltagarna. De vet inte heller i vilken svårighetsordning problem är i. I Programmeringsolympiaden är det tvärtom. Resultaten är där publika fram till sista timmen, och uppgifterna är ordnade efter svårighet enligt juryns bedömning. Kommitteerna föreslog att deltagarna skulle få se hur ”den genomsnittliga poängen för varje uppgift” förhåller sig till varandra (t.ex ”uppgift A har 30% av poängen, uppgift B har 50%, uppgift C har 20%”). Motiveringen är att deltagarna ska kunna se ifall de har missat vilken uppgift som är den lättaste.  Detta förslag har fått mycket uppmärksamhet inom IOI-communityt.​ Frågan var en riktig vattendelare bland länderna, och kommitteerna stängde ner diskussionen genom att säga åt oss att vänta tills efter övningsessionen som snart skulle följa för att se vad deltagarna sa. Vi drabbades dock av fler förseningar — övningssessionen blev 1-2h försenad (vid det här laget har förseningarna hopat sig, och vi har gett upp att hinna översätta morgondagens uppgifter i god tid). Practice Session Innan den första av de två tävlingsdagarna hålls en övningssession (som är lika mycket övning för deltagarna som för arrangörerna). Under sessionen får alla deltagare chansen att bekanta sig med datorerna, operativsystemet och onlinedomaren som används under tävlingen. Eventuella problem som uppstår anmäls till arrangörerna som får en chans att fixa oförutsedda problem i systemet (t.ex. fungerande debugging inte i editorn Codeblocks, som vanligt). Som blivit traditionsenligt för det svenska laget försökte vi larva oss genom att ställa dumma frågor genom frågesystemet i onlinedomaren. Vi började enkelt med en fråga på svenska: ”kommer vi få uppgifterna på papper imorgon?”, med förhoppningen att de skulle fråga oss ledare om vi kunde översätta frågan. Det visade sig dock att de helt enkelt använde Google Translate och svarade snabbt ”YES” tillbaka. Nåja. Skam den som ger sig. Följande fråga blev ett försök att använda svenska för komplicerad för Google Translate (t.ex. ”debuggningsverktyget är i icke funktionellt skick”). Ironiskt nog visade det sig att den engelska översättningen blev lättare att förstå en den svenska. Fredrik tog det hela ett steg högre och ställde en fråga på rövarspråket, vilket dock besvarades med ”INVALID QUESTION” — antagligen p.g.a det stora antalet ” o ” i frågan. I slutet av sessionen skulle deltagarna lämna in allt de ville ha med sig in i tävlingssalen imorgon (tangentbord och möss). Detta till synes enkla moment var början till den djupaste diplomatiska krisen mellan Sverige och ett IOI-värdland någonsin (och då har vi ändå spenderat de senaste 5 åren med att klaga på att vi inte får ta med oss godis in i tävlingen). Björn ville, förutom själva tangentbordet, också lämna in ett handledsstöd i trä som han använder med tangentbordet. Ett högst relevant, t.o.m i vissa fall nödvändigt ergonomiskt tillbehör enligt vissa, men en blatant regelöverträdelse enligt värdlandets tekniska kommitte; det stod ju trots allt inte explicit ”träplanka” i  listan över saker man får ta med in under tävlingen. Man kan ju argumentera för att det var en enkel översikt, att ett tillbehör till sitt tangentbord så centralt som ett handledsstöd självfallet ska vara tillåtet. Det tyckte inte de japanska värdarna. Efter att ha eskalerat frågan ända upp i både den internationella tekniska kommitten och den internationella vetenskapliga kommitten lyckades vi, efter flera timmars argumentation, få det godkänt. En liten seger för Sverige, en stor seger för common sense. Öppningsdagen avslutas sedvanligt med att vi ledare översätter uppgifterna för den första tävlingsdagen imorgon. Tävlingstiden är 9-14 japansk tid, d.v.s 0-5 svensk tid. Det är lite oklart om vi kommer skriva en liveblog i.o.m den något obekväma tiden för hemma i Sverige, men vi kommer åtminstone skriva en kort sammanfattning över tävlingen!

Första tävlingsdagen

Enligt uppgift startade tävlingen 40 minuter för sent p.g.a ”logistiska problem”. Vi har, 45 minuter efter den försenade starttiden fortfarande inte några liveresultat att titta på. Alla ledare sitter istället och otåligt tittar på föredragen i ”IOI-konferensen”, dit länder skickat in forskning om undervisning om algoritmik för ungdomar. Vi har alltså ingen aning om hur det går för deltagarna än.

Den ursprungliga livebloggen kördes via 24liveblog.com och innehållet finns tyvärr inte längre bevarat.

Utflykt till Tokyo

Mellan tävlingsdagarna är den första utflyktsdagen. Utflykten var någon slags resa genom Tsukuba till intressanta resmål. Vi tyckte dock Tokyo var ett mycket mer intressant resmål, och åkte in dit istället med Tsukuba Express (ett snabbtåg som går mellan Tokyo och Tsukuba). Dagen blev hyfsat kort p.g.a restiden, men vi hann med några nyckeldelar; japanska musikspel på arkad i nördkvarteret Akihabara god sushi kaffe på 7-Eleven (ok, det var bara jag) inköp av yukatas i shoppingdistriktet Shibuya Se nedan bilder för mer utförlig beskrivning.

Liverapportering från dag 2

Den ursprungliga livebloggen kördes via 24liveblog.com och innehållet finns tyvärr inte längre bevarat.