Door Jeffrey van Maurik

Hersens pijnigen op het EK Programmeren in Delft

26-11-2012 • 16:15

99 Linkedin

In het afgelopen weekend vond op de TU Delft het Noordwest-Europees Kampioenschap Programmeren plaats. Bijna negentig teams van drie personen probeerden zo veel mogelijk algoritmische problemen zo goed mogelijk op te lossen, met als hoogste doel om naar de finale in Rusland uitgezonden te worden.

Reacties (99)

99
94
50
10
0
4
Wijzig sortering
De officiele website (met daarop de opgaven, voor wie geinteresseerd is) is: http://2012.nwerc.eu/
Super, ik was namelijk erg benieuwd. De opdrachten lijken veel op onze tentamen vragen voor software testing :) best grappig om er nog eens naar te kijken. Leuk topic en leuk om de sfeer te zien :)
Anoniem: 417179
26 november 2012 16:57
Heel tof. Ze zouden eigenlijk de problemen online moeten zetten zodat buitenstaanders zich eraan kunnen wagen
Waarschijnlijk komt er ook nog testdata beschikbaar, ergens..

[Reactie gewijzigd door Sqlr op 26 november 2012 17:09]

Jazeker. We zijn er mee bezig, en we zullen ook onze referentieprogramma's publiceren. Dat laatste is nog een beetje uitzoekwerk... Maar over een dag of twee, drie zal alles wel beschikbaar zijn.

(NB ik ben het jurylid wat je in het filmpje ziet)
Er was tegelijk met de 'echte' wedstrijd ook een online content waar iedereen aan mee kon doen. Inzendingen werden in het zelfde systeem beoordeeld. Volgende keer dus vooral zelf een poging wagen!
Er is een online judge systeem beschikbaar met honderden of zelfs duizenden vergelijkbare opgaven. Dit zijn veelal historische opdrachten van regionale, nationale en internationale competities.

http://uva.onlinejudge.org/
Lol, de prijzen zijn machten van 2, dus €512 en €1024, dat vind ik wel grappig :P
Heeft 't NWERC dit jaar overgenomen (of was misschien ook al in Bremen) van het BAPC (Benlux Algorithm Programming Contest, de benelux voorronde voor het NWERC: www.bapc.eu)). Maar is indd een leuk aantal: het is niet deelbaar door 3 terwijl een normaal team uit 3 mensen staat... Een van de standaard vragen is dan ook aan winnende teams "wat doen jullie met de overgebleven 1 cent?".

PS voor de redactie: in het Engels uitgesproken "e" is de letter a in het alfabet en dus niet de e ;-).

[Reactie gewijzigd door Electrowolf op 26 november 2012 17:18]

Voor die 1 cent koop je iets en dat deel je door 3.
De hoofdprijs is 1 Gibieuro, of Gi€
Was het maar zo'n feest, zo rijk is de organisatie niet ... :)

[Reactie gewijzigd door p.de.clown op 26 november 2012 21:06]

Dit is ongetwijfeld het moeilijkste: "A space should separate the percentage number and the subsequent percent sign." :+
Ha, dat is mijn opgave (ik ben het jurylid in het filmpje, en ik heb die opgave bedacht).

Ik denk dat de meeste mensen onderschatten hoeveel werk het is om zo'n opgaveset te maken, daar gaan letterlijk honderden uren inzitten. Over iedere punt en komma wordt nagedacht, want als er ook maar iets dubbelzinnig kan worden opgevat, en je laat er een horde slimme whizkids op los, dan gaan ze het ondermijdelijk verkeerd lezen of interpreteren.

