FHT&L MODULE BESCHRIJVING
Programmeren in C++ (deel 1) PRO4
Samenstelling: Datum: Versie:
Cees van Tilborg, Thijs Dorssers september 2011 1h
Titel: Programmeren in C++ Identificatie Progresscode: Studiefase: Omvang: Lestijd:
PRO4 Semester 4 140 SBU/5 ECTS-punten 7 lesweken
Looptijd:
9 weken
Toelichting en inhoudelijke beschrijving In de propedeuse-fase heb je een behoorlijke basiskennis informatica opgedaan. In het bijzonder heb je de eerste beginselen van het programmeren geleerd en in praktijk leren brengen in de OO-talen Java (module PRG1). Conceptueel lijkt C++ veel op Java de toepassingsgebieden zijn anders. C++ wordt o.a. gebruikt bij het implementeren van systeemsoftware, denk daarbij aan drivers, embedded systemen en applicatiesoftware. Ook het visueel programmeren in Visual C++ toont grote overeenkomsten met het visueel programmeren in Java. In de praktijk wordt zeer veel gebruik gemaakt van de OO-taal C++. We richten ons in deze module op de volgende hoofdzaken: introductie in de programmeertaal C++; gebruik van de programmeertaal C+ +; Introductie in het gestructureerd en objectgeoriënteerd programmeren; gebruik van ontwikkelomgeving; gebruik van libraries waaronder QT.
Eindtermen Na het bestuderen van deze module: - kun je modulaire C++ programma’s (console applicaties) te ontwikkelen met Visual C++ - kun je de rol van pre-processor, compiler en linker uit leggen; - kun je C++ functies met parameters (call by reference/value mechanisme, return value) toe passen; - kun je voor een eenvoudig algorithme (herhaallus) de initialisatie, het stopcriterium de C++-code ontwerpen en de correctheid ervan beredeneren; - kun je control flow elementen zoals switch(), if(), while(), do-while(), for() toe passen; - kun je met pointers en references werken - kun je variabelen, structures, typedefs, (meerdimensionale) arrays toe passen - kun je klassen, constructoren, destructoren, (multiple) inheritance, polymorphisme toe passen - kun je de implementatie van strings in C++ te begrijpen en toe passen heb je voldoende kennis van de taal C++ om je snel in een specifieke bedrijfsgebruik van de taal C++ in te werken; kun je de standaard programmeerconcepten toepassen van de taal C++; weet je wat object georiënteerd programmeren inhoudt; kun je een eenvoudig probleem op OOP wijze implementeren in C++; kun je een specificatie in UML vertalen naar een C++ applicatie; kun je een template-class maken; kun je dynamische datastructuren als lijsten, queue's, stacks, bomen, etc implementeren en toepassen in specifike situaties en weet je daarbij gebruik te maken van recursie; kun je een eevoudig dialog-based applicatie in Qt-C++ implementeren kun je de elementaire besturingselementen van Qt-C++ en de bijbehorende Qt-klassen toepassen; begrijp je de document/view archtectuur van Qt en het Qt-event-mechanisme; kun je threads toepassen in Qt-C++
Modulebeschrijving
©Fontys FHTenL Bestand: pro4_mdhl_nl.doc
Competenties Verwijzend naar het boek ‘Beroepsprofiel en Opleidingsprofiel HBO-I’ (ISBN 90-74793-17-7) draagt deze module bij aan de volgende kwalificaties voor het Hoger Onderwijs: de specifieke kwalificaties 5 en 11.
Gevolgde modules Voortgebouwd wordt op het module PRO3 (programmeren in java).
Gelijklopende modules Parallel aan deze module loopt het project “Distributed Applications in C#” (PRJ41).
Aansluitende modules CSA2, Operating Systemen
Leermiddelen De modulebeschrijving, de practicumopdrachten, de in de les gepresenteerde sheets en eventueel ander materiaal wordt via de Fontys ELO N@tschool beschikbaar gesteld: http://elo.fontys.nl Aanbevolen studieboek/naslagwerk (aanschaf facultatief): C++, Zesde herziene editie, Leendert Ammeraal, Academic Service ISBN xxxxxxxxxxx [BE1] Thinking in C++, 2nd ed. Volume 1, Bruce Eckel (=free E-book) [BE2] Thinking in C++, 2nd ed. Volume 2, Bruce Eckel (=free E-book) Free C/C++ books: http://www.freetechbooks.com/c-c-f3.html
Onderwijsvorm Jaar Semesterweek College Practikum Zelfstudie Prakticumafronding Toetsvoorbereiding Toets Total
1 3 6 2
2 3 6 2
3 3 6 2
4 3 6 2
5 3 6 2
6 3 6 2
7 3 6 2
8&9
Totaal 21 42 14
5
5
5
5
5
5
5
7
42
19
19
2 16 16 16 16 16 16 16 28
2 140
De eerste 4 weken zijn vooral gericht op de C++ concepten, in week 5 t/m 7 komt Qt aan bod. Veel aandacht zal besteed worden aan het toepassen hiervan o.a. in de vorm van individuele opdrachten. Tijdens college-uren zal dan worden ingegaan op de hoofdlijnen, vragen over de theorie, bespreking opdrachten. Gedurende de practicumuren werk je deels onder begeleiding verder aan de opdrachten. Practicum opdrachten worden individueel gemaakt, tenzij anders aangegeven. Aanwezigheid tijdens practicum is verplicht en wordt bijgehouden, in geval van ziekte of iets dergelijks afmelden bij begeleidend docent. Opgaven worden via N@tschool ingeleverd. Opdrachten dienen volgens het opgegeven schema gemaakt te worden. De docent zal regelmatig de stand van zaken controleren en bij goed resultaat goedkeuren. Om dit practicum te halen moeten alle opgaven gemaakt en goedgekeurd zijn.
3/5
Modulebeschrijving
©Fontys FHTenL Bestand: pro4_mdhl_nl.doc
Weekplanning Week
Theorie
Individuele opdrachten 1#1:1-5 1#2:1,2,3,5 1#3:2 1#4:2 1#5:1,3,5
1
Inleiding, variabelen, declaraties, operatoren en expressies (1#1) Flow of control, rol van variabelen (1#2) Functies, scope van variabelen (1#3) Seperate modules (1#3) Pointers, call by value, call by reference (1#4) Pointers, typeconversies, casting (1#5)
2
Structures, fields, unions (1#6) Typedef, macro’s (1#7) Klassen, scope operator, private, public, constructor, destructor (1#8) Default functie parameters, functie overloading, references, copy constructor, dynamisch geheugen, member initialisatie lijst (1#9) Conversies, explicit, mutable, static, zelf refenties, this pointer (1#10)
3
Friends (1#11:1-6) 2#4:1-3 Implementatie gelinkte lijst (2#3:1-10) Uitleg tekstverwerkeropdracht (2#4:1-8) Pointers naar data - en functie members, Inheritance (1#11: 7- eind) Multiple inheritance, Public, protected en private inheritance, polymorphisme, (pure) virtuele functies, abstracte klassen (1#12+2#3)
4
Operator overloading (1#13+2#1) Functie templates en Klassentemplates Sequence containers en STL-iteratoren (2#2) Exception-afhandeling File I/O, binair of ascii met streams (2#5) Class persistentie, met streams, serialiseren (2#6)
1#13:1-3 2#2:1-2
5
Qt
Qt tutorial part 1 – 5, 2#10:1
6
Qt, Ontwerpbeslissingen bij container-classen
2#11:1
7
Qt
1#6:1,2, een uit 3-6, 8 1#9:1 Optioneel 1#11:1
Toets
Beoordeling en afronding Voor de afronding van deze module bestaan een aantal verplichtingen voor de deelnemer: op tijd ingeleverde prakticumopdrachten; met voldoende resultaat afgeronde individuele mondelinge nabespreking van de practicumopdrachten met de docent, dit levert een practikumcijfer op. toets maken. Het eindcijfer wordt alleen toegekend als het practicum met een voldoende (>=5.5) is afgesloten en de toets met cijfer >=3.5. Het eindcijfer wordt berekend op basis van de formule: 0.6 * toets + 0.4 * practicum.
4/5
Modulebeschrijving
©Fontys FHTenL Bestand: pro4_mdhl_nl.doc
Randvoorwaarden Voor de hoorcolleges is een ruimte met beamer nodig. Voor het practicum een lokaal met voor iedere deelnemende student een pc, met daarop geïnstalleerd Netbeans met C++/Qt-ontwikkelsoftware. De 6 uren practicum zijn verdeeld over 2 zittingen per week.
Evaluatie Na afloop zal een evaluatie gedaan worden met als doel de module kwalitatief te verbeteren. De gemaakte opmerkingen zullen worden meegenomen voor de volgende keer.
5/5