HBO docent informatica hier

. Ik zag het topic al een tijdje geleden voorbijkomen en moet nu toch eens reageren. Even heel kort: ik heb aan 2 HBO-ICT opleidingen lesgegeven, ben nu opleidingscoördinator en heb totdat ik kids kreeg altijd nog mijn eigen bedrijf met opdrachten gehad. Ik ben werkzaam geweest in de financiële sector (.Net en Java) en heb een WO opleiding informatica gedaan. Ik programmeer al sinds mijn 9e jaar en kan redelijk lezen en schrijven met verschillende programmeertalen. Als hobby schreef ik als tiener games, omdat die me het meest uitdaagden..
Goed, mijn perspectief. Allereerst is het zo dat ik absoluut vind dat je studenten niet onveilige code moet voorschotelen, maar er is nog iets anders. En dat zijn de studenten zelf, en de didactiek. Als docent moet je eigenlijk én goed zijn in je vak én goed zijn met mensen. Met als complicerende factor dat de ICT steeds veranderd (maar ook weer niet, later meer).
Didactiek: overdragen van stof is een vak apart; de goede docenten hier zijn vaak pas goed na een paar jaar. Wanneer ze doorkrijgen dat 17-jarige havisten over het algemeen (nog) geen goed beeld hebben van de enorme breedte van het vak, en de voorgenomen interesses vaak puberaal. Bij een eerdere opleiding waar ik werkte startte men met leren programmeren in php. Dat is didactisch gezien al geen goed idee, Want je moet dan ook HTTP, browsers, html, escaping en al die dingen begrijpen. Didactisch gezien wil je je focussen op een ding tegelijk, anders verzuipen studenten gewoon in de stof.
Gemiddeld genomen heb je enkele, meerdere lessen met huiswerk en toetsing nodig om concepten als een dubbele array goed te laten landen.
Ondanks dat we in jaar 1 al polymorfisme uitleggen met OO programmeren hebben 50-75% van studenten moeite om in het derde jaar het verschil tussen een abstracte klasse en een interface uit te leggen. We herhalen dit bewust grote delen van het tweede jaar. Dit om even aan te geven wat onze "struggles" zijn als docent.
Als opleiding moet je ook keuzes maken. ALs ik naar mezelf kijk heb ik heel weinig moeite om mee te gaan met de vernieuwingen. Waarom is dat? Omdat mijn basis zo goed is.Zo hebben we een vak waar we met tomEE en/of springboot applicaties bouwen (vnl. REST endpoints). Ik heb dat voor het laatst in .NET gedaan vanuit mijn zaak. Ik had welgeteld 1-2 dagen nodig om me dat hele vak eigen te maken. Omdat alle concepten hetzelfde waren. Een opleiding moet m.i. dan ook conceptueel zijn. Moderne SPA webpagina's zijn niets meer dan een ontkoppeling van frontend met de backend. De begrippen ontkoppeling, frontend, backend moeten dan ook duidelijk zijn. Dat vak waar ik het over heb gaat dan ook daarover.
Als opleiding is het dan ook heel lastig om met Hypes mee te gaan. Zo hadden we een heel vak Angular gemaakt maar het jaar daarop was er een nieuwe versie van Angular.. (persoonlijk heb ik een bloedhekel aan javascript frameworks, vooral omdat het vooral gaat over waar je iets moet typen, en maar weinig over die concepten). Vak overboord? Hmm. Wat we nu vooral doen is de concepten uitleggen en de studenten de implementatie kiezen met als risico dat de desbetreffende docent de implementatie niet kent (uiteraard doen we dit niet aan het begin van de studie). We hebben ook een vak waarin studenten zelf een nieuwe taal moeten leren zonder hulp van ons (want dat moet immers als je gaat werken ook).
Wat we wel doen is ze met ontwikkelstraten, auto-testen, CI, laten werken omdat dat concepten zijn die ook veel gevraagd worden in het bedrijfsleven. Maar wij doen dat met de Atlassian stack. Ga je ergens werken dan doe je dat met iets anders. Ergens anders klikken, zelfde concepten. Wij gebruiken GIT. Bedrijf X gebruikt SVN of TFS ofzo.
Studenten nemen me dat wel eens kwalijk. Ze verwachten dan dat iedere docent precies weet waar je op moet klikken. Maar als ik een project begeleid waarbij ze iets moeten doen in een ander framework (wat ik niet ken) dan moet ik zeggen dat ze meer weten van het framework dan ik. Maar als ik een code-review met ze houd dan zijn ze me altijd heel dankbaar en leren ze heel veel. En dan ken ik het framework niet eens