Dit jaar moesten we bijvoorbeeld een vraag van een deelnemer beantwoorden over opgave F ("Foul Play"). Daarin staat niet 100% duidelijk dat er altijd een toernooischema bestaat waarbij het gewenste team wint, en ze vroegen of ze daarvan uit moeten gaan. Terechte vraag, dus daar hebben zij (en de andere teams) netjes antwoord op gekregen.
Even snel de eerste opdracht bekeken, maar dit is duidelijk meer een wiskunde probleem oplossen dan programmeren. Natuurlijk kun je nadat je de wiskunde ervan beheerst en de oplossing hebt, die oplossing gaan uitwerken in een programma, maar veruit het meeste programmeren heeft in de praktijk helemaal niets met wiskunde te maken. Ook de ingewikkelde aspecten van software niet!

Ze zouden dit wat mij betreft dan ook geen programmeer wedstrijd moeten noemen en het is schokkend dat de deelnemers dit zelf wel zien als programmeren. Zo testen ze niet op onderhoud, snelheid, consurrency issues, en beperken ze zichtzelf tot slechts een enkel algoritme wat slechts een miniem deel is van normale software. Het enige wat ze controleren is de uitkomst en mogelijk hoe snel men er mee klaar is.

Wat ze zouden moeten doen is de wiskundige oplossing loskoppelen van het programmeren. Waarbij het programmeren het efficiënt uitwerken van een gegeven oplossing is door middel van de juiste algoritmische keuzen, modellering en gebruik van datastructuren. Als men dan een betere oplossing bedenkt, mooi, bonus...maar dan testen ze in ieder geval programmeren in plaats van beheersing van wiskunde en de daarbij gebruikelijke taal. Ook meer complete software moeten moeten schrijven die dan wordt beoordeeld door experts uit het bedrijfsleven zou mooi zijn.
Daar zijn ook wedstrijden voor. Die zijn heel anders van aard; bijvoorbeeld veel subjectiever.

> Zo testen ze niet op onderhoud, snelheid, consurrency issues,

Onderhoud (onderhoudbaarheid) is geen issue hier, inderdaad. We testen zeker wel op snelheid, dat is juist een zeer centraal aspect van de wedstrijd; als de programma's een te hoge ordecomplexiteit hebben krijgen de deelnemers een afkeuring op basis van "time limit exceeded". Concurrency issues zijn uitgesloten; oplossingen moeten strikt single-threaded, single-process zijn.

Je hebt zeker gelijk dat deze wedstrijd vaardigheden test die aan de wiskundige / "computer science" kant van de informatica liggen. Dat deel is inderdaad niet zo zichtbaar voor de meeste IT'ers, die zijn vooral bezig met het in elkaar legoën van prefab componenten en libraries.

Er zijn echter ook mensen die de componenten moeten maken, en de kernel van het OS, en de programmeertalen. Dat is meer het soort werk waar de mensen die aan deze wedstrijd meedoen zich voor interesseren.
Waarom moeten dit soort rapportages altijd als een filmpje?
Boeiende materie maar ik ga geen zeven minuten kijken voor wat flauwe muziekjes en nietszeggende soundbites - wat de eerste minuut lijkt te suggereren. Zijn er ook transscripties van die filmpjes beschikbaar?
Omdat niet alles zich even goed leent voor tekst. Tekst is in sommige gevallen voor ons als redactie omslachtiger dan een video. Bovendien kun je met video de sfeer veel beter weergeven, zoals hier goed gelukt is. Als we de informatie die we uit alle interviews hadden moeten verwerken in een artikel, had dit aanzienlijk meer tijd gekost dan nu het geval was. Grote kans dat het artikel er dan op voorhand al niet gekomen was, omdat de agenda's al vol genoeg zitten. Op deze manier kunnen we het dus extra doen.
Hulde hoor voor het filmpje, jullie hebben de positieve sfeer goed gepakt vind ik ... Een hoop slimme gasten en meiden die doen waar ze lol in hebben, mooi toch.
Ik vond het filmpje ook tien x beter. Als het tekst was geweest was ik er niet aan begonnen. Nu toch een leuk beeld gekregen. :D
Ik had die programmeer babe ook niet willen missen... :9
Voor mij is het altijd al video > tekst geweest.

