Voorbereiding Programmeerwedstrijden is een extracurriculair vak binnen
de bachelor Informatica aan de Universiteit Leiden.
Het is in het najaar van 2019 voor het eerst gegeven.
Praktische informatie
Docent: Rudy van Vliet
te vinden op: kamer 140 van het Snellius
telefoon: 071-527 2876
email: rvvliet(at)liacs(dot)nl Onderwijsvorm: hoorcollege en werkcollege (practicum) Hoorcollege:
zes donderdagen van 14.15-16.00 uur
in zaal 106-109 (5 en 12 september) en 204 (19 en 26 september,
10 en 17 oktober 2019), alle in het Huygens.
Werkcollege (practicum): zes maandagen van 09.15-11.00 uur
in zaal 307 in het Snellius
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.
Doelstelling
Zorgvuldiger en kritischer leren programmeren.
Nieuwe algoritmes leren.
Beter presteren bij programmeerwedstrijden.
Toetsing
Programmeerwedstrijd met vier a vijf opgaven.
Datum: donderdag 31 oktober 2019, 14.00-18.00 uur, in zaal 307.
Regels hierbij:
duur: vier uur.
je werkt individueel.
programmeertaal is in principe C++.
2.5 punt per opgave te verdienen
maximaal twee pogingen per opgave;
bij tweede poging is nog maar 2 punt te verdienen
bij correcte oplossing 0.25 punt aftrek als oplossing niet binnen een uur
is ingeleverd (bij tweede ingeleverde opgave binnen twee uur, enzovoort)
als laatste poging voor opgave niet goed is, dan een percentage
van 1.5 punt (afhankelijk van fractie correcte testcases, voorzover
algoritmisch opgelost)
het is de bedoeling dat het internet in zaal 307 wordt afgesloten tijdens
de wedstrijd; je mag wel een papieren handleiding van C++ meenemen
+ maximaal 25 pagina's met algoritmes.
Er is geen herkansing.
Bonuspunten te verdienen met goede prestaties op LKP2019 en BAPC2019:
0.5 punt bij klassering in bovenste kwart van alle lokale voorrondes /
BAPC
0.25 punt bij klassering in tweede kwart van alle lokale voorrondes /
BAPC
Totale bonus is dus maximaal 1.0 punt. Het maximale eindcijfer is een 10.
Het vak is gehaald wanneer het cijfer voor de programmeerwedstrijd minstens
5.0 is en het cijfer inclusief bonus minstens 5.5 is.
Alle cijfers (voor programmeerwedstrijd en LKP / BAPC, inclusief eindcijfers)
zijn te vinden
in Blackboard.
Bij de kolommen in Blackboard geldt de volgende
legenda.
Indien daar belangstelling voor bestaat, kan er een vragenuur voor
de nog te plannen programmeerwedstrijd worden ingepland.
Daarbij kun je dan de vragen stellen die opgekomen zijn bij
het leren en oefenen voor de wedstrijd.
Practicum
Tijdens de werkcolleges/practicumbijeenkomsten gingen we praktisch
aan de slag met opgaven uit het boek. Deze konden 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 is behandeld.
Een exact overzicht is te vinden in het
overzicht van behandelde stof en opgaven.
Behandelde stof, opgaven en slides
Voor wie door omstandigheden een hoorcollege of werkcollege
moest missen,
hebben we per week bijgehouden
welke stof en opgaven we hebben behandeld.
U vindt dit overzicht
hier
(compleet, t/m hoorcollege van 17 oktober 2019).
De slides die tijdens de colleges gebruikt zijn,
zijn hieronder nog te bekijken.
Vragen en opmerkingen kunt u sturen naar:
Rudy van Vliet;
rvvliet(at)liacs(dot)nl
Laatste wijziging: 7 juli 2020
- http://www.liacs.leidenuniv.nl/~vlietrvan1/vbpw/