- gewoon ervaring. Ze nemen me het ook kwalijk als ik ze geen antwoord geef (en het wel weet). Dan zeg ik: heb je wel eens gezocht op die foutmelding. Hebben ze niet gedaan. Laat ik ze eerst zoeken, of ik doe het live voor (LMGTFY.com). Vervolgens krijg ik verwijten - maar ik wil ze juist leren zelfstandig te zijn. Dat moet, in de ICT moet je het uiteindelijk gewoon zelf doen en niet hangen aan docenten of collega's.
Maar wat zijn hypes en wat zijn concepten? Is cloud/AWS nou werkelijk zoiets nieuws? Moet dat in de opleiding? Geef ik ze AWS en dan krijgen ze iets met microsoft in de praktijk en begint het bedrijf te klagen. Tsja. Maar ik zie niet in hoe cloud nou fundamenteel anders is dan zelf een server bouwen. Ik laat ze liever een server bouwen (krijg je geklaag, dat doet toch niemand meer), omdat je dan de cloud beter begrijpt.
Zelfde met ontwerpen en documenteren. Iedereen ontwerpt. Sommigen documenteren. Maar ontwerpen gaat over goede keuzes maken die lang meegaan en refactoren gaat over het omzetten van code van het ene ontwerp naar het andere. Maar je moet wel laten zien dat je er over na kunt denken. Dus wanneer de studenten het tekenen van een diagram ouderwets vinden (dat doen ze op stage ook niet) dan vraag ik hoe ze dan hun keuzes duidelijk maken. En ik ben de moeilijkste niet, maar bijvoorbeeld UML is wel een (standaard) manier om dit te doen. Voor mij is een foto van een whiteboard sessie ook goed. Maar het gaat me er nou juist om dat er af en toe whiteboard sessies gehouden worden!
Wat ik wel graag in de opleiding wil zijn zaken als AI, big data, functional programming, maar laat iemand nou eens in een ivoren toren bedacht hebben om HBO-I wiskundeluw te maken (geen wiskunde vereist) waardoor wanneer het nou echt interessant wordt je dit niet kunt doen. Hogere-orde functies, monads, theoretische principes als closures .. ik kan er hele dagen over praten maar helaas, ik denk dat het binnen de opleiding maar voor een kleine minderheid interessant is (en aan hen bied ik het ook wel aan).
Kleine anekdote: ik had op een toets eens een vraag (tweedejaars) gemaakt om in c# een klasse breuk te maken met een teller en een noemer en dan de operator * te overloaden voor de klasse breuk. Ik was er alleen vergeten in te zetten hoe je breuken (wiskundig) vermenigvuldigt. Het was een ware slachting.
TLDR; ik denk dat de opleiding conceptueel moet zijn en studenten zoveel mogelijk getoetst moeten worden op het zelfstandig aanleren van nieuwe implementaties. Concepten veranderen echt niet zoveel in de 29 jaar dat ik hier al mee bezig ben (ben nu 38) maar dan worden we beschuldigd van ouderwets zijn. Security meenemen als good practice ben ik helemaal voor (en doen we ook).
Als er meer prangende vragen zijn ben ik bereid deze te beantwoorden in dit topic.
Edit:
Nog een ding over gastcolleges: die zijn vaak geen succes omdat de gemiddelde gastdocent amper kan aansluiten bij de beleving/ het kennisniveau van de student.