dinsdag 8 januari 2008

JAVA can be bad for you ...

Binnen enkele weken start het tweede semester, en dus ook weer het vak 'Methodiek van de Informatica' dat ik doceer aan de 1ste bachelor burgerlijk ingenieur. De bedoeling van dit vak is om enkele principes aan te leren over het ontwerpen van goede computerprogramma's en de manier van denken zoals die in de informatica gehanteerd wordt bij te brengen.

Noodzakelijkerwijze wordt hiervoor natuurlijk ook een programmeertaal gebruikt, zodat er praktische opgaven door de studenten kunnen uitgewerkt worden. Voor deze eerste cursus informatica is deze taal in de loop der jaren verschillende malen gewijzigd. Toen ik zelf een voorloper van dit vak voglde in het academiejaar 1984-1985 werd FORTRAN gebruikt (of eigenlijk een variant, WATFIV). Nadien zij ook nog Pascal en Scheme (een Lisp variant) aan bod gekomen. Ongeveer 10 jaar geleden werd een optie genomen om alle software-design cursussen die aan het dept. computerwetenschappen gedoceerd worden te ondersteunen met Java, en dat is dus nu nog steeds het geval.

Over Java als eerste programmeertaal in een computer science- of ingenieurs-curriculum worden soms eindeloze discussies gevoerd. Grosso modo gaat het dan over de tegenstelling tussen computer science enerzijds en software engineering anderzijds.

Een recente discussie op Slashdot vandaag (Professors Slam Java As "Damaging" To Students) levert weer wat ammunutie voor beide kampen.

P.S. Een goede site over (de theorie van) programmeertalen is Lambda The Ultimate.

3 opmerkingen:

Pieter zei

Java is niet slecht als een aanleer taal vor programeren. Maar er zijn een aantal pitfalls.

1) Te vergedreven focus op OO-ontwerp voordat studenten algorithmen kunnen programeren. Volgens mij is het belangrijker dat studenten eerst _zelf_ algorithmen hebben geprogrameerd voordat ze OO gaan doen.

2) Te verdoorgedreven focus op UI. UI leidt tot slechte OO-ontwerpen. UI programmas zouden verboden moeten worden in de eerste twee jaren.

3) Java heeft een enorm grote bibliotheek aan ondersteunende methods. Dat is zeer goed, maar ook een nadeel. Velen weten niet wat deze dingen doen. Vooral met gegevensstructuren kan dit voor problemen zorgen. Daarom eerste jaar verboden om die te gebruiken.

4) Iets waar ik vind dat ze op de KUL goed fout in gaan. Een te grote focus op java als programeer taal. Het zou verplicht moeten zijn om op het einde van het tweede jaar een vak te volgens waarin enkel maar andere talen (1 om de twee weken) worden aangeleerd. 1 week basis les, 1 week practica (misschien zelfs altijd hetzelde programma dat ze moeten implementeren, maar in een andere taal).

JH zei

Een interessante post op Coding Horror over computerwetenschappen opleidingen: http://www.codinghorror.com/blog/archives/001035.html

Sponzen ridder zei

Off topic: dat ik nu pas uw blog ontdek, terwijl ie al sinds 2006 bestaat.

Wij doen het anoniemer.

(hint: mtg, nayer, cw)