Voorbereiding Programmeerwedstrijden

najaar 2025

Toren Academiegebouw

Laatste nieuws

(11.09.2025) De eerste huiswerkopgave is beschikbaar. Zie verderop.

(03.09.2025) Het eerste tentamen is verschoven van dinsdagochtend 21 oktober naar vrijdagmiddag 24 oktober, 13.15-17.15.


Voorbereiding Programmeerwedstrijden is een extracurriculair vak binnen de bachelor Informatica aan de Universiteit Leiden. Het wordt eens in de twee jaar gegeven, in het najaar van 2025 voor de vierde keer.

Praktische informatie

Docent: Rudy van Vliet
te vinden op: kamer BM.2.03 van het Gorlaeus
telefoon: 071-5272876
email: rvvliet(at)liacs(dot)nl
Onderwijsvorm: hoorcollege en werkcollege (practicum)
Hoorcollege: zeven dinsdagen van 11.00-12.45 uur, in zaal BW.0.05 (college 1) of DM.1.09 (colleges 2-6) van het Gorlaeus.
Werkcollege (practicum): zeven donderdagen van 09.00-10.45 uur, in computerzaal DM.0.17 van het Gorlaeus.
Beide van 2 september t/m 16 oktober 2025.

Aanbevolen voorkennis: Algoritmiek.

Studielast

Met het behalen van dit vak verdient u 2 EC. Het niveau van het vak wordt aangeduid als `200'.

Inhoud

Programmeerwedstrijden vormen een goede gelegenheid om je algoritmische programmeervaardigheden aan te scherpen. Het is daarbij motiverend als je ook goed presteert. Bij dit vak behandelen we enkele types opgaven die regelmatig voorkomen bij wedstrijden, en lossen die ook op. Te denken valt aan opgaven met strings, combinatorische opgaven, graafwandelingen, andere graafalgoritmes, dynamisch programmeren en geometrische opgaven.

Voor globale informatie over het vak in studiejaar 2025-2026 wordt men verwezen naar de algemene webpagina.

Doelstelling

Na afloop van dit vak is de student in staat om

DOMjudge

Zowel voor het tentamen aan het eind van de colleges, als voor de huiswerkopgaven tussendoor maken we gebruik van DOMjudge bij LIACS. Hiervoor moet je als gebruiker geregistreerd zijn in dit systeem. Dit kan op twee manieren:

Toetsing

Tentamen in de vorm van een programmeerwedstrijd met vier a vijf opgaven.
Datum: vrijdag 24 oktober 2025, 13.15-17.15 uur, in computerzaal DM.0.13. (nieuwe datum, tijd en zaal).
Hertentamen: vrijdag 19 december 2025, 13.15-17.15 uur, ook in computerzaal DM.0.13.
Regels hierbij: Het minimumcijfer voor het tentamen is 1.0.

Huiswerk: maximaal vier opgaven tussen de colleges door. Regels hierbij:

Punten van alle huiswerkopgaven worden genormeerd naar 10 punten totaal. Het minimumcijfer voor het huiswerk is 0.0. Het huiswerk is niet verplicht, maar is natuurlijk wel een goede oefening, en het telt mee voor het eindcijfer. Wanneer de huiswerkopgaven beschikbaar zijn, zullen ze hier worden gepubliceerd.

Bonuspunten te verdienen met goede prestaties op LKP2025 (zaterdag 27 september 2025) en BAPC2025 (zaterdag 25 oktober 2025):

Totale bonus is dus maximaal 1.0 punt.

Het eindcijfer is een gewogen gemiddelde van huiswerk (samen 20%) en tentamen (80%), opgehoogd met de bonus. Het maximale eindcijfer is een 10. Om het vak te halen moet het tentamencijfer minstens 5.0 zijn en het eindcijfer inclusief bonus minstens 5.5. Als het tentamencijfer lager dan 5.0 is, is het tentamencijfer tevens het eindcijfer.

Alle cijfers (voor huiswerkopgaven, programmeerwedstrijd en LKP / BAPC, inclusief eindcijfers) zullen gepubliceerd worden in Brightspace. Zorg dus dat je je daar aanmeldt voor dit vak.

Template programma

Je programma moet zijn invoer uit standard input lezen en zijn uitvoer naar standard output schrijven. Bij het testen in het jurysysteem zal de testinvoer vanuit een bestand naar de standard input worden gestuurd, en de uitvoer vanuit standard output naar een bestand. Dit laatste bestand wordt dan vergeleken met een bestand met de juiste uitvoer. Om een idee te krijgen hoe je de invoer uit standard input kunt lezen en de uitvoer naar standard output kunt schrijven, zijn hier twee versies van een helloworld opgave, met bijbehorende C++ programma's.

Vragenuur

Indien daar belangstelling voor bestaat, kan er een vragenuur voor het eerste tentamen worden ingepland. Daarbij kun je dan de vragen stellen die opgekomen zijn bij het leren en oefenen voor het tentamen.

Practicum

Tijdens de werkcolleges/practicumbijeenkomsten gaan we praktisch aan de slag met opgaven uit het boek. Deze kunnen ingediend worden bij de online judge (voorheen bekend als de Universidad de Valladolid online jugde). Dit kan ook nog tussen de colleges door. Hierbij mag je in teams samenwerken.

Literatuur

Steven S. Skiena & Miguel A. Revilla, Programming Challenges - The programming contest training manual, Springer (2003), ISBN 9780387001630.

Hieruit behandelen we (onder voorbehoud) de hoofdstukken 3, 6, 9, 10, 11 en 13.

Tentamenstof

De leerstof en oefenstof voor de programmeerwedstrijd is de stof die tijdens de colleges wordt behandeld. Een overzicht hiervan zal aan het eind van de colleges gepubliceerd worden.

Behandelde stof, opgaven en slides

Voor wie door omstandigheden een hoorcollege of practicum moet missen, zullen we per week bijhouden welke stof en opgaven we hebben behandeld. U vindt dit overzicht hier (bijgewerkt t/m hoorcollege van 16 september 2025).

De slides die tijdens de colleges gebruikt zijn, zullen na elk college hieronder gepubliceerd worden.

Oude tentamens


Het vak Voorbereiding Programmeerwedstrijden wordt nu voor de vierde keer gegeven. De vorige keer was in het najaar van 2023. De website van die keer vindt u hier.
Vragen en opmerkingen kunt u sturen naar:
Rudy van Vliet; rvvliet(at)liacs(dot)nl
Laatste wijziging: 16 september 2025 - http://www.liacs.leidenuniv.nl/~vlietrvan1/vbpw/