Objectgericht programmeren

Ga naar: navigatie, zoeken

Samenvattingen

Klik hier om de samenvattingen te bekijken

Veranderingen

Tot en met 2004 werd dit vak door dezelfde prof gegeven in het tweede jaar informatica onder de naam Informatie en programmastructuren

Tot en met 2006 bestond het uit 3 practica tijdens het jaar, en 1 groot eindpracticum.

Vanaf 2007 bestaat dit vak uit 1 groot practicum.

Examen

Leuven

Het practicum is vrij groot, begin dus op tijd. Het practicum is alles, er is dus geen examen, en de prof vraag ook niet echt theorie ofzo op de verdediging. Merk op dat elke methode formeel commentaar moet hebben, het commentaar is belangrijker dan je code voor dit vak! Als je in tijdsnood zit, is het beter om tijd te besteden in goede commentaar dan de laatste functionaliteiten toe te voegen.

Bij de verdediging opent prof Steegmans je project op zijn laptop, en stelt enkele vragen. Je moet een UML-klassediagram maken en meenemen naar de verdediging. De vragen gaan vaak hoe je een bepaald concept hebt toegepast in je code (bv defensief programmeren, wat is de multipliceit tussen die objecten, waarom heb je een klasse invariante opgelegd etc). Er worden geen details gevraagd. Het volstaat om de slides even te overlopen alvorens naar het examen te gaan.

Het is belangrijk rustig en niet zenuwachtig te zijn. Geen paniek als hij je wijst op een fout in de code. Toon dat je de fout snapt en stel een oplossing voor. Prof Steegmans zelf is vriendelijk, rustig en straalt die kalmte ook uit.

Vragen


De vragen bij OGP gaan over de concepten die je hebt toegepast tijdens je practicum. De vragen zijn niet moeilijk maar je moet echter de basis kennen van alle concepten die in het boek staan. Er wordt niet echt diep ingegaan op bepaalde aspecten van de cursus. Een beschrijving van wat het concept is/doet is voldoende en de prof is hier ook tevreden mee. Een goede voorbereiding voor de verdediging is de inhoudstafel van je boek opendoen en zorgen dat je bij ieder groot gedeelte weet waar het over gaat en dat je dit ook kan uitleggen.

  1. Wat is totaal, nominaal, defensief programmeren?
  2. Leg het concept klasse invariant uit.
  3. Leg uit: dynamisch binding en polymorfisme.
  4. Leg het substitutie principe van Liskov uit.
  5. Leg de associates uit aan de hand van je klassediagram en toon hoe je dit verwerkt hebt in je code.

...

Een extra tip: durf je fouten toegeven en zeg hoe je het anders zou doen, of gedaan zou hebben.

De bovenstaande vragen zijn allemaal te beantwoorden met behulp van je code. Je moet telkens een voorbeeld geven hoe je dit hebt toegepast.

Kortrijk

Er zijn 3 kleine practica onder het jaar die je in groep afwerkt, net zoals het eindpracticum. De practica onder het jaar staan niet op punten, maar worden wel gequoteerd zodat je een representatief cijfer kent voor het gepresteerde werk. Laat je niet in de grond stampen door slechte cijfers op deze practica, men wil enkel, zelfs van de allerbesten, dat ze het nog beter doen. Zorg ervoor dat je eindpracticum netjes afgewerkt is en begin er tijdig aan. Anders zou je wel eens heel wat werk kunnen hebben in de blokperiode (rekening houdende met een practicum statistiek).

Bij de verdediging kan je enkele theoretische vragen krijgen van prof. Decausmaecker, zoals het uitleggen wat overerving is, of wat het principe van Liskov is. Zorg dus dat je je theorie even bekeken hebt, en zeker de theorie die je gebruikt hebt in je practicum.

Je krijgt ook de opdracht om een JUnit test te schrijven. Dit gebeurt in een apart lokaal. Doe dit zorgvuldig en vergeet zeker niet te vermelden dat je heel wat meer JUnit testen zou moeten schrijven in werkelijkheid. Daar jij natuurlijk niet de nodige tijd hebt om alles af te werken (wat ze ook niet verwachten, ze willen enkel het globale idee zien).

Er zijn enkele delen in je eindpracticum die enkele moeten geïmplementeerd worden indien je voor een uitzonderlijk hoge score wilt gaan. Je doet er goed aan deze altijd te implementeren. Bovendien is het nog beter als je het concept van je uitwerking kan uitleggen en mogelijks op papier afgeven met je opdracht.