We zijn nu een half jaar bezig op deze school. Hoe gaan we de ontwikkeling de komende maanden en jaren doorzetten? Hoe maken we de verbinding tussen lesstof en leerdoelen, tussen lessen en leerlingen? Hoe verzorgen we een opleiding waarbij we niet alleen een mooi papiertje met een cijfer geven maar ook diepgang en achtergrond die op lange termijn van waarde zijn. Hoe bieden we een digitaal landschap aan dat past bij het onderwijs qua inzetbaarheid en kosten?
Instromende en uitstromende leerlingen
Wij geven dit vak Informatica als onderdeel van een technisch curriculum dat bestaat uit 4 vakken op 3 niveaus. Leerlingen die in de vierde het vak Informatica hebben gekozen krijgen het voor het eerst en wel als keuzevak. Een deel van de leerlingen zal het in 5H, 5V of 6V ook weer laten vallen.
De niveauverschillen zijn fors
Een aanzienlijk deel van de leerlingen heeft een achtergrond als gamer of als pc-hobbyist. Iedere leerling heeft wel wat kennis van Windows en Office, ook doordat bij O&O expliciet aandacht wordt besteed aan dit onderdeel. Maar er zijn erbij die ‘nu eenmaal niets met computers’ hebben en ‘dit vak gekozen hebben omdat het moest in dit pakket’. De niveauverschillen zijn dus gigantisch en dit zal ertoe leiden dat de ‘slechtste’ leerling die uitstroomt uit H5 minder niveau heeft dan de ‘beste’ leerling die instroomt in H4.
Computer thuis
Niet iedere leerling beschikt thuis over een systeem dat geschikt is als corona-thuiswerkplek. De school heeft veel systemen uitgeleend maar ook dan vallen er nog leerlingen tussen wal en schip – ook door hun eigen nalaten. Een handvol systemen is door de docent op eigen initiatief uitgeleend – afgeschreven all-in-ones met Pop!_OS.
Om aankomende leerlingen te attenderen op dit vak bij de keuze van een studieprofiel en een miskoop bij een eventuele aanschaf van een computer te voorkomen heb ik een presentatie “Informatica Kiezen” gemaakt en rondgestuurd naar de mentoren van klas 3. Saillant detail hieruit is dat een eigen computer voor het vak niet nodig of verplicht is maar dat een leerling zonder computer die hij zelf gebruikt en beheert sowieso op achterstand raakt.
In omgekeerde volgorde
SLO heeft een abstract eindexamenprogramma vastgesteld dat naar mijn mening alleen te lezen en te begrijpen is als je op academisch niveau informatica hebt gestudeerd. Voor het VWO is dat nog uit te leggen maar voor de Havo is het hooguit algemeen vormend maar dit biedt zeker geen basis voor het Hoger Beroeps Onderwijs. Als we leerlingen met alleen wat kennis van Office gelijk blootstellen aan academische abstracties is dat vragen om problemen.
Het SLO-programma gaat ervan uit dat je eerst de verplichte domeinen doorloopt waarna er genoeg ruimte (lees:tijd) is voor de keuzedomeinen. Maar naar mijn idee is dat verplichte deel als basis praktisch onhaalbaar omdat er leerlingen binnenkomen zonder enige technische- of programmeer-achtergrond. Wie weet had SLO erop gerekend dat er in de onderbouw al Informatica op het menu zou staan, maar dat staat in ieder geval niet op papier.
Roadmaps als leidraad
Om dit euvel op te lossen keren we de boel om: we doen eerst de keuzedelen en met de context die we hierbij gecreëerd hebben kunnen we de theoretische domeinen neerzetten in de leefwereld van de leerling. De tweedeling die je ziet in de arbeidsmarkt van web-development passen we toe in het onderwijs: Front-End versus Back-End.
Hoe krijg ik het mooi en Hoe krijg ik het werkend zijn de leervragen die in deze roadmaps gelden. Front-End begint aan het keuzedomein User Interface / User Experience (UX/UI) en de back-enders leren over de toegang tot de database vanaf het web. In deze keuzedelen leren we dan de context die we zullen gaan gebruiken voor onderdelen als Algoritmen en Grammatica’s.
We blijven ons curriculum aanpassen
De komende drie tot vijf jaar zullen we jaarlijks flinke stukken curriculum moeten toevoegen. Ook omdat er altijd onderdelen moeten verdwijnen of veranderen. Dit is inherent aan het vak. De ontwikkelingen in de industrie gaan ook steeds sneller, hetgeen je terugziet in de populariteit van Agile werkwijzen.
Als lesmateriaal gebruiken we grotendeels bestaande tutorials die via web of youtube worden aangeboden. We maken dus geen gebruik van een gekochte methode. Ze zijn natuurlijk veelbelovend maar in de praktijk zie je vooral modules geschreven door docenten en amper modules geschreven door vak-experts. Inhoudelijk verouderd en dus vaak moeilijk compatible met moderne software is de ervaring van de docent.
Hoe zijn we gestart?
De systemen die we gebruiken in het lokaal passen nog niet bij de roadmaps die we voorgesteld hebben. De schermen zijn te klein om op te ontwerpen. Ook kun je niet een code-tutorial kijken en deze op de andere schermhelft direct nadoen. Behalve Adobe Creative Cloud en Notepad++ als code-editor staat er werkelijk niets op de computers. De mogelijkheden om via Microsoft Onedrive – bedoeld als office-documentopslag – ook code te bewaren zijn heel beperkt en leiden tot verlies van code. Netwerken en systemen zijn uit veiligheid dichtgetimmerd op zodanige wijze dat je ze ook niet om legitieme redenen kunt gebruiken, bijvoorbeeld voor het uploaden van je PHP-code naar je eigen webserver.
Wel uploaden naar een echte webserver
Met name voor back-end was er dus een te kleine ruimte in software land. Gelukkig mochten we wel een eigen netwerkje starten met afgeschreven modellen. Met Pop!_OS Linux en de brede keuze uit de Pop!Shop hebben de leerlingen zelf snel software voor ontwikkelaars geïnstalleerd. De netwerktoegang vanuit dit netwerkje naar deze webserver “seven.airybubbles7.nl” is opengezet zodat de leerlingen PHP-code kunnen up-en downloaden. Op deze webserver draait ook de database de ze dan met eigen code kunnen benaderen.
De realisatie van deze online productie omgeving is corona-proof want de leerlingen kunnen er thuis natuurlijk ook bij. Ook zijn we nu al stukken verder dan de gemiddelde middelbare school die de Internet-programmeertaal PHP aanbiedt vanaf een USB-stick. Op deze manier ‘dood’ onderwijs aanbieden moet kost wat kost voorkomen worden, want dan creëren we niet de context waar het om te doen is.
Problemen met de PHP Ontwikkel Omgeving
Als PHP-editor hebben we gekozen voor Visual Studio. De leerlingen thuis lopen tegen een stijle leercurve aan. Gebruik maken van de fancy extra’s die deze omgeving biedt zit er niet voor iedereen in. Ook het gebruik van Composer of libraries gaat ons niet lukken, want met zoveel losse files syncht Onedrive niet altijd. Een commercieel alternatief als Jetbrains Phpstorm geeft gratis versies weg aan studentenden en docenten. Dit zou een optie kunnen zijn.
Hoe dan ze dat elders?
De problemen die wij hebben bij de beschikbaarheid van software worden op andere scholen deels opgelost in de cloud. De beschikbaarheid van software via deze ‘Software as a Service’ (SAAS) toepassingen biedt zeker veel kansen. Scratch, Replit en Edabit zijn hier goede voorbeelden van. In de praktijk zijn er de ervaringen wisselend.
Het maken van accounts gaat dankzij onze verplichte fake-namen gewoon prima en met name het gesponsorde Scratch werkt vrijwel perfect. Maar bij het commerciële Replit zie je dat je met een gratis account niet zo ver komt en ook is de omgeving afwijkend van standaard-python, waardoor je tutorials uit de pas lopen met je toolset. Je moet ofwel alle ballen op Replit zetten, een betaald account aanbieden en dan ook dieper de kennis induiken, of Python aanbieden via een andere manier. Python, juist een taal die je wilt gebruiken voor Physical computing (een kastje met een knopje en een lampje zelf maken) is weinig aantrekkelijk om een cloud-only dialect als Replit van aan te leren. Al je boeken en tutorials doen het gewoon net niet.
Edabit bewees zich snel als platform om gedifferentieerd programmeer-puzzels aan te bieden en zo te werken aan de verplichte programmeerdomeinen D1 en D2. Ik had 3 weken ingepland maar binnen 2 lessen waren er al leerlingen door hun ‘gratis’ account heen gefietst. Bleek dat een paywall was geïntroduceerd, halverwege het schooljaar. En zonder enig budget is dat einde oefening.
Programmeren voor Front End
Het zou bijna lijken alsof alleen de back-enders hoeven te leren programmeren. Dat is niet zo. Een eerste kennismaking hebben we gedaan met Scratch. Collega’s kunnen hierop neerkijken, want volgens sommigen is dit geen ‘echt’ programmeren. Ik zie het als een kennismaking die kan worden uitgediept in een samenwerking met een back-end ontwikkelaar of een programmeer-toepassing in de kunsten. Daarvoor bied ik de taal Processing aan op individuele en experimentele basis. Ook hier geldt weer dat de software alleen op Linux of via een cloud-service beschikbaar is. Hoe jammer als je eigenlijk wilt dat die software-stacks naadloos samen werken!
Wat je in de praktijk vaak ziet is dat Front-Enders doorgroeien naar artist. Behalve installaties op basis van de taal Processing zie je vaak dat er devices worden gebouwd die je dan terugziet op expo’s. Deze Internet-of-Things worden vaak gebouwd met de goedkope, makkelijk beschikbare open source omgevingen van Arduino en Raspberry Pi.
3D Ontwerp op de lange baan
Ons eerste idee voor een contextrijke omgeving om de basis te leren was de 3D wereld van Blender. Je kunt erin vormgeven maar je kunt er ook met Python in programmeren. Het verplichte deel Visualiseren van Informatie kun je hier mooi uitwerken. Hoewel de software vlot werd geïnstalleerd bleek de hardware ontoereikend qua rekenkracht om echt iets te kunnen, waarna we hebben ingezet op web-development als alternatief.
Hier zie je maar weer dat je nooit alles tevoren kunt bepalen en vastpinnen. Je moet doorgaan met wat werkt en hetgeen minder goed werkt, dat moet je vervangen of aanpassen.
Wat we willen nog aanschaffen?
Het keuzedomein Physical Computing leent zich voor zowel front- als backend, omdat we er een volledig platform kunnen aanbieden van buitenkant tot binnenkant. In het onderwijs zijn de Arduino’s en Raspberry Pi’s geweldig succesvol. Een valkuil is dat het ‘werken met device X’ een doel op zich wordt. Een samenwerking met het vak O&O en D&P is hier zeker mogelijk.
Arduino’s uit China
De kloon uit China is 20 euro goedkoper dan de originele Uno. Je zou er goed aan doen ze allebei in huis te hebben want de klonen doen niet alles goed. Het voordelige basisboard kan niet zonder uitbreidings-sets en ander elektronica materiaal. Het is immers een platform.
Je moet ook denken aan dozen en planken voor de opslag van deze projecten. Issues zijn er te verwachten rond permissie-problemen op Windows bij het uploaden van code naar het board en de zoektocht naar een nuttige context voor een opdracht.
Raspberry Pi
Een computer op een single board, dat is een RPI. Sluit je keyboard, muis, monitor en netwerkkabel maar aan. Rond de 50 euro.
Dit platform biedt meer computing power dan een Arduino. Voor desktop / office gebruik is het net aan de lichte kant, maar wat code programmeren gaat prima.
Nadeel van deze boards is dat de SD-Card geheugenchip als harde schijf werkt en die gaan snel stuk bij ‘normaal’ gebruik. De RPI zou gedraaid kunnen worden in ons beveiligde aparte Linux netwerk. Logisch ook, want Linux is als systeem bij uitstek geschikt voor dit board.
Bij dit platform zou ik beginnen met een serie basis-sets en enkele uitbreidings-sets. Koop alleen originele of aanbevolen producten als voeding of SD Cards. Denk ook aan dozen voor de opslag en biedt elke deelnemer een eigen SD Card aan. Nieuwe kopen is 50% meelappen!
Als we alle dure nieuwe systemen in het lokaal met Windows uitrusten dan is hier een uitgelezen optie om toch nog voordelig en flexibel aan de slag te gaan.
Opzetje leerlijnen versie 2
Allen | Front End | Back End | |
Start | WordPress web publishing | ||
Basiscode Web | Basis HTML | ||
8 lessen basis programmeren | Hedy, de nieuwe leer-programmeren-taal van Felienne Hermans. | ||
8 lessen basis vormgeving | Illustrator / vector art | ||
Keuze maken | Kies je Roadmap: front-end of back-end. | ||
Verdieping Roadmap | Huisstijl Design | Database Web app | |
Verdieping Roadmap | UI/UX met Adobe XD | Databases of Security | |
Algoritmen | Image, Audio en Video Compressie Algoritmes | N.N.B. | |
Finite State Machines | Image Flattening en andere lossy compressies | Compiled vs Scripted Languages | |
Grammatica’s | Processing | Python / Things | |
Physical Computing | Arduino Art Thing | RPI of Arduino Expo Thing. Python. |
De Software Stack
De afgelopen maanden heb ik met de collega’s een lijst aangelegd van software die bij de 4 technische vakken wordt gebruikt.
Plan A. De lijst met op alles Windows
De bedoeling is dat met de uitrol van nieuwe hardware destapel software beschikbaar komt op het enige officieel ondersteunde platform in onze scholenkoepel. De lijst lijkt met 30 stuks vrij lang, maar als je daarmee 4 vakken op 3 niveau’s bedient is dat slechts relatief.
Met name voor back-end moet er software vanaf de linux-hoek naar windows worden omgezet. Ik voorzie problemen met de beveiliging rond networking en arduino en rond de synchronisatie van codebases (lees:onedrive) rond python, python-pip. Uitbreidingen van Visual Studio voor PHP kunnen ook problemen geven – de ingebouwde webserver. Systeembeheer heeft nog niet gereageerd op een verzoek naar de status van een inventarisatie van de lijst.
Plan B. Toch een Linux hoek behouden
Het heeft niet mijn voorkeur maar het kan de enige manier zijn om bepaalde functionaliteit aan te bieden. Echter, opslag wordt niet toegestaan door de scholenkoepel. Met een beperkt aantal systemen, grote klassen en een wisselende verhouding front/back end en ook nog het gebruik van het lokaal met O&O staat garant voor een grote chaos die met de hand niet meer te managen valt. Daarom heb ik ook zelf de knuppel in het hoenderhok gegooid.
Zoals we het nu gedaan hebben gaat kleinschalig, maar als je moet professionaliseren. Dat zou je met user accounts op een server en met het synchen van bestanden ofwel via Onedrive ofwel via een cloud alternatief als Nextcloud kunnen doen. Het zou goed zijn duidelijk te krijgen waarom we hiervoor de bestaande infrastructuur niet kunnen gebruiken. We hebben wel een single sign on met allerlei online webapps maar niet met onze eigen infra. Het waarom hiervan heb ik nog niet op papier gezien.
Plan C. Ga commercieel en in de cloud.
Anticiperend op het cancellen van lijst A en het doorstrepen van plan B heb ik Plan C erin gegooid. Op lijst A staat allemaal Open Source software. Geen licentie gedoe. Dat is niet altijd de beste software. Er zijn vaak wat meer problemen om alles in te richten. Je hebt een grotere stapel software nodig en dat maakt het lastig en duurder.
Professionals werken vaak niet met de open source tools. Zij kiezen voor een commercieel alternatief. Om dezelfde reden bieden wij voor front-end het pakket van Adobe aan. Waarom gaan we voor back-end dan niet ook deze kant op?
- Phpstorm voor PHP. Er is een gratis licentievoor het onderwijs op basis van email-adressen. Dat moeten wij kunnen regelen. Phpstorm kan de upload verzorgen zodat Filezilla/Winscp niet nodig is.
- Pycharm voor Python. Van dezelfde maker als PHPstorm. Dezelfde gunstige licentie.
- Budget voor online tools. Een pay-account voor online oplossingen als Edabit of Replit kan het verschil maken als er geen betere optie is.
Conclusie keuze Software Stack
Het kiezen voor een plan A of C, dus op basis van Windows, is een prima keuze en dit kan altijd nog worden gecombineerd met commercieel beschikbare software onder een onderwijs licentie en physical computing draaiend op meer flexibele platforms, een plan B-light. Een keuze voor een brede Linux-stack is mogelijk goedkoper op lange termijn maar botst met interne policies.