Studiewijzer module ALDAT

© Harry Broeders.

onderwijseenheid: Verdiepende minor Elektrotechniek EVMIN
onderwijsdeel: EVMINX4: Algoritmen en Datastructuren (ALDAT)
studiebelasting: 84 SBU
semester: ECV
contacturen: 2 uur/week college en 2 uur/week practicum
toetsing: practicumbeoordeling (O/V) en eindopdracht (cijfer)
benodigde voorkennis: PROS1 tot en met PROS3
verantwoordelijke docent: Harry Broeders

Inleiding

In steeds meer elektrotechnische producten en systemen wordt programmatuur gebruikt. Het is zeker dat een beginnend elektrotechnisch ingenieur hiermee te maken krijgt. In de onderwijsdelen PROS1 en PROS2 heb je leren programmeren in de programmeertaal C met behulp van de functionele-decompositie-ontwerpmethode (structured programming and structured design). In het onderwijsdeel PROS3 heb je de basisaspecten van objectgeoriënteerd programmeren (OOP) en modelleren geleerd aan de hand van de programmeertaal C++ en de modelleertaal UML. In deze module wordt dieper op deze talen ingegaan. In het basisdeel van de studie heb je datastructuren zoals array en struct leren gebruiken. Deze datastructuren worden statisch genoemd omdat hun grootte tijdens het compileren wordt bepaald en vast is. In de praktijk heb je al snel behoefte aan zogenaamde dynamische datastructuren waarvan de grootte tijdens het uitvoeren van het programma kan veranderen. Tijdens deze module zal je kennis maken met zowel de implementatie als het gebruik van de klassieke dynamische datastructuren. Je zult leren hoe het met behulp van templates mogelijk is algoritmen zoals zoeken en sorteren generiek te definiëren. Een generiek algoritme is een algoritme dat onafhankelijk is van de gebruikte datastructuur. In de C++ ISO/ANSI standaard is een verzameling generieke algoritmen en datastructuren opgenomen die in deze module worden behandeld.

Globale leerdoelen

De beginnende elektrotechnische ingenieur die de module ALDAT heeft gevolgd is in staat om professionele software te ontwikkelen waarin dynamische datastructuren worden gebruikt.

Als je deze module met een voldoende hebt afgesloten:

Literatuur

Bruce Eckel, Thinking in C++ 2nd Edition, Volume 1, ISBN 0139798099.
Bruce Eckel and Chuck Allison, Thinking in C++ 2nd Edition, Volume 2, ISBN 0131225529.
Deze boeken zijn ook gratis te downloaden van: http://mindview.net/Books/TICPP/ThinkingInCPP2e.html.
Warmer & Kleppe, Praktisch UML, 4de editie ISBN 978-90-430-1265-2

Broeders, Presentaties en voorbeeldprogramma's.
Broeders, Dictaat Object Georiënteerd Programmeren in C++ (PROS3). De voorgaande link verwijst naar een pdf bestand.
Broeders, Dictaat Algoritmen en Datastructuren (ALDAT). De voorgaande link verwijst naar een pdf bestand.

Toetsing en beoordeling.

Er worden voor deze module twee deelresultaten vastgesteld waarbij het eerste resultaat (beoordeling practische eindopdracht) een cijfer (1..10) is en het tweede resultaat (practicum) een O(nvoldoende) of V(oldoende) is. Het eindresultaat wordt dan het cijfer van de eindopdracht als het tweede resultaat een V is en een 1 als het tweede resultaat een O is. Het bodemcijfer is 4.5.

Je kunt naar keuze alleen werken of in tweetallen. Als je ervoor kiest om samen te werken met een partner kies dan wel een partner van ongeveer hetzelfde niveau.

Het practicum wordt beoordeeld met Onvoldoende of Voldoende. Alle opdrachten worden afzonderlijk beoordeeld met een voldoende of onvoldoende aan de hand van:

Om het practicum met een voldoende af te sluiten moeten alle opdrachten voldoende zijn.

Weekplanning theorie.

Let op! Deze planning kan tijdens het geven van deze onderwijsmodule nog worden aangepast!

week inhoud sheets dictaat C++ boek
1 Inleiding (overzicht ALDAT), overzicht datastructuren. week 1 inleiding H1 + H2 -
2 Toepassingen en implementaties van een stack. week 2 H3 + H4 -
Zelfstudie Advanced C++ (namespace, exception, RTTI). - Dictaat PROS3 hoofdstuk 6.5 tot en met 6.7. TICPPV1 H10
TICPPV2 H1 en H8
3 Standard Template Library: overzicht, sequentiële containers, container adapters en associatieve containers. week 3 H6 TICPPV2 H6 en H7
4 Standard Template Library: iteratoren, algoritmen en functie objecten. week 4 H6 TICPPV2 H6
5 Toepassingen van dynamische datastructuren: game- tree, min-max algoritme en alfa-beta pruning.1 week 5 Zie:-bke.htm -
6 Toepassing: galgje. C++0x lambda functions. week 6 Zie: lambda.htm -
7 Uitloop + begeleiding bij de eindopdracht. - - -

1 Het in  week 6 behandelde spelletjesprogramma Boter, Kaas en Eieren staat beschreven in hoofdstuk 8.7 en 11.2 van het boek Data Structures and Problem Solving Using C++, 2/E van Mark Allen Weiss, ISBN: 0-201-61250-X.

Weekplanning practicum.

Bij dit practicum wordt op een iets andere manier gewerkt dan dat je tot nu toe gewend was. De practicumopgaven worden in groepjes van 2 studenten uitgevoerd. Het is de bedoeling dat je minimaal 4 uur/week aan dit practicum besteedt. Als je bij het werken aan het practicum tegen problemen aanloopt waardoor je niet verder kunt wacht dan niet tot de volgende les maar stuur een mailtje naar J.Z.M.Broeders@hhs.nl.

week opdracht studiemateriaal onderwerp
1 opdracht 1 opdracht 1 Gelinkte lijst
2 opdracht 2 Dictaat H2 Algoritme runtime analyse
3 opdracht 3 TICPPV2 H1 en Dictaat PROS3 hoofdstuk 6.6 Exceptions
4 opdracht 4 TICPPV2 H6 en H7 en Dictaat H6 STL
5 t/m 8 opdracht 5 bke.htm Toepassingen van dynamische datastructuren in een spelletjes