Visueel programmeren in Java

Auteur(s): 
dr. P.G. Kluit, Technische Informatica, Technische Universiteit Delft
drs. H.J. Sint, studiebegeleider, Faculteit Technische Wetenschappen, Open Universiteit
ir. F.J. Wester, disciplineleider, Faculteit Technische Wetenschappen, Open Universiteit
Samenvatting: 

De Open Universiteit en de TU Delft zijn samen begonnen aan een herziening van het inleidende programmeeronderwijs. Twee factoren hebben een rol gespeeld bij het besluit tot die herziening. Ten eerste is in beide instituten besloten om het procedurele paradigma in te ruilen voor het objectgeoriënteerde, met Java als programmeertaal. Omdat dit besluit nauwelijks revolutionair genoemd kan worden, zullen wij hier niet ingaan op de afwegingen die daarbij een rol hebben gespeeld. Wel willen we vast een probleem signaleren: de kracht van het objectgeoriënteerd programmeren wordt pas duidelijk in programma's van aanzienlijke omvang en is daarom moeilijk in een eerste programmeercursus over te brengen. Ten tweede merkten wij dat de studenten het programmeeronderwijs lang zo opwindend niet meer vinden als pakweg tien jaar geleden. Een reden voor dit verminderde enthousiasme lijkt de enorme kloof die er gaapt tussen de programma's waar studenten (bijvoorbeeld in een Windows-omgeving) zelf mee werken en de qua gebruikersinterface vrijwel triviale programma's die ze ontwikkelen in onze eerste programmeercursussen.
Recent zijn er (ook voor Java) programmeeromgevingen beschikbaar gekomen waarin de gebruiker vrijwel moeiteloos een grafisch interface kan definiëren, met de elementen die bekend zijn uit de Windows-omgeving, zoals menu's, knoppen en tekstvelden. De omgeving genereert de benodigde code voor dit interface; de programmeur kan zich beperken tot specificatie van benodigde event-handlers (bijvoorbeeld om vast te leggen wat er moet gebeuren als op een knop wordt geklikt). Uiteraard kan de code voor het interface desgewenst gebruik maken van zelf gedefinieerde objectklassen.
Een dergelijke omgeving vormt zelf een prachtige illustratie van de kracht van het OO-paradigma, onder meer doordat deze essentieel gebruik maakt van de beschikbaarheid van standaard Java-klassen. Ook kunnen studenten hiermee applicaties maken met een volwassen gebruikersinterface, wat het plezier in het programmeren sterk ten goede zal komen. Het gebruik ervan stelt ons echter ook voor de nodige didactische problemen. De gegenereerde code zal de studenten in eerste instantie als abacadabra overkomen. Zelfs vrij triviale Java-programma's maken al gebruik van standaardklassen; voor het inlezen en tonen van getallen gebeurt dat bovendien op een manier die niet erg doorzichtig is. Wij hebben deze problemen opgelost door de cursus te beginnen met een deel waarin uitsluitend gebruik gemaakt wordt van de standaard Java-klassen. In dit deel worden de studenten vertrouwd gemaakt met belangrijke OO-begrippen. Aan het eind van dit deel wordt ook de gegenereerde code begrepen. Pas daarna gaan de studenten zelf klassen definiëren en komen traditionele programmeertaalconstructies als expressies, keuze-opdrachten, en herhaling aan bod.
De cursus is nu nog in ontwikkeling, maar zal vanaf dit najaar in beide instituten gebruikt worden.

Doelgroep: