OO Programming (B-ODISEE-OGI05F)

6 studiepuntenNederlands54 urenTweede semesterTweede semesterUitgesloten voor examencontract
Van Assche Kristien (coördinator) |  Blancquaert Yves |  Jacobs Evert-Jan |  Van Assche Kristien |  Verbeeck Katja |  Vermeulen Tim |  Wyns Mario  | MinderMeer
Kernteam Elektronica-ICT Gent

De algemene toelatingsvoorwaarden en de dwingende volgtijdelijkheid zijn beschreven in het onderwijs- en examenreglement.

Volgende opleidingsonderdelen (OPO's) dienen gevolgd te zijn:     

  • Programming Fundamentals (OGI02C)

Onderwijsleeractiviteiten

6 sp. OO Programming (B-ODISEE-OGI05u)

6 studiepuntenNederlandsWerkvorm: College-practicum-opdracht54 urenTweede semesterTweede semester
Blancquaert Yves |  Jacobs Evert-Jan |  Van Assche Kristien |  Verbeeck Katja |  Vermeulen Tim |  Wyns Mario  | MinderMeer
Kernteam Elektronica-ICT Gent

Basisconcepten programmeertaal Java

  • primitieve types en hun operatoren
  • controle- en selectiestructuren
  • klassen uit de Java API: String, Math, Integer, ...
  • arrays in Java (1dim, 2dim)
  • procedurele abstractie (methoden) en data abstractie (klassen en objecten)

Objectoriëntatie in Java

De basisprincipes m.b.t. object-geörienteerd programmeren onder de knie hebben: 

  • Objecttypes vs primitieve types, referentie naar object
  • Zichtbaarheid van klassen en members van klasse (access modifiers: public, private, protected)
  • Object initialisatie a.d.h.v. constructoren (standaard, niet-standaard, copy)
  • Method overloading, incl. constructor overloading
  • Accessoren (getters) en mutatoren (setters)
  • Object zien als een container van data (compositie, generische lijsten, array van objecten als dataveld)
  • Klassemethoden versus objectmethoden
  • Overerving (method overriding met o.a. toString & equals)
  • Gepast gebruik van Java sleutelwoorden: this, super, static, final, abstract
  • Polymorfisme
  • Interfaces
    • Comparable interfaces uit de Java API
    • Sorteren van elementen in een collectie via methoden Arrays.sort of Collections.sort
    • Een eigen interface kunnen definiëren
    • Een interface (eigen of bestaande uit Java API) kunnen implementeren
  • De collection klasse ArrayList als implementatie van de List en Collection interfaces

Grafische toepassingen kunnen schrijven:

  • Gebruik van grafische componenten: JTextField, JLabel, JButton, JRadioButton, JCheckBox, JComboBox, JList, JTable, JScrollPane, JPanel, JTextArea, JTabbedPane, ...
  • Gebruik van afbeeldingen/figuren: ImageIcon
  • Event handling kunnen implementeren

Algemene programmeervaardigheid bij het schrijven van Java toepassingen:

  • Console en grafische toepassingen kunnen ontwikkelen in een volwaardige software ontwikkelomgeving (IntelliJ IDE).
  • Object-georiënteerde toepassingen kunnen schrijven waarbij de logica (set van logische klassen) gescheiden wordt van de presentatie (Console of GUI als gebruikersinterface)
  • Met packages kunnen werken en weten welke onderdelen er in onder te brengen
  • Aangereikte logica kunnen integreren in een toepassing (console en/of grafische toepassing)
  • Debuggen als een natuurlijke reflex hebben bij het oplossen van problemen
  • Code kunnen valideren aan de hand van aangereikte JUnit testen
  • De Java API documentatie vlot kunnen raadplegen en gericht kunnen gebruiken in je toepassingen
  • Een robuuste toepassing ontwikkelen via gepaste exception handling
  • Programma's op een professionele manier documenteren (javadoc, commentaar)
  • Een consequente en verzorgde programmeerstijl hanteren (goede naamgeving volgens conventies, correcte indentatie van codeblokken)
  • Grotere programmeerproblemen in kleinere deelproblemen kunnen opsplitsen
  • Efficiënte code schrijven door hergebruik van klassen, methoden (overerving & compositie)
  • Zinvol aanwenden van constanten en enumeraties
  • Een opgegeven UML-klassendiagramma kunnen omzetten naar zijn concrete implementatie
  • Data kunnen verzamelen, raadplegen, bewerken en sorteren via gebruik van gepaste datastructuren: array, ArrayList, ...
  • Zinvol inzetten van generische collection klassen

  • Online Java API
  • Online presentaties en codevoorbeelden op leerplatform Toledo
  • Internetbronnen

De presentaties en lessen worden aangeboden in de Nederlandse taal.
Toch is het mogelijk dat er wordt verwezen naar Engelstalige (online) literatuur of dat er Engelstalige termen worden gebruikt.

Deze OPO wordt georganiseerd over 8 weken. Er wordt 2x1u theorieles per week voorzien. Deze theorielessen worden fysiek op de campus georganiseerd.
Voor de wekelijkse labo's is aanwezigheid verplicht, tenzij expliciet anders aangegeven door de docent.
Concrete timing van de theorielessen, de labo's en de evaluaties zal in een introductieles toegelicht worden en ook via Toledo gecommuniceerd worden. 

Evaluatieactiviteiten

OO Programming (B-ODISEE-O73359)

Type : Permanente evaluatie zonder examen tijdens de examenperiode
Evaluatievorm : Ontwerp/Product, Self assessment/Peer assessment, Procesevaluatie, Take-home
Vraagvormen : Meerkeuzevragen, Open vragen, Gesloten vragen
Leermateriaal : Computer

ExamenmomentBeoordelingsschaal
TOTAAL1-20/20 puntenschaal

THEORIE: 2 toledotoetsen (40%)

  • OO fundamentals (15%)
  • OO advanced (25%)

LABO: 2 Individuele oefeningen (60%)

  • Individueel labo OO fundamentals (25%)
  • Individueel labo OO advanced (35%)

OPMERKINGEN:

  • Voortgang van de student wordt opgevolgd via de gerapporteerde JUnit testresultaten in Toledo, tijdens het labo.
    Die rapportering is een middel voor de docent om de student op te volgen. 
    Bij systematisch niet rapporteren van de voortgang kan de eindscore van de student aangepast worden. 
  • Mits voorleggen van een geldig ziekteattest, kan een inhaalmoment toegestaan worden. Informeer je docent vóór of indien niet mogelijk ten laatste op de dag van de evaluatie!
  • Indien door overmacht de evaluatie zoals hier beschreven niet door kan gaan, zal deze OPO op een andere manier geëvalueerd worden.
    Zulke aanpassing zal gecommuniceerd worden via het elektronisch leerplatform.
  • Bij alle evaluaties die op de campus plaatsvinden, mogen geen gen-AI tools (bv ChatGPT, Copilot) gebruikt worden.

  • Toledotoets OO (40%)
  • Individuele oefening OO (60%)

OPMERKING: Bij alle evaluaties die op de campus plaatsvinden, mogen geen gen-AI tools (bv ChatGPT, Copilot) gebruikt worden.