Studiewijzer module ALGODS

© 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

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 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.

Globale leerdoelen

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:

Literatuur

Broeders, Presentaties en voorbeeldprogramma's.
Broeders, Dictaat Object Georiënteerd Programmeren in C++ (OGOPRG). De voorgaande link verwijst naar een pdf bestand.
Broeders, Dictaat Algoritmen en Datastructuren (ALGODS). De voorgaande link verwijst naar een pdf bestand.
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.

Toetsing en beoordeling.

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.

Weekplanning theorie.

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.

Weekplanning practicum.

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