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.