Opzet voor een 5 ECTS keuzevak
Dit is een uitwerking van een idee voor de opzet van een keuzevak Ethiek binnen het HBO-ICT. De structuur is gebaseerd op het boek “Ethics for People Who Work in Tech” van Marc Steen (2022). Het vak sluit aan bij de keuzevakbeschrijving die toegepaste ethiek centraal stelt: praktische besluitvorming, niet abstracte filosofie.
De cursusstructuur volgt de drie delen van het boek, maar het boek zelf is niet per se verplicht - zie mijn overwegingen daarover onderaan deze post in de sectie “Het boek verplicht of niet”.
Versiegeschiedenis
| Datum | Versie | Wijziging | |
|---|---|---|---|
| 2026-01-11 | 1.0 | Eerste uitwerking van… read more
Dark mode
SOFA mode
Home
Alle posts
Tags
Tags
Over mij
Atom feed
Bart van der WalPersoonlijke website
“Wie schrijft, die blijft!”
Software Engineering
Onderwijs
AI
SwimRun
Privacy
v1.1.0
Ethics for Software Engineers
Opzet voor een 5 ECTS keuzevak
11 januari 2026
Leestijd: 17 minuten
PDF
▶
Versiegeschiedenis
DRAFT
Datum
Status
Toelichting
11 jan 2026Gestart
Eerste idee
ethiek
onderwijs
software-engineering
Dit is een uitwerking van een idee voor de opzet van een keuzevak Ethiek binnen het HBO-ICT. De structuur is gebaseerd op het boek “Ethics for People Who Work in Tech” van Marc Steen (2022). Het vak sluit aan bij de keuzevakbeschrijving die toegepaste ethiek centraal stelt: praktische besluitvorming, niet abstracte filosofie.De cursusstructuur volgt de drie delen van het boek, maar het boek zelf is niet per se verplicht - zie mijn overwegingen daarover onderaan deze post in de sectie “Het boek verplicht of niet”.Versiegeschiedenis
Datum
Versie
Wijziging
2026-01-11
1.0
Eerste uitwerking van vakopzet
2026-01-20
1.1
Details/summary blokken gefixed; Optionele casussen toegevoegd (WIP: nog valideren, voorlopig nog niet live, potentiele AI Slop!)Waarom dit vak?De EU AI Act, GDPR en maatschappelijke druk maken ethische kennis niet langer optioneel. Bedrijven zoeken developers die verder kijken dan “het werkt”. Met AI-tools die code genereren, verschuift de rol van de software developer. Hij/zij gaat/moet meer naar een engineering, meer testen, valideren. Maar ook de requirements duidelijk krijgen en eliciteren bij de opdrachtgever of ander stakeholders uit het toepassingsdomein van de beoogde applicatie of software. Daarbij is het ook van belang bredere context meenemen, uit de bredere maatschappelijke ontwikkelingen: minder typen, meer nadenken over wat je bouwt en waarom. Wat de impact daarvan is op het bedrijf en de maatschappij. En hier pro-actief in bijsturen.Drie delenDe opzet van de course volgt grofweg de structuur van Steen’s boek.Deel 1: Intro EthiekInleiding: Als software engineer, data engineer of security specialist kom je regelmatig vraagstukken tegen waarbij verschillende belangen botsen. Belangen van de opdrachtgever, de gebruikers van het systeem, andere stakeholders — en soms ook je eigen geweten. Deze dilemma’s lijken niet altijd dramatisch, maar ze kunnen grote gevolgen hebben.Neem social media platforms. Een opdrachtgever heeft veel baat bij het opslaan en analyseren van bepaalde data — locatiegegevens, gedragspatronen, voorkeuren. Maar gebruikers geven deze privacy ongemerkt op. Wat op korte termijn heel leuk lijkt (gratis platform, persoonlijke aanbevelingen) en positief voor het bedrijf (sterke groei, veel advertentie-inkomsten), heeft op langere termijn ernstige negatieve gevolgen. Twee voorbeelden
TikTok: Algoritmes optimaliseren voortdurend op engagement — wat gebruikers blijft kijken. Voor jongeren betekent dat een eindeloze feed van getriggerde content over uiterlijk, status, trend. Het gevolg? Een stijging van zelfbeeldproblemen, eetverstoornissen en angststoornissen onder tieners. De app werkt perfect voor wat het ontworpen is. Maar de maatschappelijke kosten zijn hoog.
Facebook en Cambridge Analytica: Facebook verkocht niet alleen advertentiesruimte, maar ook de intieme psychologische profielen van miljarden gebruikers. Een bedrijf als Cambridge Analytica kon die profielen gebruiken voor microtargeting en politieke manipulatie. Legaal? Lastig. Ethisch? Zeker niet.In beide gevallen bouwden ingenieurs code. Ze voltooidden features. Het systeem werkte zoals ontworpen. Maar niemand stopte en vroeg: is dit wat we eigenlijk willen bouwen?Theorie: Om deze dilemma’s te navigeren, behandelen we de drie ethische hoofdstromingen, steeds getoetst aan echte casussen
Utilisme: Maximaliseer geluk voor zoveel mogelijk mensen
Deugdethiek: Handel zoals een wijs, moedig, rechtvaardig persoon zou doen
Deontologie: Volg universele regels (bijv. “lieg niet”, “steel niet”, of Kants categorische imperatief: “gebruik mensen nooit alleen als middel”)Praktijk: Trolley problems helpen je jezelf beter te begrijpen. Ze zijn bewust abstract en extreem — juist daarom tonen ze wat je ethische intuïties zijn. Als je in een abstract, hypothetisch scenario twijfelt, welke waarden spelen mee? Utilistische afwegingen (“redden we meer levens?”)? Regels (“ik mag dit simpelweg niet doen”)? Karakter (“wat zou een goed mens hier doen?”). Door je eigen keuzes in trolley problems te analyseren, word je bewuster van welke stroming je aantrekt — en dat helpt je in echte dilemma’s als die van social media.Marc Steen beschrijft in hoofdstuk 5 de oorsprong van dit gedachte-experiment. Philippa Foot bedacht het in 1967 om het “moeilijk maken van ethische keuzes” uit te leggen — je hebt goede bedoelingen, maar je acties hebben ook schadelijke gevolgen. Ze vroeg zich af: wat doe je dan? Het punt dat Steen benadrukt is dat Foot dit dilemma bedacht om na te denken, niet om het “op te lossen” niet door ‘uit te rekenen wat het meest ethisch is’ of ‘absolute regels te definieren die aangeven wat je moet doen’..Het punt: Foot bedacht dit dilemma om over ethiek na te denken, niet om een algoritme te schrijven dat het “oplost”. Maar precies dat laatste is de typische neiging van software engineers en veel andere techneuten: alles meetbaar en berekenbaar denken te kunnen maken. In sommige situaties werkt dat prima - maar ethiek zit vol onvolledige informatie, onzekerheden en situaties waar een puur statistische aanpak arbitrair of contra-intuïtief wordt. Vandaar ook de aantrekkingskracht van regel-gebaseerde ethiek (deontologie): als je niet alles kunt berekenen, kun je in ieder geval principes volgen.Twee websites
Moral Machine - Serieuze dilemma’s over zelfrijdende auto’s
Absurd Trolley Problems - Grappiger variantDeel 2: Ethische basisprincipesKernconcepten en praktijkgevallenIn deel twee behandelen we vier sleutelconcepten, elk met werkelijke casussen en samenwerkingsvormen die studenten laten voelen hoe ethiek in echte situaties speelt.1. Technologie is niet neutraal.Elk design is een set keuzes. Een app die belooft “je helpen tijd in te sparen” kan ook ontworpen zijn om je langer vast te houden. Een algoritme dat “eerlijk” selecteert kan systematische bias bevatten. Technologie is altijd politiek en ethisch geladen.
Casussen en werkvormen uitklappen
Casus: Recruitment AI discrimineertAmazon bouwde een tool om CV’s automatisch te screenen. De AI was getraind op historische CV’s van werknemers — bijna allemaal mannelijk (tech-dominantie). Resultaat: vrouwen werden systematisch afgewezen door een algoritme dat niemand “bewust” discrimineerde. Het systeem “werkte” — het weigerde CV’s sneller af. Maar het versterkte bestaande bias. Amazon heeft het later stopgezet. (Reuters, 2018)Werksituatie: Je bent UI-designer op een gig-economy appDe opdrachtgever wil dat je het uitbetalingssysteem intuïtief maakt. Maar “intuïtief” kan ook betekenen: subtiel veel verborgen kosten en commissies. Je kunt het transparant ontwerpen of bewust moeilijk. Beide zijn “technisch correct”. Wat doe je?Samenwerkingsvorm: Design de-briefing in groepenVerdeel de klas in groepjes. Elk groepje ontvangt een design-scherm (bijv. payment flow, notification preferences, cookie settings). Taak: plek de subtiele keuzes aan die het gedrag van gebruikers sturen. Wat zou een “ethisch ontwerp” anders doen?2. Gedeelde verantwoordelijkheid — de Legal-Ethical MatrixSteen stelt de Legal-Ethical Matrix: wat legaal is, is niet per se ethisch. En andersom. Als engineer kun je niet zeggen “het was legaal, dus niet mijn schuld”.
Ethisch
Onethisch
Legaal
Ideaal ✓
Veel bedrijven hier
Illegaal
Whistleblowers (Snowden)
Duidelijk fout
Casussen en werkvormen uitklappenCasus: LinkedIn en je emailcontactenLinkedIn stelde gebruikers om hun emailpaswoord in te voeren. Daarmee konden ze automatisch al je contacten importeren — en hen uitnodigen. Legaal? Ja, in de terms of service. Ethisch? Nee — gebruikers gaven onbewust hun hele contactenboek weg. LinkedIn gaf later toe dat dit “een fout was in onze design” (LinkedIn, 2012). Maar wie was schuldig? De engineers? Het product team? De CEO? Allen?Werksituatie: Je project manager vraagt je GDPR-data langer op te slaanDe klant zegt: “We hebben die data nodig voor analyses.” Legaal? Mogelijk, met goede justificatie. Ethisch? Niet nodig. Jij als engineer bent niet alleen coder maar ook “ethische kanaal” — je roept dit aan. Wat zeg je?Huiswerk: Matrix invullenStudenten krijgen 5 technologie-voorbeelden (Clearview AI, TikTok’s algorithm, WhatsApp encryption, Google tracking, etc.). Taak: plaats elk in de matrix. Groepsdiscussie: waarom zitten ze daar? Wat verandert ze van plek?3. Enshittification — hoe platforms degraderenCory Doctorow beschrijft dit patroon
Platform is goed voor gebruikers (gratis, snel, betrouwbaar)
Platform misbruikt gebruikers voor business customers (verkoopt data aan adverteerders, prijzen stijgen)
Platform misbruikt business customers (algoritme verstopt hun content, tenzij ze betalen)
Platform sterft (iedereen verliest vertrouwen)
Casussen en werkvormen uitklappenCasus: Twitter → X
Fase 1: Gratis platform, iedereen kan tweeten, bereikt miljoen volgers
Fase 2: Advertenties introduceren, data verkopen aan adverteerders, analytics-tools alleen voor betaalde users
Fase 3: Elon Musk koopt het. Alleen “verified” (betaalde) tweets krijgen zichtbaarheid. Algoritme favoriseert “X Premium” content
Fase 4: Massale exodus naar Bluesky, Threads, Mastodon. Waarde van X daalt. Adverteerders verlaten platform.Werksituatie: Je bent senior dev op een streaming platformManagement zegt: “Voeg reclames toe aan het gratis tier. Maak non-premium users’ ervaring slechter zodat ze upgraden.” Technisch eenvoudig. Bedrijf vind het prima — revenue stijgt. Maar je ziet dat users vertrekken. Wat vind je ervan?Samenwerkingsvorm: Platform-trajectory tekenenGroepjes kiezen een bekend platform (Instagram, Discord, Spotify, GitHub). Taak: teken de enshittification-curve. Waar is het platform nu? Wat waren de “eerste hints”? Wat zouden engineers op elk stadium hebben kunnen doen anders?4. Dark patterns — manipulatie door designDe ACM: “Big tech gebruikt dark patterns om consumenten naar opties te sturen die nadelig zijn voor hun privacy”. Dit zijn geen bugs. Het zijn features. Opzettelijk.
Casussen en werkvormen uitklappenCasus: Facebook Messenger — download requiredFacebook maakte de Messenger-app verplicht. Wilde je Messenger gebruiken? Download een app. Op mobiel-web bleek het steeds moeilijker. Miljoenen downloads. Legaal? Ja. Manipulatief? Absoluut.Casus: TikTok en Instagram account verwijderenGen Z zit op TikTok en Instagram. Account verwijderen is bewust moeilijk gemaakt
Instagram: Een ingewikkelde navigatieroute (Instellingen → Accounts Center → Persoonlijke gegevens → Eigendom en beheer) plus een maand wachtperiode. Op Android werkt het niet eens in de app; je moet naar de website. (Delia, 2023)
TikTok: Een serie “confirmation screens” (elk scherm vraagt je opnieuw: “Weet je het zeker?”) die je de kans geven je beslissing te heroverwegen. Plus een wachtperiode waarin één enkele app-click de teller reset. (Heritage Foundation, 2023)Dit heet het “Hard to Cancel” dark pattern. Sinds februari 2024 verbiedt de Digital Services Act dit. Maar wie programmeerde het? Waarom?Huiswerk: Dark Pattern HuntStudenten gaan actief zoeken naar dark patterns in apps en websites die ze dagelijks gebruiken of elders online staan
Pre-checked checkboxes
Verborgen afmeldopties
Fakedreiging van urgentie (“aanbieding verloopt vandaag!”)
Herhaalde bevestigingsschermen
Moeilijke delete-flowsZe documenteren wat ze vinden met screenshots. Volgende les: samenbrengen, bespreken, categoriseren.Samenwerkingsvorm: Fix it workshopGroepjes kiezen één dark pattern uit de huiswerk-collectie. Taak: ontwerp hoe het ethisch zou kunnen. Prototype-schets. Presenteer aan klas. Discussie: wat verliest het bedrijf? Wat wint de gebruiker?Praktijkopdracht: Zelf een dark pattern herkennen en analyserenIn plaats van dark patterns zelf te bouwen (wat oppervlakkig voelt), doen studenten iets sterker: ze pakken een bestaande dark pattern uit de praktijk en voeren een gedetailleerde analyse
Herkennen: Welke dark pattern is dit? (Verborgen kosten? Moeilijk uitstappen? Urgency-fake?)
Bijdrage tracer: Welke engineers/designers hebben hier aan meegewerkt? Wat is hun rol? (Frontend dev die het bouwt? Product manager die het eist? Designer die het ontwerpt?)
Impact: Wie wordt erdoor geraakt? Hoe voelen gebruikers zich?
Alternatieven: Hoe zou dit ethisch kunnen?
Reflectie: “Als ik hier zelf had gezeten — had ik ja gezegd?”Dit is sterker dan bouwen, omdat het studenten dwingt om verantwoordelijkheid en collectieve schuld te doordenken. Het is niet “ik programmeer dit”, maar “wie in deze organisatie koos ervoor en waarom?”5. Win-win ontwerp — voorbij zero-sum thinkingTot hier toe hebben we vooral casussen gezien waar Big Tech “slecht” is en gebruikers “slachtoffer”. Maar dit is te simpel. De werkelijkheid is dat bedrijven óók onder druk staan. Gebruikers willen gratis diensten. Investeerders willen groei. Employees willen betaald werk. Dit zijn echte spanningen, niet kwaadwillendheid.De vraag is: kun je alle partijen voeden zonder dat iemand eronder lijdt?Tegenvoorbeelden: Bedrijven die anders doen
Signal: Gratis messaging-app. Geen advertenties. Geen data-verkoop. Hoe verdienen ze geld? Donaties, en één betaald plan (Signal+). Gebruikers vertrouwen het, want er is geen incentive om hun data te misbruiken.
DuckDuckGo: Zoekmachine zonder tracking. Ook zonder advertenties die je volgen. Ze verdienen door “anonieme” advertenties (je zoekt naar “schoenen”, je ziet advertenties voor schoenen, maar DuckDuckGo kent je geschiedenis niet). Gebruiker wint privacy, bedrijf wint inkomsten.
Basecamp/Hey: Email en project management. Betaald (geen gratis tier), geen advertenties, geen data-verkoop. Duurder dan Gmail, maar je bent klant, niet product. Bedrijf verdient door je te serveren, niet door je te exploiteren.Deze bedrijven zijn niet perfect. Maar ze tonen dat andere businessmodellen kunnen.Huiswerk: Onderzoek eigen voorbeeldenStudenten zoeken zelf een bedrijf of app waar ze denken: “Dit doet het goed.” Ze zoeken naar
Blog posts of interviews van oprichters
Reviews of feedback van gebruikers
Hoe verdienen ze geld? Wat zijn hun trade-offs?
Hoe lang kunnen ze dit volhouden?Volgende les: presenteren en samen analyseren wat hen “goed” maakt.Werksituatie: Het dilemma van gratisJe werkt bij een startup met een geweldige app. Gratis is aantrekkelijk, maar de investeerders willen ROI. Je manager zegt: “We kunnen hier geld verdienen. Drie opties: (1) advertenties, (2) data verkopen, of (3) betaald plan met gratis tier.” Alle drie hebben trade-offs. Wat zeg je?Samenwerkingsvorm: Stakeholder mapGroepjes krijgen een platform of app (bijv. YouTube, Spotify, banking-app). Taak: teken alle stakeholders
Users (gratis willen, kwaliteit willen)
Bedrijf (geld willen verdienen)
Adverteerders (bereik willen)
Medewerkers (betaald werk willen)
Maatschappij (privacy, veiligheid willen)Nu: welk businessmodel past? Wat verliest elke stakeholder? Wat wint elke stakeholder? Kan je het rechtvaardiger doen?Diepere vraag: “What if we sell?”Geld verdienen is niet inherent slecht. Het is nodig voor stabiliteit. Developers willen betaald worden. Servers moeten betaald. Maar wat gebeurt er als je bedrijf groeit, je gebruikersbestand stijgt, en dan word je opgekocht door een ander bedrijf met ander belangen?Voorbeeld: WhatsApp was gratis (geen tracking, goede privacy). Facebook kocht het in 2014 voor $19 miljard. Jaren later: WhatsApp deelt metadata met Facebook. Gebruikers die dachten “dit is veilig” zagen hun privacy-model veranderen.Vraag: Kun je “nee” zeggen tegen zo’n aanbod? Of moet je als founder aanvaarden dat groei betekent: je verliest controle?Huiswerk: Case study van transformatieStudenten kiezen een bedrijf dat is opgekocht of voorgekocht (WhatsApp, Instagram, YouTube, Slack, etc.) en onderzoeken
Wat waren de originele waarden?
Wat veranderde na aankoop?
Hadden studenten in het team kunnen/moeten zeggen “nee”?6. Systeem-analyse: De rol van lobby en reguleringTot hier toe hebben we bedrijven en engineers bekeken. Maar de overheid speelt ook mee.De EU AI Act, GDPR, Digital Services Act — dit zijn regelgeving die ethiek “forceert”. Bedrijven volgen omdat ze moeten. Maar
Lobby-invloed: Tech bedrijven geven miljoenen aan lobbyisten. Microsoft had in 2012 vrijwel geen lobbybudget in Brussel. Nu is het een van de grootste spenders. Dit beïnvloedt welke regelgeving écht streng is.
Gebrek aan kennis: Politici en beleidsmakers begrijpen vaak niet hoe technologie werkt. Ze schrijven regelgeving die achterhaald is voor ze ondertekend wordt.
Capture: Soms “vangen” grote bedrijven de regelgeving. Ze zeggen: “Dit gaat niet werken. Vertrouw ons en we regelen het zelf.” Inspecties worden zwak. Boetes zijn peanuts.
Casussen en werkvormen uitklappenWerksituatie: Je bent architect bij een tech bedrijfDe EU stelt een nieuwe rule in. Je manager zegt: “Dat gaat veel kosten. We lobbyen tegen. Ik heb al contact met Brussel.” Wat denk je?Huiswerk: Lobby trackingStudenten zoeken naar
Welke tech bedrijven gaven hoeveel geld aan lobbyisten in hun land? (veel landen publiceren dit)
Wat vroegen ze? (Toegankelijk via registraties)
Tegen welke regelgeving lobbyen ze?Voorbeeld: OpenAI lobbied tegen strict AI regulation. GitHub Copilot (Microsoft) lobbied tegen copyright-wetten die hun training-data beschermen…Samenwerkingsvorm: Systeem-kaart tekenenGroepjes maken een “krachtenkaart”
Links: regulators (regering, EU, etc.)
Midden: bedrijven (Tech giants, startups, etc.)
Rechts: maatschappij (gebruikers, activisten, media)Pijlen: wie beïnvloedt wie? Wie wint, wie verliest?Voorbeeld: TikTok in de VS
REGULATORS (Links) BEDRIJVEN (Midden) MAATSCHAPPIJ (Rechts)
┌────────────────┐ ┌────────────────┐ ┌──────────────────┐
│ US Congress │◄─────────│ ByteDance │ │ Gen Z users │
│ (wil ban) │ \($ │ TikTok │─────────►│ (love app) │
│ Trump, Biden │ (lobbies)├────────────────┤ │ │
└────────────────┘ │ Investors │ │ Activists │
│ │ (Chinese $) │◄─────────│ (mental health │
│ └────────────────┘\)$ │ concerns) │
│ ▲ │ │
│ (ban dreigement) │ │ Media │
│ │ (lobbies tegen) │ (kritisch) │
▼ │ └──────────────────┘
US Senators ByteDance executive
zeggen: “We stoppen teams zeggen: “Nee,
data-deling met China” dit kan niet” en lobbyenAnalyse
Regulators: Willen ban of strikte controle (geopolitieke druk vanuit VS tegen China)
ByteDance: Lobbiet gigantisch tegen ban. Ze hebben te veel inkomsten.
Users: Willen de app houden. Ze petitioneren, protesteren.
Investeerders: Winnen alleen met groei. Dus lobbyen mee.
Maatschappij: Verdeeld. Sommigen: “Privé gevaar!” Anderen: “Mijn jongeren zijn erdoor verslaagd!”Wat kan een engineer hier doen?Je werkt voor ByteDance — je zou kunnen zeggen: “Deze datadeling gaan we stoppen, privacy-first.”
Je werkt voor een VS-bedrijf — je kunt zeggen: “Dit gaat niet om technologie, maar om geopolitiek.”
Je bent activist — je organiseert gebruikers, niet tegen TikTok maar voor betere regelgeving.Discussie: Wie heeft hier écht macht? (Spoiler: niet het bedrijf. De overheid.)Huiswerk: Business model canvas met ethiekStudenten kiezen een app/platform en vullen in
Hoe verdient het geld? (Advertising? Betaling? Data-verkoop? Ander?)
Wie profiteert? (Welke stakeholders winnen, welke verliezen?)
Wat is het duurzaam? (Kan dit model 10 jaar standhouden zonder uit te stokeren?)
Kan het beter? (Welk alternatief zou meer stakeholders helpen?)Dit dwingt studenten voorbij “Big Tech = slecht” te denken naar: hoe maak je systemen waar iedereen beter van wordt?Slotdiscussie deel 2
We hebben gezien hoe ethieke dilemma’s werken. Niet als “goed vs slecht”, maar als spanning tussen legitieme belangen. Gebruikers willen gratis en privé. Bedrijven willen geld verdienen. Investeerders willen groei. Wat doe je als softwareingineer? Je bouwt niet alleen code — je helpt deze spanningen op te lossen. En dat vraagt meer denken dan blaming.Deel 3: Rolmodellen onderzoekOpdracht: Kies een interessante, liefst omstreden persoon uit de ICT-wereld. Presenteer
Achtergrond en wat deze persoon deed
Argumenten van voor- en tegenstanders
Je eigen mening met onderbouwing
Wat neem je mee, wat niet?Suggesties
Persoon
Bekend van
Alan Turing
Grondlegger informatica, codebreker, vervolgd
Julian Assange
WikiLeaks
Aaron Swartz
Reddit, open access activist
Edward Snowden
NSA klokkenluider
Tim Berners-Lee
Uitvinder World Wide Web
Shoshana Zuboff
“The Age of Surveillance Capitalism”
Cory Doctorow
Enshittification, digitale rechten activistStudenten mogen ook zelf iemand kiezen.Toetsing
Kennistoets: Theorie uit deel 1 en 2
Presentatie: Rolmodel onderzoek uit deel 3Aansluiting bij keuzevakbeschrijvingDit vak raakt de volgende thema’s uit de beschrijving
Thema
Hoe
Toegepaste ethiek
Praktijkopdrachten, niet alleen theorie
Duurzaamheid
Milieu-impact van datacenters, energieverbruik AI
Dark web
Context bij rolmodellen (Assange, Snowden)
Data-ethiek
Fingerprinting opdracht, GDPR
Wet- en regelgeving vs innovatie
Legal-Ethical Matrix
DEMAND (“durf te denken”)
Kritische reflectie op eigen werkOpdrachtvragen bij Absurd Trolley ProblemsHuiswerk: doorloop de website. In de les reflecteren
Hoeveel trolley problems geeft de quiz je precies?
De website toont het percentage mensen dat het met je eens was, niet “het goede antwoord”. Waarom denk je?
Welk level vond je makkelijk? Welk moeilijk?
Bij de moeilijkste: welk argument zou iemand voor de andere optie kunnen geven?
Denk je dat er culturele verschillen zijn in de keuzes?
Hoe realistisch zijn deze problemen? Kun je er eentje realistischer maken?
Kies één level. Welke deugd is relevant (moed, eerlijkheid, rechtvaardigheid)? Past jouw keuze daarbij?
Kies één level. Welke plicht of regel is relevant (“gebruik niemand als middel”)? Volgde jouw keuze die regel?
Bij welk level speelt het utilistische “meeste geluk voor meeste mensen” het sterkst?Over de cookie-vraagDe Absurd Trolley Problems site vraagt om cookie-toestemming. Je kunt de site ook gebruiken als je cookies weigert. Maar let op de “Legitimate Interest” vinkjes - deze staan default aan.Discussievraag: Wat is “legitimate interest” eigenlijk? Waarom mogen deze vinkjes default aan staan, terwijl marketing-cookies dat niet mogen? Is dat eerlijk?Antwoord: “Legitimate interest” is een AVG-grondslag waarbij bedrijven claimen een gerechtvaardigd belang te hebben. Het verschil met marketing is dat het “noodzakelijk” zou zijn voor de dienst. Of dat klopt, is precies het soort vraag dat we in dit vak stellen.)Het boek verplicht of nietEen vraag waar ik nog mee worstel: moeten studenten het boek zelf aanschaffen?Argumenten voor verplicht stellen
HBO-studenten lezen te weinig. Een verplicht boek dwingt tot serieuze verdieping.
Papieren boeken werken anders dan schermen - minder afleiding, betere retentie.
We kiezen voor drie van de belangrijkste ethische stromingen (want we kunnen niet álles behandelen, en het moet NIET te droog worden), namelijk utilisme, deugdethiek en deontologie. Deze staan er helder in uitgelegd.
Steen schrijft vanuit tech-perspectief, niet vanuit abstracte filosofie.Argumenten tegen
Academisch Engels kan lastig zijn voor 2e jaars HBO. Woorden als “vis-à-vis” of “doctrine of double effect” zijn niet alledaags.
Afhaakrisico: als studenten het boek te moeilijk vinden, lezen ze helemaal niets.
Kosten: niet elke student kan of wil €40+ uitgeven.Mijn voorlopige keuze: Het boek is aanbevolen, niet verplicht. De cursusstructuur volgt wel de drie delen van het boek, zodat studenten die het wél lezen extra context hebben. De kernconcepten behandel ik in de les met toegankelijkere voorbeelden en Nederlandse uitleg.Dit is een pragmatische middenweg: studenten die meer willen, kunnen het boek erbij pakken. Studenten die moeite hebben met academisch Engels, missen de essentie niet.BronnenACM. (2024). Onderzoek naar dark patterns bij big tech. Geraadpleegd van https://acm.nl/nl/publicaties/acm-roept-big-tech-op-gedrag-aan-te-passen
Delia, M. (2023). The Journey to Escape Instagram: Dark Patterns & The Ethics of UX. Medium. Geraadpleegd van https://medium.com/@marleedelia/the-journey-to-escape-instagram-ec9ed857f77f
Doctorow, C. (21 januari 2023). Tiktok’s enshittification. Pluralistic. Geraadpleegd van https://pluralistic.net/2023/01/21/potemkin-ai
Doctorow, C. (29 april 2025). Cory Doctorow at CF 25: How Enshittification Conquered the 21st Century [Video]. CloudFest. Geraadpleegd van https://www.youtube.com/watch?v=_Ai-fC-2Bpo
Heritage Foundation. (2023). Good Luck Trying To Leave TikTok. Geraadpleegd van https://www.heritage.org/big-tech/commentary/good-luck-trying-leave-tiktok
Schaffner, B., et al. (2022). Understanding Account Deletion and Relevant Dark Patterns on Social Media. Proceedings of the ACM on Human-Computer Interaction. Geraadpleegd van https://dl.acm.org/doi/abs/10.1145/3555142
Steen, M. (2022). Ethics for People Who Work in Tech. CRC Press.
AG Connect: Waarom we Systems Thinking nodig hebben
ethiek
onderwijs
software-engineering
Bart van der Wal
Docent aan de HAN University of Applied Sciences en MAMIL met een passie voor SwimRun en andere avontuurlijke duursportavonturen. Schrijft over technologie, softwareontwikkeling en duursport.Recente posts
Accessible Software Engineering Diagrams
01 februari 2026
Leestijd: 8 minuten
Nieuw ICT-onderwijs door AI (2/3)
20 januari 2026
Leestijd: 30 minuten
Testing the LLM
14 januari 2026
Leestijd: 11 minuten
Nieuw ICT-onderwijs door AI (1/3)
14 januari 2026
Leestijd: 18 minuten
2026 © Bart van der Wal
Ik zit in AI-gebruikstype 1: lees meer
Posts
Tags
Over mij
Stats// Maak bare URLs in bronnenlijst automatisch klikbaar
document.addEventListener(‘DOMContentLoaded’, function() {
// Zoek de bronnen sectie (h2 met “Bronnen” gevolgd door ul)
const bronnenHeader = Array.from(document.querySelectorAll(‘h2’)).find(h => h.textContent.trim() === ‘Bronnen’);
if (bronnenHeader) {
const bronnenList = bronnenHeader.nextElementSibling;
if (bronnenList && bronnenList.tagName === ‘UL’) {
bronnenList.querySelectorAll(‘li’).forEach(li => {
li.innerHTML = li.innerHTML.replace(
/(https?:\/\/[^\s<]+)/g,
function(match) {
const link = document.createElement(‘a’);
link.href = match;
link.target = ‘_blank’;
link.rel = ‘noopener’;
link.textContent = match;
return link.outerHTML;
}
);
});
}
}
});(function() {
var sw = document.getElementById(‘theme-switch’);
var html = document.getElementsByTagName(‘html’)[0];
var logo = document.getElementById(‘logo’);
var nightModeOption = (‘auto’ || ‘auto’).toLowerCase();
var storage = nightModeOption === ‘manual’
? localStorage
sessionStorage;
var themeData = loadThemeData();function saveThemeData(data) {
storage.setItem(‘theme’, JSON.stringify(data));
}function loadThemeData() {
var data = storage.getItem(‘theme’);
try {
data = JSON.parse(data ? data : ‘’);
} catch(e) {
data = { nightShift: undefined, autoToggleAt: 0 };
saveThemeData(data);
}
return data;
}function handleThemeToggle(nightShift) {
themeData.nightShift = nightShift;
saveThemeData(themeData);
html.dataset.theme = nightShift ? ‘dark’ : ‘light’;
if (nightShift) {
logo.setAttribute(“src”, “../assets/img/branding/logo-dark.svg”);
} else {
logo.setAttribute(“src”, “../assets/img/branding/logo.svg”);
}
setTimeout(function() {
sw.checked = nightShift ? true : false;
}, 50);
}function autoThemeToggle() {
// Next time point of theme toggle
var now = new Date();
var toggleAt = new Date();
var hours = now.getHours();
var nightShift = hours >= 19 || hours <=7;if (nightShift) {
if (hours > 7) {
toggleAt.setDate(toggleAt.getDate() + 1);
}
toggleAt.setHours(7);
} else {
toggleAt.setHours(19);
}toggleAt.setMinutes(0);
toggleAt.setSeconds(0);
toggleAt.setMilliseconds(0)var delay = toggleAt.getTime() - now.getTime();// auto toggle theme mode
setTimeout(function() {
handleThemeToggle(!nightShift);
}, delay);return {
nightShift: nightShift,
toggleAt: toggleAt.getTime()
};
}// Listen the theme toggle event
sw.addEventListener(‘change’, function(event) {
handleThemeToggle(event.target.checked);
});if (nightModeOption == ‘auto’) {
var data = autoThemeToggle();// Toggle theme by local setting
if (data.toggleAt > themeData.autoToggleAt) {
themeData.autoToggleAt = data.toggleAt;
handleThemeToggle(data.nightShift);
} else {
handleThemeToggle(themeData.nightShift);
}
} else if (nightModeOption == ‘manual’) {
handleThemeToggle(themeData.nightShift);
} else {
var nightShift = themeData.nightShift;
if (nightShift === undefined) {
nightShift = nightModeOption === ‘on’;
}
handleThemeToggle(nightShift);
}
})();// SOFA Mode Toggle
(function() {
var sofaSwitch = document.getElementById(‘sofa-switch’);
if (!sofaSwitch) return;var sofaSection = document.getElementById(‘sofa-section’);
var publishedSection = document.getElementById(‘published-section’);
var pagination = document.querySelector(‘.pagination’);function handleSofaToggle(sofaMode) {
localStorage.setItem(‘sofaMode’, sofaMode ? ‘on’ : ‘off’);if (sofaSection && publishedSection) {
sofaSection.style.display = sofaMode ? ‘block’ : ‘none’;
publishedSection.style.display = sofaMode ? ‘none’ : ‘block’;
}
if (pagination) {
pagination.style.display = sofaMode ? ‘none’ : ‘block’;
}sofaSwitch.checked = sofaMode;
}sofaSwitch.addEventListener(‘change’, function(event) {
handleSofaToggle(event.target.checked);
});// Load saved preference
var savedMode = localStorage.getItem(‘sofaMode’);
if (savedMode === ‘on’) {
handleSofaToggle(true);
}
})();
function downloadPdf() {
var btn = document.getElementById(‘download-pdf’);
btn.innerHTML = ‘ Laden…’;
btn.disabled = true;// Load html2canvas and jspdf for proper image support
var script1 = document.createElement(‘script’);
script1.src = ‘https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js’;
script1.onload = function() {
var script2 = document.createElement(‘script’);
script2.src = ‘https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js’;
script2.onload = function() {
generatePdfWithImages();
};
document.head.appendChild(script2);
};
document.head.appendChild(script1);function generatePdfWithImages() {
// Create a container for PDF content
var pdfContainer = document.createElement(‘div’);
pdfContainer.style.cssText = ‘position:absolute;left:-9999px;width:800px;padding:40px;background:white;font-family:Georgia,serif;color:#333;’;// Clone page content
var pageContent = document.querySelector(‘.page-content’);
if (!pageContent) {
alert(‘Geen content gevonden’);
btn.innerHTML = ‘ PDF’;
btn.disabled = false;
return;
}var clone = pageContent.cloneNode(true);// Remove unwanted elements
var removeSelectors = [
‘.sidebar’, ‘.post-nav’, ‘.author-box’, ‘.recent-box’,
‘.comments’, ‘.separator’, ‘button’, ‘#comment-layout’,
‘.pdf-button’, ‘.version-history’, ‘.github-button’,
‘script’, ‘style’, ‘.post-meta-row’
];
removeSelectors.forEach(function(sel) {
clone.querySelectorAll(sel).forEach(function(el) { el.remove(); });
});// Expand all elements for PDF (so content is visible)
clone.querySelectorAll(‘details’).forEach(function(details) {
details.setAttribute(‘open’, ‘open’);
details.style.cssText = ‘margin:15px 0;color:#000;background:transparent;’;
});
clone.querySelectorAll(‘summary’).forEach(function(summary) {
summary.style.cssText = ‘font-weight:bold;color:#000;background:transparent;margin-bottom:10px;’;
});// Style images for PDF
clone.querySelectorAll(‘img’).forEach(function(img) {
img.style.cssText = ‘max-width:100%;height:auto;display:block;margin:15px auto;’;
// Force load by setting crossOrigin (helps with some images)
img.crossOrigin = ‘anonymous’;
});// Style the content - print-friendly: white background, black text
clone.style.cssText = ‘font-size:14px;line-height:1.6;color:#000;background:#fff;’;
clone.querySelectorAll(‘h1’).forEach(function(h) { h.style.cssText = ‘font-size:24px;margin:20px 0 10px;color:#000;background:transparent;’; });
clone.querySelectorAll(‘h2’).forEach(function(h) { h.style.cssText = ‘font-size:20px;margin:18px 0 8px;border-bottom:1px solid #ccc;padding-bottom:5px;color:#000;background:transparent;’; });
clone.querySelectorAll(‘h3’).forEach(function(h) { h.style.cssText = ‘font-size:16px;margin:15px 0 5px;color:#000;background:transparent;’; });
clone.querySelectorAll(‘p’).forEach(function(p) { p.style.cssText = ‘margin:0 0 12px;color:#000;background:transparent;’; });
clone.querySelectorAll(‘pre, code’).forEach(function(c) { c.style.cssText = ‘background:#f5f5f5;padding:10px;font-size:12px;overflow-x:auto;color:#000;border:1px solid #ddd;’; });
clone.querySelectorAll(‘blockquote’).forEach(function(bq) { bq.style.cssText = ‘border-left:3px solid #326273;padding-left:15px;margin:15px 0;color:#333;background:transparent;font-style:italic;’; });
clone.querySelectorAll(‘table’).forEach(function(t) { t.style.cssText = ‘width:100%;border-collapse:collapse;margin:15px 0;font-size:12px;background:#fff;’; });
clone.querySelectorAll(‘th, td’).forEach(function(c) { c.style.cssText = ‘border:1px solid #ccc;padding:8px;text-align:left;color:#000;background:#fff;’; });
clone.querySelectorAll(‘a’).forEach(function(a) { a.style.cssText = ‘color:#326273;background:transparent;’; });
clone.querySelectorAll(‘li’).forEach(function(li) { li.style.cssText = ‘color:#000;background:transparent;’; });
clone.querySelectorAll(‘ul, ol’).forEach(function(list) { list.style.cssText = ‘color:#000;background:transparent;’; });
clone.querySelectorAll(‘span, em, strong, b, i’).forEach(function(el) { el.style.cssText = ‘color:inherit;background:transparent;’; });// Add footer
var footer = document.createElement(‘div’);
footer.style.cssText = ‘margin-top:30px;padding-top:15px;border-top:1px solid #ccc;font-size:11px;color:#666;background:transparent;’;
footer.innerHTML = ‘Bron: ‘ + window.location.href + ‘
Gegenereerd: ‘ + new Date().toLocaleDateString(‘nl-NL’); clone.appendChild(footer);pdfContainer.appendChild(clone); document.body.appendChild(pdfContainer);// Wait for images to load var images = pdfContainer.querySelectorAll(‘img’); var loadPromises = Array.from(images).map(function(img) { return new Promise(function(resolve) { if (img.complete) { resolve(); } else { img.onload = resolve; img.onerror = resolve; // Continue even if image fails } }); });Promise.all(loadPromises).then(function() { // Small delay to ensure rendering setTimeout(function() { html2canvas(pdfContainer, { scale: 2, useCORS: true, allowTaint: true, logging: false, backgroundColor: ‘#ffffff’ }).then(function(canvas) { var imgData = canvas.toDataURL(‘image/jpeg’, 0.95); var pdf = new jspdf.jsPDF(‘p’, ‘mm’, ‘a4’); var pageWidth = pdf.internal.pageSize.getWidth(); var pageHeight = pdf.internal.pageSize.getHeight(); var imgWidth = pageWidth - 20; // 10mm margins var imgHeight = (canvas.height * imgWidth) / canvas.width;var heightLeft = imgHeight; var position = 10; // top margin// First page pdf.addImage(imgData, ‘JPEG’, 10, position, imgWidth, imgHeight); heightLeft -= (pageHeight - 20);// Additional pages if needed while (heightLeft > 0) { position = heightLeft - imgHeight + 10; pdf.addPage(); pdf.addImage(imgData, ‘JPEG’, 10, position, imgWidth, imgHeight); heightLeft -= (pageHeight - 20); }pdf.save(document.title.replace(/[^a-z0-9]/gi, ‘-‘) + ‘.pdf’);// Cleanup document.body.removeChild(pdfContainer); btn.innerHTML = ‘ PDF’; btn.disabled = false; }).catch(function(err) { console.error(‘PDF generation failed:’, err); alert(‘PDF generatie mislukt. Probeer Ctrl+P / Cmd+P voor print naar PDF.’); document.body.removeChild(pdfContainer); btn.innerHTML = ‘ PDF’; btn.disabled = false; }); }, 500); }); } }function toggle_comments(){ var commentCurtain = document.getElementById(‘comment-curtain’) if (commentCurtain) { commentCurtain.classList.toggle(‘hide’) } var disqusThread = document.getElementById(‘comment-layout’) if (disqusThread) { disqusThread.classList.toggle(‘show’) } }function copyToClipboard() { navigator.clipboard.writeText(‘https://bartvanderwal.nl/ethics-for-software-engineers/’).then(function() { alerts = document.getElementsByClassName(‘alert’) for (i=0; i < alerts.length; i++){ alerts[i].innerHTML=’\u00ABlink copied\u00BB’; setTimeout((function(i){ return function(){alerts[i].innerHTML=’’;}})(i), 1600 ); }; }, function() { prompt(“Unable to copy, please use this link:”, “https://bartvanderwal.nl/ethics-for-software-engineers/”); }); }$(function () { if (document.getElementById(‘comment-curtain’) == null){ var disqusThread = document.getElementById(‘comment-layout’) if (disqusThread) { disqusThread.classList.toggle(‘show’) } }var tweetTags = document.getElementsByTagName(“tweet”);if (tweetTags != null){ for (i=0; i<tweetTags.length; i++){ tweetA = document.createElement(“a”) tweetA.href = ‘https://twitter.com/share?text=’ |
|