Studiegids

nl en

Programmeertechnieken

Vak
2018-2019

Toegangseisen

Programmeermethoden.

Beschrijving

Het college Programmeertechnieken is het vervolg op het college Programmeermethoden. Het doel van het college is de programmeervaardigheden van de studenten verder te ontwikkelen en de studenten uit te rusten met gereedschappen die zij nodig hebben bij de geavanceerdere colleges in de latere studiejaren en hun latere professionele loopbaan. In het eerste deel van het college wordt dieper ingegaan op de principes van object-georienteerd programmeren. Hierbij wordt voortgebouwd op de C++ kennis die is opgedaan in het college Programmeermethoden. Onderwerpen die zullen worden behandeld zijn onder andere: inheritance, polymorphism, const correctness, interfaces, templates/generics, operator overloading en gebruik van de C++ standard template libraries: STL & Boost. De principes zullen zo veel mogelijk op een abstract niveau worden gepresenteerd. Het tweede deel van de cursus richt zich op het ontwikkelen van vaardigheden voor het werken aan grote softwaresystemen. Ten eerste zal er uitgebreid worden stilgestaan bij memory management in C/C++. Memory management is een kritiek deel van elk C/C++ programma en vaak de bron van fouten. Geheugenallocatie, geavanceerde pointer manipulatie, valkuilen van memory management en hulpmiddelen voor debugging zullen nader worden bekeken. Ten tweede zal er aandacht zijn voor het gebruik van bestaande bibliotheken (libraries) in eigen software, het zelf ontwikkelen van bibliotheken om software te modulariseren, het testen van software, build systemen en gebruik van scripttalen. In het derde en laatste deel verschuift de focus naar het ontwerpen van softwaresystemen en het werken met uitgebreide bestaande Application Programming Interfaces (APIs) en moderne ontwikkelomgevingen. Gebaseerd op de vergaarde kennis over de basisprincipes

Leerdoelen

Het kunnen uitleggen en gebruiken van standaard constructies uit het object-georienteerd programmeren. Gebruik kunnen maken van de C++ standard template library. Het kunnen interpreteren van eenvoudige klassendiagrammen. Het kunnen toepassen van geavanceerde pointermanipulatie en hulpmiddelen voor het debuggen van memory errors. Bestaande bibliotheken (shared libraries) kunnen gebruiken en zelf nieuwe bibliotheken kunnen schrijven. Simpele scripts kunnen schrijven die gebruik maken van bestaande modules. Een plan van aanpak kunnen voorstellen om software te testen. Kunnen omgaan met build systems en zelf complexe software kunnen compileren. Verschillen tussen C++ en C# syntax en semantiek kunnen benoemen. Het kunnen ontwerpen en implementeren van softwarecomponenten binnen een gestandaardiseerd framework. Het kunnen duiden en toepassen van elementaire design patterns. Een nieuwe klassenhierarchie kunnen ontwerpen op basis van best practices en design patterns en deze kunnen implementeren.

Rooster

Het meest recente rooster is te vinden op de Studenten-website:

Onderwijsvorm

hoorcollege, practicum, tentamen

Toetsing

De toetsing van het vak omvat een uitgebreid practicum gedurende het gehele semester en een tentamen. Het practicum bestaat uit een drietal opdrachten. Tevens zullen er gedurende het semester drie huiswerkopdrachten moeten worden ingeleverd. Het eindcijfer is het gewogen gemiddelde van de resultaten van de drie practicumopdrachten (60%) en het tentamen (40%). De gewichten behorende bij de opdrachten worden bij aanvang van het college bekend gemaakt op de website van het vak. Om te kunnen slagen voor het vak moeten (1) de resultaten van alle practicumopdrachten minimaal een 5,5 zijn, (2) het tentamencijfer minimaal een 5,5 zijn en (3) alle huiswerkopdrachten moeten naar behoren zijn ingeleverd. Merk op dat de resultaten van de huiswerkopdrachten niet meewegen in het eindcijfer.

Literatuur

Wordt nog bekend gemaakt.

Aanmelden

Aanmelden via uSis: Selfservice > Studentencentrum > Inschrijven
Activiteitencodes te vinden via de studentenwebsite onder de tab 'Wiskunde en Natuurwetenschappen'.

Contact

Onderwijscoordinator Riet Derogee[ms. Riet Derogee](mailto: BSc-Infcoor@liacs.leidenuniv.nl)