Lessen Computer Science
12 lessen
- 3D-modelleren: van een kubus tot een geprint voorwerp – Een 3D-model is een vorm die in de computer is opgeslagen als punten (hoekpunten) die met ribben worden verbonden tot platte vlakken: een mesh. We bouwen modellen door te beginnen met simpele vormen (primitieven), die te verplaatsen, te draaien en te schalen, en vlakken naar buiten te trekken (extrude). Daarna voegen we materialen en licht toe en de computer rendert een afbeelding. Hetzelfde model kan in dunne lagen worden gesneden en door een 3D-printer worden gebouwd, of worden gebruikt in games, films, VR en productontwerp.
- AI-ethiek: kunstmatige intelligentie eerlijk en veilig gebruiken – AI-systemen leren patronen uit data en nemen daarna beslissingen. AI-ethiek vraagt of die beslissingen eerlijk, veilig en respectvol zijn. De belangrijkste punten zijn vooroordeel (oneerlijke data geeft oneerlijke uitkomsten), privacy (persoonlijke gegevens vragen om toestemming en bescherming), transparantie (mensen moeten weten waarom een AI iets besliste), verantwoordelijkheid (een mens blijft verantwoordelijk), veiligheid en misbruik (deepfakes, nepnieuws) en gevolgen voor de maatschappij (banen, digitale kloof, milieu). Verantwoorde AI betekent: dit alles controleren voordat en nadat een AI wordt gebruikt.
- Algoritme-complexiteit: hoe snel groeit het werk van een algoritme? – Een probleem kun je vaak met meerdere algoritmes oplossen, maar sommige hebben veel meer stappen nodig. We meten een algoritme door de basisstappen te tellen terwijl de invoergrootte n groeit, niet door seconden met een stopwatch te meten. Big O-notatie geeft die groei een naam: O(1) constant, O(log n) logaritmisch, O(n) lineair, O(n log n) en O(n²) kwadratisch. Lineair zoeken is O(n), binair zoeken is O(log n). Bubblesort is O(n²), mergesort is O(n log n). Het geheugen dat een algoritme gebruikt heet ruimtecomplexiteit.
- Carrière in kunstmatige intelligentie: banen en vaardigheden – Elk AI-systeem wordt in drie fasen gemaakt: data, model en product. Elke fase heeft eigen banen: data-analisten en data-labelaars, ML-engineers en onderzoekers, AI-productmanagers, ontwerpers en ethiekdeskundigen. Ze hebben allemaal een mix van zes vaardigheden nodig, in verschillende mate: wiskunde, programmeren, omgaan met data, kennis van een vakgebied, communicatie en ethiek. De route is een trap: schoolvakken, een cursus of opleiding, eigen projecten, een stage en een eerste baan, met leren dat nooit stopt.
- Cybersecurity: dreigingen en hoe we ze stoppen – Cybersecurity beschermt computers, netwerken en gegevens. Het doel is vertrouwelijkheid, integriteit en beschikbaarheid (de CIA-driehoek). Veelvoorkomende dreigingen zijn malware, phishing en social engineering, brute-force-aanvallen op wachtwoorden en denial of service. Als verdediging gebruik je sterke authenticatie, versleuteling, firewalls, anti-malware, updates, toegangsbeheer en back-ups.
- Data-analyse – Data-analyse betekent dat je ruwe gegevens omzet in antwoorden. Dat gaat in een cyclus: stel een vraag, verzamel data, maak de data schoon (haal fouten, dubbelen en lege plekken weg), orden en bewerk ze, analyseer ze met samenvattende getallen zoals gemiddelde, mediaan, bereik en patronen, laat ze zien in een goede grafiek en trek een voorzichtige conclusie. Let op uitschieters, kleine steekproeven en vertekening (bias). Een correlatie tussen twee dingen bewijst niet dat het ene het andere veroorzaakt. Data moet ook veilig worden bewaard en alleen met toestemming worden gebruikt.
- De AI-projectcyclus: hoe bouw je een AI-oplossing? – Kunstmatige intelligentie (AI) is het vermogen van een machine om van data te leren en beslissingen of voorspellingen te doen, zoals gezichten herkennen of liedjes voorstellen. Een AI-oplossing bouw je in een kringloop van zes stappen, de AI-projectcyclus: 1) Probleem afbakenen met de 4W's (Wie, Wat, Waar, Waarom); 2) Data verzamelen, betrouwbare data bijeenbrengen; 3) Data verkennen, de data opschonen en in grafieken zetten om patronen te vinden; 4) Modelleren, regels of een leermethode kiezen; 5) Evalueren, testen op nieuwe data met de nauwkeurigheid; 6) Inzetten, echt gebruiken en blijven verbeteren. Bij elke stap denken we aan ethiek: eerlijkheid (geen bias), privacy, transparantie en verantwoordelijkheid.
- Digitale voetafdruk en netiquette – Een digitale voetafdruk is het spoor van gegevens dat we online achterlaten. Een actieve voetafdruk delen we bewust (berichten, reacties, formulieren). Een passieve voetafdruk wordt verzameld zonder dat we het merken (cookies, zoekgeschiedenis, locatie, IP-adres). Zo'n spoor is moeilijk te wissen en anderen kunnen het later zien. We leven in een digitale samenleving, waarin leren, bankieren, winkelen en overheidsdiensten online gaan. Wie hier verantwoord mee omgaat, is een digitaal burger (netizen). Netiquette betekent: ethisch zijn (respecteer auteursrecht, deel betrouwbare informatie), respectvol zijn (privacy, verschillen, geen pesten) en verantwoordelijk zijn (deel niet te veel, voed trollen niet). Bij communicatie ben je kort en duidelijk, beleefd en betrouwbaar. Op sociale media kies je verstandig wachtwoorden en privacyinstellingen, denk je na voor je iets uploadt en controleer je feiten voor je deelt.
- Geavanceerd programmeren en toepassingen – Geavanceerd programmeren betekent: de juiste datastructuur kiezen (array, gelinkte lijst, stack, queue), code schrijven en testen in een IDE, grafieken en animaties tekenen, spreadsheetfuncties gebruiken en gegevens veilig bewaren in een relationele database die je bevraagt met SQL.
- Inleiding tot probleemoplossen – Een probleem oplossen met een computer gaat in stappen: eerst analyseer je het probleem (invoer, uitvoer, regels), dan maak je een algoritme (een eindige, duidelijke reeks stappen in de juiste volgorde), dan schrijf je de code in een programmeertaal, dan test je met verschillende invoer en ten slotte debug je (fouten zoeken en verwijderen). Een algoritme kun je tekenen als stroomdiagram (ovaal = start/stop, parallellogram = invoer/uitvoer, rechthoek = bewerking, ruit = beslissing, pijlen = looprichting) of opschrijven als pseudocode (gewone taal met een vaste structuur). Bij decompositie knip je een groot probleem in kleine deelproblemen, los je die apart op en voeg je ze daarna samen.
- Reizen voorspellen met AI: data gebruiken om verkeer te voorspellen – Om verkeer te voorspellen verzamelt een AI eerst oude data, zoals het aantal auto's per uur op veel dagen. Daarna zoekt de AI een patroon, bijvoorbeeld twee spitsheuvels: 's ochtends en 's avonds. Met dat patroon voorspelt de AI de volgende dag, bijvoorbeeld met het gemiddelde van hetzelfde uur op eerdere dagen. Mensen gebruiken de voorspelling om een beter tijdstip of een betere route te kiezen. Een voorspelling is een goede gok, geen belofte.
- Technieken om algoritmen te ontwerpen – Om een algoritme te ontwerpen beschrijf je eerst het probleem: de invoer, de gewenste uitvoer en de voorwaarden. Daarna schrijf je duidelijke stappen die eindigen, in gewone taal, als lijst, in pseudocode of als stroomdiagram. Een groot probleem knip je top-down in kleinere delen (stapsgewijs verfijnen), of je bouwt bottom-up verder met kleine, geteste onderdelen. De bekende technieken zijn: brute kracht (alles proberen), verdeel en heers (splitsen, oplossen, samenvoegen; halveren zoals bij binair zoeken en mergesort), greedy (telkens de beste keuze van dit moment; snel, maar niet altijd optimaal), dynamisch programmeren (elk klein deelprobleem één keer oplossen en in een tabel bewaren) en backtracking (een keuze proberen en bij een doodlopend eind terugdraaien). Kies de techniek en de datastructuren (arrays, stacks, binaire bomen) door te letten op juistheid en efficiëntie (tijdcomplexiteit).