Algoritmiek

Praktikum Voorjaar 2012

Bij het vak Algoritmiek is een praktikum dat bestaat uit zes opdrachten, die je alleen moet programmeren in C# en moet inleveren via het DomJudge systeem. Dit systeem kijkt de ingeleverde opdrachten automatisch na; daarom is het belangrijk dat je de gespecificeerde uitvoer-structuur zo exact mogelijk aanhoudt.

Nr Opdracht Inleverdatum Testinvoer
0 Increment 15 feb 2012 Increment1.in
1 Voorwaarts Verschil 22 feb 2012 Voorwaarts0.in, Voorwaarts1.in
2 Schilderijen 29 feb 2012 Schilderij1.in
3 Wegonderhoud 21 mrt 2012 weg1.in, weg1.uit, Zuid.rws.
4 War of the Worlds 4 apr 2012 WarSimpel.in, WarMars.in, WarMars.uit
5 Quest Planner 20 apr 2012 Mini Quest, output, Toms Quest
Algemene aanwijzingen: De opdrachten worden steeds moeilijker, dus doe vanaf het begin mee en loop lekker binnen met de weggevertjes! De eerste opdracht helpt je op weg met het beheersen van de C#-ontwikkelomgeving en het DomJudge inleversysteem. Voor de laatste opdrachten heb je misschien niet genoeg tijd als je eraan begint na deadline van de vorige opdracht.

Je kunt over de opdrachten vragen stellen tijdens het werkcollege, maar verder is er geen begeleiding. Je mag uiteraard wel met anderen over de opdracht praten, maar je moet de ingeleverde code wel helemaal zelf schrijven. DomJudge bevat plagiaat-detectie en plagiaat wordt bestraft! Docent of nakijkers kunnen je vragen, delen van je code toe te lichten.

DomJudge kan aangeven dat je programma niet compileert, te langzaam werkt, of een verkeerde uitvoer geeft. DomJudge kan niet controleren of je het juiste algoritme hebt geïmplementeerd. Dus als de opdracht zou zijn implementeer QuickSort en je gebruikt HeapSort, zal je programma mogelijk door DomJudge worden geaccepteerd zonder dat het echt goed is. Als DomJudge je programma zonder gepruttel accepteert, en je hebt je gehouden aan de algoritmische eisen (voor zover die in de opdracht staan), heb je de opdracht in principe af.

Inleveren met DomJudge

Bezoek de DomJudge TEAM pagina en log in met je credentials die je van de assistent hebt ontvangen. Geen credentials ontvangen? Mail de DomJudge-machinist Ruud Koot.

Submitten: Het inzenden van een C# oplossing is eenvoudig: Klik "Select file..." en selecteer de file met je C#-code. Geef aan welk van de problemen je hebt opgelost (hoop je) en de programmeertaal (alleen C# is mogelijk). Beuk op Submit en wacht af wat DomJudge van je programma vindt.

Clarification: Via Clarifications is communicatie met het praktikumteam mogelijk. Maar niet snel! Dus als je 5 minuten voor de deadline tegen een issue aanloopt en je kunt niet verder zonder hulp, dan heb je een probleem. Een Clarification is een soort vraag die je aan "de Jury" (het praktikumteam) kunt stellen.

Becijfering en beoordeling

De becijfering is gebaseerd op het aantal succesvol en tijdig ingeleverde opdrachten. Je moet ten minste vier opdrachten doen; met drie of minder haal je geen Algoritmiek. Vijf gemaakte opdrachten geven een bonus-ophoging van 1 punt, zes opdrachten 2 punten bovenop je toetsgemiddelde.

Verlengen?

Om aan de verlenging van Algoritmiek mee te mogen doen, moet je al minstens drie opdrachten hebben gedaan. In de verlenging mag je een vierde opdracht doen om zo aan het minimum aantal te komen. Je mag ook in de verlenging een vijfde opdracht maken om aan de enkele bonus te komen. Je kunt niet in de verlenging een zesde opdracht maken en de dubbele opdrachtbonus halen.

De keuze voor C#

De opleiding Informatica heeft besloten, vanaf 2010 de taal C# te gaan gebruiken in het onderwijs ter vervanging van het eerder gebruikte Java. Algoritmiek volgt die keuze en het is niet mogelijk of toegestaan in Java te werken. Door de keuze voor een taal en automatisch nakijken voorkomen we dat assistenten veel tijd kwijt zijn waar je als student weinig van merkt.

Wat is de consequentie voor Java-ervarenen? Voor de opdrachten heb je vrijwel geen grafische en interactieve libraries nodig, want bijna alles werkt met tekst input/output en algoritmische constructies. De verschillen tussen Java en C# zijn daar minimaal, dus qua programmeren maakt het niet veel uit.

Je moet wel met de C# ontwikkelomgeving werken, dus je hier even op inlezen en inwerken. De eerste programmeeropdracht Increment helpt je hiermee op weg. Ook al lijkt hij simpel, begin er niet te laat aan! Houd er rekening mee dat je misschien nog iets aan een assistent moet vragen op het werkcollege voordat je hem kunt inleveren.