© Harry Broeders.
minor: | Verdiepende minor Elektrotechniek EVMIN |
onderwijsdeel: | Algoritmen en Datastructuren (ALGODS) |
studiebelasting: | 84 SBU |
semester: | ECV |
contacturen: | 2 uur/week college, 1 uur/week practicum begeleid en 1 uur/week practicum onbegeleid |
toetsing: | practicumbeoordeling (O/V) en eindopdracht (cijfer) |
benodigde voorkennis: | GESPRG, MICPRG en OGOPRG |
verantwoordelijke docent: | Harry Broeders |
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 GESPRG en MICPRG heb je leren programmeren
in de programmeertaal C met behulp van de
functionele-decompositie-ontwerpmethode (structured programming and structured
design). In het onderwijsdeel OGOPRG heb je de basisaspecten van object
georiënteerd programmeren (OOP) en modelleren geleerd aan de hand van de
programmeertaal C++ en de modelleertaal UML. In dit vak 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.
Enkele van deze datastructuren zoals string
en vector
hebben we al bij OGOPRG leren kennen. Tijdens dit vak 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 dit vak worden behandeld.
De beginnende elektrotechnische ingenieur die de module ALGODS heeft gevolgd is in staat om professionele software te ontwikkelen waarin dynamische datastructuren worden gebruikt.
Als je deze module met een voldoende hebt afgesloten:
Broeders, Presentaties ![]() ![]() Broeders, Dictaat Object Georiënteerd Programmeren in C++ (OGOPRG). ![]() Broeders, Dictaat Algoritmen en Datastructuren (ALGODS). ![]() |
||
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, 5de editie ISBN 9789043020558. | ![]() |
Er worden voor deze module twee resultaten 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.
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.
week | inhoud | sheets | dictaat | C++ boek |
---|---|---|---|---|
1 | Inleiding (overzicht ALGODS), overzicht datastructuren. | week 1 | inleiding, H1 en H2 | - |
2 | Toepassingen en implementaties van een stack. | week 2 | H3 en H4 | - |
Zelfstudie | Advanced C++ (namespace, exception, RTTI). | - | Dictaat OGOPRG paragraaf 6.2, 6.8 en 6.9. | 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, functie objecten en lambda functions. | week 4 | H6 | TICPPV2 H6 |
5 | Toepassingen van dynamische datastructuren: game- tree, min-max algoritme en alfa-beta pruning.1 | week 5 | H7.1, Zie ook:-bke.htm | - |
6 | Toepassingen van dynamische datastructuren: graphs en kortste pad algoritmen.2 | week 6 | H7.2 | - |
7 | Uitloop + begeleiding bij de eindopdracht. | - | - | - |
1 Het in week 5 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: 978-0-201-61250-9.
2 De in week 6 behandelde kortste pad algoritmen spelletjes staan beschreven in hoofdstuk 15 van het bovenstaande boek.
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 OGOPRG hoofdstuk 6.8 | Exceptions |
4 | opdracht 4 | TICPPV2 H6 en H7 en Dictaat H6 | STL |
5 t/m 8 | opdracht 5 | bke.htm en Dictaat H7.1 | Toepassingen van dynamische datastructuren in een spelletjes |