Met video kan je gewoon veel meer naar mijn gevoel; a picture says more than a thousand words, en als je dan 29,7 van die pictures hebt PER SECONDE .. you do the math ;)
ben ik het mee eens, maar dat neemt de meeste inhoudelijke bezwaren niet weg...
+1

Van mij mag dit ook gewoon in tekst beschikbaar zijn zodat je het tussen je werk door kunt lezen :)
Nu kan je het tussen je werk door luisteren, even better! :)
Ik vind zo'n filmpje eigenlijk ook wel prima. Ik zou het alleen wel leuk gevonden te hebben om iets technischere info te krijgen. Bijvoorbeeld, in welke talen mag men programmeren, wat staat er allemaal op zo'n pc waarop je de opgaves mag maken, en wat zijn de grootste moeilijkheden waar de deelnemers tegenaan lopen?

Ook zou ik een voorbeeldje van een opgave leuk hebben gevonden.. :)
Eens. Een artikel kan ik gewoon lezen op mijn mobiel. Een video kijken gaat natuurlijk niet (geen Flash)
Een video kijken gaat natuurlijk niet (geen Flash)
We hebben een superkekke html5-videoplayer hoor.
Die niet werkt onder 4.0.4 stock Galaxy Note / 4.1 JellyBam Galaxy Note. Geen idee waar dit aan ligt, mijn voorkeur gaat in ieder geval uit naar het oude systeem dat ook kon streamen. Dat ging prima met MX player bijvoorbeeld. Ik gebruik trouwens de standaard Android browser (geen fratsen, dat scheelt... dacht ik).

Wat meer achtergrond info zou inderdaad fijn zijn, al is een vlugge google zoekopdracht ook maar 6 muisklikken veder.
Waarom in een filmpje? Het zal wel niet de reden zijn, maar een leuke bijkomstigheid is natuurlijk de advertentie inkomsten van de reclame aan het begin.
Rond een tekst kan ook reclame staan.
leuke teamnaam ook: getRandomNumber(){return 4;}
false'); DROP TABLE teams; ook een mooie :P
En beide zijn referenties naar XKCD strips.

Random Number

Exploits of a Mom
Nou dat viel ff tegen, volgend jaar beter. Maar 1 probleem opgelostf (op BAPC 3 solvs) , volgende jaar beter. Over het prijzen geld: het team dat eerste is geworden op het BAPC dat slechts 1 vraag niet op kon lossen bestond uit één persoon, dus dat 'team' heeft geen last van het 1 cent probleem.

[Reactie gewijzigd door martijn2008 op 27 november 2012 20:19]

In het interview praat hij de hele tijd over 'we' en er stonden volgens mij ook 9 mensen op 't podium?

In ieder geval een zeer mooie prestatie. Ik betwijfel of het mij zou lukken om zelfs 1 van die opgaven goed te krijgen in 'slechts' 5 uur tijd :P
Teams bestaan uit (maximaal) drie personen. De meeste teams komen met een coach, meestal een docent van de universiteit of hogeschool waar ze studeren. Het winnende team had niet minder dan drie coaches, die hadden het erg professioneel aangepakt!
Is dat geen vals spel? De coaches kunnen dan het werk doen met de drie studenten als reglementaire dummies.
Dat kan niet, aangezien tijdens de wedstrijd de coaches niet bij de teams mogen en de opgaven pas aan het begin van de wedstrijd bekend worden gemaakt.
Aha, maar wat valt er dan nog te coachen?
Het ging in de reactie van Martijn ook om de winnaar van het BAPC ;)
Leuk. Vooral Team 9 op het scoreboard aan het einde B)
Hey, goed gezien. Er staat: "false') DROP TABLE teams; --"

:)
Nice, hij zegt: "Problem A" en de slide van "Problem E" wordt getoond in het filmpje. :?
Probleem A was ook een stuk moelijker dan probleem E, dus ik gok ook dat daar A bedoeld werd ipv E.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee