Hoofdcategorieën

Nederlands Kampioenschap Programmeren dit jaar op de UT

Door Matthijs Abma, woensdag 22 oktober 2003 22:19
Bron: NKP2003, views: 1.159

Aanstaande zaterdag wordt op de Universiteit Twente het Nederlands Kampioenschap Programmeren (NKP) gehouden, zo meldt de organisatie in een persbericht. Het NKP wordt dit jaar georganiseerd door Inter-Actief, de studievereniging van de faculteit Informatica. Honderd programmeurs proberen zaterdag acht praktische problemen op te lossen door daar een programma voor te schrijven. De opdrachten zijn bedacht door verschillende docenten en studenten en elk team heeft de beschikking over slechts één computer. De deelnemers zijn afkomstig van negen universiteiten en hogescholen. Volgens de organisatie is het niveau dit jaar weer vrij hoog. Het wordt de verschillende teams dus weer flink lastig gemaakt:

NKP2003 logo'De afgelopen jaren is gebleken dat het niveau aardig hoog ligt. Geen van de teams kreeg alle opgaven opgelost, ook de kampioen van vorig jaar niet.' Wat dat betreft liggen er kansen voor de Twentse programmeurs: 'We groeien in de strijd. Vorig jaar werd één van onze teams zelfs vierde. Nationaal gezien is dat een heel knappe prestatie.'
Volgende 22:39
Vorige 22:06

Reacties

«  1  2  »


Valt mee hoor... er zal geen internet beschikbaar zijn in de zaal (wordt compleet afgesloten) is trouwens ook een vaste regel van 't NKP dat er geen internet beschikbaar is.

* 786562 LEiPiE

Script kiddies hebben hier niks te zoeken natuurlijk. Deze wedstrijden zijn voor echte programmeurs, mensen die Dijkstra's werk kennen, Knuth's 'The art of computer programming' op de plank hebben staan etc. Dit soort wedstrijden straft de gemakzuchtige programmeur die met O(N^2) door een array heen loopt genadeloos af, en de programmeur die het in O(N) kan beloont, al kost dat 100 regels extra.

De basis van programmeren zijn nog steeds de simpele algoritmes. Een eenvoudige for-loop door een array heen, waarbij je goed let op initialisatie en geen fencepost-errors maakt.
Meedoen heeft alleen zin als je zo uit je hoofd een quicksort in pascal of C kan intikken, weet wat een dubbel gelinkte lijst is, etc.

Hmm, interesting. Is elk jaar weer leuk om over te lezen en te horen.

Vierde plaats landelijk gezien? Was dat met of zonder meetelling van de "professionele" teams?


Volgens mij doet er geen kipi! mee hoor .... mail anders even naar de organisatie ....

zijn er ook nog voorbeelden van vorige jaren te bekijken ergens? Kon namelijk nix vinden en zou wel is willen kijken wat ze nou precies vragen.

edit.. duh.. zoek anders eerst op de website zelf.. |:(

Ik ben benieuwd welke taal ze gebruiken om te programmeren.
Wordt er van tevoren vast gesteld welke deze is? Of mag ieder team het voor zichzelf bepalen?

En waar wordt erop gelet bij het beoordelen van de opdrachten?

"3.3.2 Oplossingen moeten geschreven worden in C/C++, Java of Pascal."

Zie ook http://www.nkp2003.nl/.

In de regelementen stond lange tijd dat je alleen in C, C++ of Java mocht programmeren. Pascal wordt in de regelementen die in het programmaboekje staan vermeld niet eens genoemd. In dat boekje staat vervolgens wel doodleuk dat Pascal beschikbaar is, maar dan alleen onder Linux.

Ik kan alleen hopen dat de organisatie in Enschede het dit maal beter doet dan de organisatie van het NKP 1998 (ook gehouden in Enschede).

Groningen staat 6 maal op de beker van de 11 maal dat de wedstrijd gehouden, dus daarom ook maar even twee links naar succesvolle NKP's gehouden in Groningen 8-)

http://www.nkp2000.nl
http://www.wing.rug.nl/~nkp

Pascal is toegevoegd na een e-mail van mij naar de organisatie waar de Pascal compiler was. Pascal is één van de drie talen, de overige zijn C en Java, die internationaal op programmeerwedstrijden gebruikt worden.

afaik was dat 99, en dat was idd behoorlijk ruk georganiseerd. Nu ben ik natuurlijk wat biased richting linux systemen, maar dat windows systeem lag er daar 1 uur in de wedstrijd al uit! Je kon je oplossingen wel inleveren, maar je hoorde vervolgens nooit of ze wel juist waren! Daar heb ik me later nog behoorlijk over lopen opwinden eigenlijk.

[edit] @jvo
Owh ok, ik zal nog wel ff op m'n kubus tshirt kijken waneer het was ;)

Dat was niet 1999, want toen was er geen nk. Er was in dat jaar alleen een ek, in Den Bosch.
edit:
En inderdaad ook een wk natuurlijk.

Er kan geprogrammeerd worden in C, C++ en Java, en Pascal, hoewel de laatste ivm restricties die freepascal aan je OS oplegt alleen onder Windows te gebruiken is.

Bij het beoordelen van de resulaten wordt natuurlijk gekeken of het resultaat is wat het zou moeten zijn?
Degene die er het dichtste bij zit of het gewoon goed heeft zal de winnaar van die ronde zijn?

Het programma wordt gedraaid op een (voor de programmeurs onbekende) testset en de uitvoer wordt vergeleken.
De score wordt in de eerste plaats bepaald door het hoogste aantal goede antwoorden en in de tweede door de laagste tijd. (Voor elke goedgekeurde opgave de tijd in minuten vanaf het begin van de wedstrijd plus 20 minuten voor elke foute inzending.)
Er is dus maar 1 ronde.

Er kan geprogrammeerd worden in C, C++ en Java, en Pascal, hoewel de laatste ivm restricties die freepascal aan je OS oplegt alleen onder Windows te gebruiken is.

Dit gold voor het nkp2002. Destijds werd onder Solaris gewerkt en daar was inderdaad geen fpc voor.
Bij het beoordelen van de resulaten wordt natuurlijk gekeken of het resultaat is wat het zou moeten zijn?
Degene die er het dichtste bij zit of het gewoon goed heeft zal de winnaar van die ronde zijn?
Je moet exact dezelfde uitvoer genereren als het programma dat de jury uitvoert. Je weet helemaal niets van de Juryimplementatie, je krijgt alleen te horen of jouw oplossing goed of fout was.

Wie de meeste opgaven goed heeft, wint. Bij gelijke opgaven geldt de tijd die je verbruikt hebt, zodra je een opgave goed inlevert wordt de tijd vanaf het begin van de wedstrijd plus 20 minuten voor iedere foute poging bij je totale tijd opgeteld. Het klinkt als een vreemd systeem, maar werkt perfect en is zeer eerlijk.

Dergelijke wedstrijd is mijns inziens totaal onzinnig en zegt niets over je capaciteiten als programmeur

Dit is meer een wiskunde/logisch denken wedstrijd dan iets anders, er staat letterlijk op de site "enkel het resultaat telt, je mag zo ranzig programmeren als je wil"

In een echte programmeerwedstrijd wordt niet het resultaat bekeken, maar wèl de code

het gaat ook niet om de code, het gaat om de oplossingen.

Kan jij als programmeur een gegeven probleem oplossen binnen de gestelde tijd en grenzen?

Hoe ranzig je het oplost maakt niet uit.. net programmeren zegt niks over je programmeer kunst, hoewel het wel helpt.

Maar quick hacks coden gaat nu eenmaal sneller dan super nette optimized code. En met ranzige code gaat het om je analytisch denk en werk vermogen...... iedere typemonkey kan nette code inkloppen, maar niet elke typemonkey kan een probleem goed tacklen...

typemonkey kan nette code inkloppen, maar niet elke typemonkey kan een probleem goed tacklen...
Uiteraard is een werkend programma erg belangrijk, maar ik zou graag een werkend programma dat bovendien nog een beetje netjes is geprogrammeerd. Ik ben nu al bijna 15 jaar programmeur en ik wordt regelmatig geconfronteerd met de 'apres nous le deluge' programmeurs (na ons de zondvloed - Louis XIV). Programmeren alsof de code nooit gedebugged hoeft te worden, of alsof er nooit iets aangepast moet worden. Vreselijk. Ik heb vaak genoeg dagen zitten werken om van een quick hack fatsoenlijke (én stabiele/werkende) code te maken. De kokosnoot die het had gebakken was heel snel klaar en meteen gevlogen natuurlijk. Heel creatief, alleen had ie van mij wel een uurtje langer mogen nadenken over zijn brouwsels.

Het is dus een en/en situatie en zeer zeker niet of/of.

Heb niet echt het gevoel dat opgaves van zo'n test later nog gedebugged moeten worden. Als de opgave goedgekeurd wordt snel verder met de volgende!

Zoals mphillip als laat zien gaat het er in de praktijk ook om dat je je aan software engineering regels houdt als het gaat om goed programmeren, ook al denkt de programmeur op dat moment dat zijn/haar werk nooit meer aangepast of hergebruikt hoeft te worden.
Dat er bij dit kampioenschap door de regels niet het gevoel wordt gewekt dat er later nog met de code gewerkt moet kunnen worden is juist de beperking die dit kampioenschap geen volwaardig programmeer kampioenschap maakt.
Iemand die heel snel een aantal problemen kan oplossen door het schrijven van wat code is vaker een puzzle kampioen met kennis van een taal dan een goed programmeur voor in de praktijk.
Ik noem deze wedstrijd dan ook liever het "NK quick and dirty oplossend programmeren."

De manier waarop je iets probeert op te lossen en hoe ver je daarmee komt laat naar mijn idee veel beter zien of je een correcte en intelligente denkwijze hanteert dan wanneer er alleen maar naar een (goed werkende) oplossing wordt gekeken.

De grootste boer kan net nederlands leren spreken maar dat maakt hem nog geen advocaat.

In een echt wedstijd kijken ze naar het resultaat én de code, niet alleen maar de code hoor :)

De oplossing moet wel netjes zijn, een brute force oplossing is in 99% van de gevallen te langzaam. Dus er moet wel een beetje nagedacht worden.

Precies. Aan de ene kant wordt er niet gekeken naar de netheid van de code zelf, maar het is wel belangrijk het juiste algoritme te kiezen. Maar goed, ik heb ook weleens opgaven goed gekregen met wat extra if-constructies om de laatste foutjes eruit te halen.

Ik studeer ook informatica en hoor redelijk wat over de wedstrijd en blijkbaar is de overgrote meerderheid van de universitaire informatica studenten in heel nederland het niet met jou eens.

Dit is meer een wiskunde/logisch denken wedstrijd dan iets anders,
Ja, natuurlijk. Het gaat hier niet om enterprise applicaties; het gaat hier om het oplossen van wiskundige problemen. Code rechtzetten kan later wel en daar kan je ook een mindere programmeergod voor inhuren. Het is zonde om als echt begaafd persoon je tijd te verdoen met het rechtzetten en begrijpbaar voor leken maken van je code.

* 786562 Confusion

Dit is meer een wiskunde/logisch denken wedstrijd dan iets anders,
Ja, natuurlijk. Het gaat hier niet om enterprise applicaties; het gaat hier om het oplossen van wiskundige problemen.
Je ziet dan ook vaak dat teams vaak uit 1 programmeur (informatica student), 2 wiskundigen en 1 natuurkundige bestaat. Dit geeft al aan dat de nadruk toch meer op wiskundig puzzlen ligt.

Bij een bepaalde tak van programmeren zijn zulk soort vaardigheden inderdaad heel belangrijk, maar het zegt inderdaad niks over je capaciteiten om grote software projecten te kunnen overzien en daar de architectuur van kunnen ontwerpen/behappen. Het is zeker niet zo dat als je goed bent in het schrijven van kleine snelle routines (zeg 100 regels), dat je dan ook automatisch goed bent in het schrijven van middel grote systemen (zeg 32.000 regels). Het is geen kwestie van 320 keer zoveel werk doen, maar vereist gewoon andere vaardigheden. (in principe kunnen zowel die 100 als 32.000 regels evenveel werk zijn)

Het punt is gewoon dat al die andere vaardigheden een beetje moeilijk zijn te testen met een wedstrijd. Input/output match is snel een direct. Zelfs het ontwerp van een GUI (om weer eens wat anders te noemen) beoordelen zou al te veel tijd kosten.

...een mindere programmeergod... ...echt begaafd persoon...
Wat een arrogante instelling zeg!
Ik hoop dat je dit enkel op dit soort wedstrijden zo opstelt, want ik vind dat zo'n superieure opvatting de gehele ICT tak schade toebrengt ("de klant/leek is dom en ik ben slim").

Ook al vind je van jezelf dat er misschien geen nette code/oplossing hoeft te worden afgeleverd, je werkt toch vaak in een team en die vinden het vaak fijn als zij het ook snappen. En verder moet de code die als eindprodukt wordt afgeleverd ook netjes zijn voor eventueel toekomstig onderhoud. Ik vind dat iedere zichzelf respecterende programmeur dat als gewoonte moet hebben en niet af-en-toe als het moet.

Bovendien kan je wiskundig heel goed zijn en van heel grote waarde (dat zul je me niet horen ontkennen), de waarde van het desbetreffende informatiesysteem is daarmee nog niet gegarandeerd! Hoe mooi de oplossing ook is, de klant kan er misschien niets aan hebben. Systeemontwikkeling is meer dan algoritmes uitwerken!

En zou je niet juist omdat je hoogbegaafde roze wolk zit netjes moeten coden zodat de 'minder begaafden' er ook nog iets van snappen?

ik ga ook wel ff kijken, ik woon toch in de buurt :)
Ben benieuwd hoe ze de oostzaal gaan verbouwen..
kunnen ze die 19"LCD's mooi aan de buitenwacht showen ;)

jah ze hebben net mooi al die nieuwe P4's en tft's staan

maargoed ik slaap dan nog, flatfeest op vrijdag, dus dah gaat voor :P

Ik heb aan de voorronden van de TU/e meegedaan maar om nu echt ook naar UT te gaan... Nee, dat gaat dan ten kosten van mijn zelfimage. ;)
maw.. kansloos

Hmm volgens mij word er eerste gekeken of de oplossing klopt en vervolgens of er efficient is gecode.
«  1  2  »

Op dit item kan niet meer gereageerd worden.

Volgende 22:39
Vorige 22:06
VNU Media logo Powered by True

© 1998 - 2008 Tweakers.net - Alle rechten voorbehouden

Uitgever van: