Studiewijzer onderwijsdeel SOPX3

© Harry Broeders.

onderwijsdeel: Software Ontwikkeling en Programmeren 3
studiebelasting: 168 SBU (84 in kwartaal 1 en 84 in kwartaal 2)
semester / kwartaal: H3C&D / 1 en 2
contacturen: Kwartaal 1: 3 uur/week college en 1 uur/week practicum
Kwartaal 2: 1 uur/week projectbegeleiding per projectgroep
toetsing: tentamen (cijfer), practicumbeoordeling (O/V) en projectbeoordeling (cijfer)
benodigde voorkennis: SOPX2
verantwoordelijke docent: Harry Broeders

Inleiding

In steeds meer elektrotechnische producten en systemen wordt programmatuur gebruikt. Het is zeker dat een aanstaand elektrotechnisch C&D ingenieur hiermee te maken krijgt. In de propedeuse en in H1 heb je leren programmeren in de programmeertaal C met behulp van de functionele decompositie ontwerpmethode (structured programming and structured design). In H2 heb je de basisaspecten van object georiënteerd programmeren (OOP) geleerd aan de hand van de programmeertaal C++. In deze onderwijseenheid wordt dieper op deze programmeertaal ingegaan. Het opvangen van fouten door middel van exceptions wordt uitgebreid besproken en ook namespaces en run-time type information komen aan de orde.

In de propedeuse en in het H1 project 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 wijzigen. Tijdens deze onderwijseenheid 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 om 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 onderwijseenheid worden behandeld.

De programmeertaal C++ ondersteund dus 3 verschillende programmeer paradigma's:

Tevens wordt in deze onderwijseenheid een inleiding gegeven in het modelleren van object georiënteerde systemen met behulp van de UML (Unified Modelling Language) standaard. Je gaat deze theorie in het tweede kwartaal in projectvorm toepassen bij het SOPX3 project. De leerdoelen van dit project kun je (later) vinden in de bij het project behorende studiewijzer.

Tot slot van het eerste kwartaal van deze onderwijseenheid worden nog enkele applicaties waarin datastructuren worden toegepast besproken.

Je zult na afloop van het eerste kwartaal van SOPX3 in staat zijn om herbruikbare software componenten te gebruiken, ontwerpen, implementeren en testen. Na het tweede kwartaal van SOPX3 zul je in staat zijn om samen met collega's (in een projectgroep) de software voor een elekrotechnische systeem te ontwerpen en realiseren. Je bent in staat om de eisen van de gebruikers in zogenaamde use-cases te beschrijven. Je maakt bij het ontwerpen gebruik van een moderne ontwerptool (TogetherSoft) die de UML diagrammen automatisch omzet naar C++ code.

Globale leerdoelen

Als je dit onderwijsdeel met een voldoende hebt afgesloten:

De leerdoelen van het tweede kwartaal van deze onderwijseenheid kun je (later) vinden in de bij het SOPX3 project behorende studiewijzer.

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, Sheets De voorgaande link verwijst naar een pdf bestand. en voorbeeldprogramma's. De link voor dit plaatje verwijst naar een file in ZIP formaat.
De sheets zijn beschikbaar in het PDF formaat, verkleind tot 9 per pagina. De voorbeedprogramma's zijn opgenomen in een Borland C++ Builder 6 project group SOPX3.BPG

Broeders, Dictaat SOPX3. De voorgaande link verwijst naar een pdf bestand. Dit dictaat bevat:

Het studiemateriaal voor het SOPX3 project zal in het tweede kwartaal via blackboard worden verspreid.

Toetsing en beoordeling.

Er worden voor deze onderwijseenheid drie deelresultaten vastgesteld waarbij het eerste resultaat (tentamen) een cijfer (1..10) is, het tweede resultaat (practicum) een O(nvoldoende) of V(oldoende) is en het derde resultaat (project) weer een cijfer (1..10) is. Het eindresultaat wordt dan het gemiddelde cijfer van het tentamen (kwartaal 1) en het project (kwartaal 2) als het tweede resultaat een V is en een 1 als het tweede resultaat een O is. Bij het tentamen mag je boeken en dit dictaat gebruiken. Het tentamen bestaat uit open vragen.

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!

les inhoud sheets dictaat C++ boek UML boek
1 Inleiding (overzicht SOPX3) les 1 inleiding
2 Overzicht datastructuren les2 H1 + H2
3 Overzicht datastructuren (bomen, hashing, heap) les 3 H2
4 Toepassingen van een stack les 4 H3
5 Implementaties van een stack les 5 H4
6 Advanced C++ (namespace, exception) les 6 en 7 H5 TICPPV1 H10 en TICPPV2 H1
7 Advanced C++ (vervolg exceptions, casting, RTTI) les 6 en 7 H5 TICPPV2 H1 en H8
8 STL inleiding (string, overzicht, sequentiële containers) les 8 en 9 H6 TICPPV2 H3 en H7
9 STL container adapters en associatieve containers les 8 en 9 H6 TICPPV2 H7
10 STL iterators, inleiding algoritmen les 10 t/m 12 H6 TICPPV2 H6 en H7
11 STL algoritmen en functie objecten les 10 t/m 12 H6 TICPPV2 H6
12 vervolg STL algoritmen en functie objecten les 10 t/m 12 H6 TICPPV2 H6
13 Behandelen vraagstuk (galgje) les 13
14 UML inleiding UML:1 t/m 4 H1 en H2
15 UML Klasse- en objectdiagrammen (deel 1) 5 t/m 11 H4.1 t/m 4.3
16 UML Klasse- en objectdiagrammen (deel 2) en Use-case-diagram 12 t/m 24 H4.4.1, 4.4.2, 4.4.5 t/m 4.4.9, 4.4.17 en H8.1 t/m 8.6
17 UML Sequence- en collaboratiediagrammen 25 t/m 34 H10.1 t/m 10.4, H12.1 t/m 12.3, H15.1 t/m 15.3
18 UML Toestands- en Activiteitsdiagrammen 35 t/m 47 TICPPV1 H10 en H14
TICPPV2 H9
H4.4.4, 4.4.10 en 4.4.12
19 Toepassingen van datastructuren1. les 19 H8
20 Toepassingen van datastructuren1. les 20 H8
21 Uitloop.

1 Het in les 19 en 20 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 ingeroosterde uur is alleen bedoeld om de door jullie gemaakte opdrachten na te kijken. Het is de bedoeling dat je ongeveer 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 het ingeroosterde uur 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 H5 Exceptions
4 en 5 opdracht 4 TICPPV2 H6 en H7 en Dictaat H6 STL
6 en 7 opdracht 5 Praktisch UML UML

Extra (niet verplicht) opdracht 6: Een windows GUI applicatie maken met behulp van C++ Builder.

Weekplanning project (tweede kwartaal).

Zie aparte studiewijzer van het SOPX3 project.