shutterstock_47730136

Een Java-cursus die ik al een jaar of 15 geef is de basiscursus voor Java SE (Java Programming). Ooit begonnen met Java SE versie 1.0, en inmiddels aangepast voor versie 1.7 (meestal Java SE 7 genoemd). De aanpassing is geleidelijk gegaan; steeds als er een nieuwe versie van Java uitkwam, werd de cursus herzien. Doordat er voortdurend nieuwe mogelijkheden aan Java werden toegevoegd, werd de cursus steeds voller. Hard werken voor de cursisten: ze zweetten en ze klaagden. Aan het eind van de week was iedereen altijd happy, dat wel, want ze hadden een hoop geleerd. Maar er kwam een dag dat één cursus van één week te weinig uren had om alle onderwerpen (goed) te behandelen.

Een ander probleem, bij iedere cursus, is dat de voorkennis van cursisten zelden precies aansluit bij het niveau waarop de cursus begint. Om die reden is er een beginnerscursus, die je eerst kunt volgen (Java Fundamentals). Die cursus gaat er vanuit dat de deelnemers wel programmeerervaring hebben, maar niet in Java. In de Sun-tijd was dit een tamelijk eenvoudige cursus (destijds SL-110 geheten). Laag tempo, beetje simpele benadering. Degenen die daarna de Programming-cursus gingen doen (toen SL-275 geheten) herhaalden de stof van 5 dagen SL-110 in de eerste twee van de vijf dagen SL-275. Voor veel mensen was dit een reden om de beginnerscursus over te slaan en te vertrouwen op hun voorkennis, bijgespijkerd in die eerste twee dagen. De Java Programming-cursus was dé cursus. Fun voor de cursisten, fun voor de docent.

Sinds de overname van Sun door Oracle, een paar jaar geleden, zijn beide cursussen grondig herzien. Niet alleen om ze aan te passen aan de nieuwste versie van Java, maar ook om de stof beter te verdelen over beide cursussen. De herziene Java SE 7 Fundamentals-cursus (D67234GC20) is een serieuze kennismaking met Java, voor mensen met niet al te veel, of roestige, programmeerervaring. De belangrijkste concepten en taalconstructies worden behandeld, in een tempo waardoor ze alle tijd hebben om de stof echt te snappen. Voor mij als docent is het weer een cursus die bevredigt doordat er echt wat uit te leggen is; de deelnemers komen er tevreden vandaan omdat ze nu eindelijk echt snappen hoe Java (SE) werkt.

De herziene Java SE 7 Programming-cursus (D67238GC20) stapt nu op een veel hoger niveau in. De voorkennis van de Fundamentals-cursus is echt een vereiste: de daarin behandelde stof wordt nog maar summier of in een hoog tempo herhaald. De beginselen van de taal Java worden niet meer uitgebreid uitgelegd. Dat geeft de ruimte om een overvloed aan belangrijke onderwerpen te behandelen. Het gaat natuurlijk over Java (de taal en de class libraries), maar ook over design patterns, over collections en generics, over Java I/O en multithreading, en over het werken met databases. Er heeft een verschuiving plaatsgevonden, die de kwaliteit van de cursus ten goede is gekomen. Voor het eerst wordt nu alle stof behandeld die gekend moet worden voor het bijbehorende certificaat (Oracle Certified Programmer).

Het probleem waar ik bij het geven van de Programming-cursus meermalen tegenaan ben gelopen is dat die verschuiving nog niet lijkt te zijn doorgedrongen tot de wereld. Ik krijg cursisten die niet de Fundamentals-cursus hebben gevolgd (wat niet verplicht is) maar die ook niet de bijbehorende voorkennis hebben. Een minder ervaren programmeur kan aardig gefrustreerd raken. Het tempo is hoog, er is weinig tijd om te oefenen met al die nieuwe dingen. De cursus levert wel wat op, maar het hangt van de overige cursisten af of er voldoende tijd is om de elementaire dingen nog een keer goed uit te leggen. En dat gaat altijd ten koste van andere onderwerpen.

Ik wil maar zeggen, wereld: kijk nog eens goed naar de beschrijving van de twee cursussen op de Oracle-site. En overweeg om toch eerst de Fundamentals-cursus te volgen als je ervaring niet aansluit bij de Programming-cursus. Ik heb al genoeg programmeurszweet moeten ruiken in mijn klas. Om niet te spreken over mijn eigen zweet.

Advertenties