DEEL 1: COMPUTER- EN INTERNETTECHNOLOGIEËN
HS1. Computersystemen, algoritmes en software
1. Computersystemen
1.1. De digitale transformatie/revolutie
• Computers en de software die ze uitvoeren = motor van digitale transformatie (revolutie)
• Digitale revolutie = kernpunt beleid EU, vanwege hun grote impact
o = veel processen die vroeger fysiek werden uitgevoerd, voortaan digitaal (verwerking
data/documenten, processen in bedrijven)
o Impact? Sociaaleconomisch, economisch, mentaal-cultureel
o Voordelen > nadelen
• Dit w mogelijk gemaakt door de enorme vooruitgang in informatie- en communicatietechnologie (ICT),
zowel inzake ICT-hardware (computers en hun netwerken) als ICT-software
1.2. Computers
• Digitale revolutie gedragen door computers (hardware én software) die via netwerken verbonden zijn
• Doorheen tijd verschillende belangrijke technologische apparaten uitgevonden, maar computer is
fundamenteel verschillend: is via software programmeerbaar voor meerdere toepassingen
(ó broodrooster: kan enkel brood roosteren)
• Definitie computer: hardwaremachine die berekeningen uitvoert en via software programmeerbaar is
om op dezelfde machine meerdere programma’s te kunnen uitvoeren. Gegevens (data) kunnen volgens
formele procedures (algoritmes) verwerkt/bewerkt worden om tot gewenste resultaat te komen.
1.2.1. De evolutie van computers
• 19e E: 1ste programmeerbare rekenmachines/computers, mbv mechanische componenten
20e E: mbv elektronische componenten
WOII en Koude Oorlog: almaar krachtigere computers
• Eerste computers: groot, verbruikte veel vermogen, weinig bedrijfszeker
ó sinds halfgeleidertransistor zijn deze nadelen verbeterd
o CMOS-halfgeleidertechnologie? Steeds grotere schaalverkleiningen vd transistoren
o Daardoor computers kleiner en krachtigere rekenkracht (wet van Moore)
• Later ontwikkeling van:
o Persoonlijke computer
o Software aanbieden als product (vb: Microsoft)
o Openbronversies van besturingssystemen en softwareapplicaties
o Nieuwe diensten en softwaretoepassingen
• EU: ‘opletten dat we geostrategisch niet al te afhankelijk worden van buitenland inzake
elektronicaontwerp en -productie’
1.2.2. De von Neumann-computerarchitectuur
• Huidige computers gebruiken von Neumann-architectuur (1945, John von Neumann)
à beschreef architectuur voor elektronische digitale computer:
1) Centrale verwerkingseenheid (Central Processing Unit, CPU) = bestaat uit:
o Besturingseenheid (Control Unit)
= instructieregister en programmateller vr aansturing
o Rekenkundig-logische eenheid (Arithmetic/Logic Unit, ALU)
= processorregisters (tijdelijke lokale geheugens) vr berekeningen
2) Computergeheugen (RAM Memory Unit)
= om de data en de instructies op te slaan
3) Invoer- en uitvoermechanismen (Input/Output Devices)
+ externe massaopslag van gegevens en bestanden
• Hoe werkt de von Neumann-computer?
o Voorafgaand: computer geprogrammeerd met softwareprogramma
(= reeks instructies die achtereenvolgens w uitgevoerd op ingevoerde gegevens)
§ Dat programma w door programmeurs opgesteld
§ Vervolgens ingelezen en opgeslagen in computergeheugen
o Start: invoer van data/gegevens
§ Worden opgeslagen in computergeheugen
§ Hierop gebeurt de instructiecyclus: CPU haalt 1 vr 1 de programma-instructies uit het
geheugen en voert ze uit op de ingevoerde data
1
,D1: Computer- en interne0echnologieën > HS1: Computersystemen, algoritmes en so=ware > 1. Computersystemen
§ Probleem: meeste computers werken digitaal, dus ingevoerde gegevens moeten eerst
worden gedigitaliseerd (foto’s omzetten naar bits (1en & 0en))
à Deze tussenresultaten worden ook naar computergeheugen weggeschreven
Instructiecyclus?
§ Stap 1: opladen betrokken instructie vanuit het geheugen in het instructieregister
§ Stap 2: decoderen vd instructie in concrete controlesignalen voor de ALU
§ Stap 3: effectief uitvoeren van de instructie in de ALU
§ Vaak gevolgd door het wegschrijven vd resultaten in het geheugen
Eindresultaat berekening w daarna uitgevoerd (vb: op scherm getoond)
o Door schaalverkleining halfgeleidertechnologie: processoren/CPU’s worden steeds krachtiger
in rekencapaciteit (Wet van Moore) + opslagcapaciteit van geheugen w groter
o Computerchip bevat meerdere processorkernen naast elkaar, allemaal met zelfde geheugen
verbonden = multikernprocessoren => sneller berekenen
o Naast CPU voor numerieke en logische bewerkingen vaak processoren voor specifieke taken:
§ DSP (Digital Signal Processor): voor digitale signaalverwerkingstaken
§ GPU (Graphical Processing Unit): voor grafische bewerkingen
§ Neurale eenheid: voor toepassing AI
• Probleem von Neumann-computer? Ophaling vd volgende instructie & uitvoering vd bewerking op de
data kan NIET op zelfde moment plaatsvinden
o Wrm niet? Omdat ze een gemeenschappelijke verbinding naar computergeheugen delen (zie
dubbele pijl op de figuur)
o Oplossing? Opzoek naar andere computerarchitecturen (zie 1.4., p.3)
1.3. Elektronica en de wet van Moore
• Huidige computers opgebouwd met micro/nano-elektronica
o Basisbouwblok elektronica = transistor (gemaakt in halfgeleidertechnologie)
o Meest gebruikt: CMOS-technologie (met silicium als basishalfgeleidermateriaal)
o Transistor = “digitaal programmeerbare schakelaar”
§ Aangezet => geleiden, logische bit 1
§ Afgezet => niet geleiden, logische bit 0
=> zo digitale berekeningen uitvoeren
o Omdat berekeningen in transistor w uitgevoerd, moeten de invoergegevens eerst worden
voorgesteld als reeksen van bits
§ Transistoren goed combineren (de ene aan, de andere uit) à alle bewerkingen op die
bits uitoefenen, dit dr computer te programmeren: welke bewerking wnr uitvoeren?
§ Volledige computer bevat dus enorm veel transistoren
• Zoveel mogelijk transistoren op 1 geïntegreerde schakeling (integrated circuit (IC) = ‘chip’)
+ zoveel mogelijk chips op 1 gedrukt bordje (printed circuit board (PCB))
è wet van Moore: aantal transistoren op CMOS-chip verdubbeld elke 2j (oorspronkelijk 1,5j)
o Dit door continue verkleining/verschaling transistoren
o Hierdoor computers sneller, rekenkrachtiger (meer bewerkingen per seconde)
§ Dit is logaritmisch: rekenkracht neemt exponentieel toe met de tijd
+ Ander gevolg? Kostprijs daalt
• MAAR dit kan niet oneindig verkleinen, daarom opzoek naar andere manieren (meerdere siliciumchips in 1
verpakking naast of boven elkaar monteren)
• Ook aantal computers is sterk gestegen à netwerken tussen computers
o Ook dit versterkt de exponentiële groei in rekenmogelijkheden, want netwerken staan toe om
bewerkingen/dataopslag fysiek elders te laten gebeuren dan op je eigen computer
o Je lokale computer moet niet meer superkrachtig zijn (google-opzoekingen, chatGPT)
o Plek waar berekeningen gebeuren = ‘rekenserver’ in extern datacenter
o 2 gevolgen:
§ Belang van algoritmes stijgt
§ Kritiek stijgt vanwege het hoge energieverbruik van die datacenters
• Naast ontwikkeling gewone computers, ook supercomputers ontwikkeld: speciaal ontworpen voor
buitengewoon groot rekenvermogen (berekeningen rond kwantumfysica)
o Bevatten intern veel meer processoren en geheugencapaciteit
o Of verschillende computers laten fungeren als 1 cluster
• Al deze vooruitgang, kan dit blijven duren?
o Huidige CMOS-schaalverkleining gaat op bepaald moment stoppen door fysieke grenzen
o Maar er worden andere technologieën ontwikkelt (zelflerende AI)
2
,D1: Computer- en interne0echnologieën > HS1: Computersystemen, algoritmes en so=ware > 1. Computersystemen
o Verwachting: tegen 2040-2050 zullen computers even krachtig zijn als alle breinen samen
à krachtiger dan mensheid = technologische singulariteit
§ Mensen met huidige intelligentie zal maatschappij niet meer kunnen begrijpen
§ Moeten we voor opletten: goede voorwaarden en beperkingen opleggen
1.4. Toekomstige computerarchitecturen
• Nieuwe technologieën om te blijven groeien in technologie
• Welke technologieën zouden we gebruiken? Hangt af van performantie (rekensnelheid,
energieverbruik), kostprijs en betrouwbaarheid
1.4.1. Neuromorfe computers
• Klassieke elektronische computers (von Neumann-architectuur)? Goed voor numerieke berekeningen
ó Neuroforme computers? Kunnen cognitieve taken uitvoeren (herkenning personen op foto’s)
• Hun architectuur: opgebouwd zoals onze hersenen en zenuwen
• = (zelf)lerend systeem dat via training en bijstelling voortdurend verbeteren en zich kunnen aanpassen
aan omstandigheden = plasticiteit
• Kunnen beslissingen nemen obv gegevens uit externe sensoren
• Leren patronen herkennen
• Zulk ‘artificieel neuraal systeem’ bestaat uit netwerk v relatief eenvoudige rekenelementen (zoals onze
neuronen)
1.4.2. Kwantumcomputers (QC)
• Kwantumcomputers? Computers waarbij de rekenprocessor (Quantum processing unit, QPU)
gebruikmaakt vd principes vd kwantummechanica: superpositie, verstrengeling, interferentie
• Basiselement QPU = qubits
o Kunnen tegelijkertijd 0 en 1 hebben (ó gewone bits: zijn 0 of 1)
o Berekeningen met qubits worden dus tegelijk voor beide waarden uitgevoerd
à exponentiële stijging rekenkracht
o Zijn dus sneller dan klassieke computers die berekeningen herhaaldelijk moeten uitvoeren voor
alle data
• Beperking: verstrengeling van qubits is vrij snel onstabiel (‘decoherentie’)
o Dus niet zo betrouwbaar
o Oplossing: goede foutencorrectiemethodes, maar tot vandaag nog niet gelukt
• Kritiek: verbruiken enorm veel energie want moeten heel koud gehouden worden
• Voorspelling van Hartmut Neven: rekenkracht kwantumcomputers stijgen dubbel-exponentieel
2. Algoritmes
• Voordeel computer: programmeerbaar om meerdere taken uit te voeren met dezelfde hardware
à Programmeren:
o Geschreven in programmeertaal, via computeronafhankelijk softwareprogramma (‘broncode’)
o Vervolgens softwareprogramma vertaald (‘gecompileerd’) naar uitvoerbaar programma
(‘uitvoeringscode’)
§ Uitgeschreven in termen van specifieke instructies die gekend zijn door je computer
o Tenslotte uitvoeringscode effectief uitvoeren op hardware computer
• Om computer taak te laten oplossen w vaak een algoritme uitgevoerd
2.1. Wat is een algoritme?
• Algoritme: eindige reeks instructies om probleem op te lossen = procedure om stapsgewijs het
probleem van een gegeven begintoestand naar beoogd einddoel te brengen
o Lijkt op recept
o Vaak meerder algoritmes die je kan gebruiken om probleem op te lossen
• Algoritme = oplossingsmethode die strikt genomen losstaat van computerprogramma’s
MAAR in praktijk meestal computers gebruikt voor uitvoering algoritmes
à Algoritme is de beschrijving vd oplossingsprocedure, maar computerprogramma (geschreven in
programmeertaal) is de implementatie van dat algoritme
• Door stijgende rekenkracht computer, stijgt ook aantal/soort softwareprogramma’s
o à steeds krachtigere algoritmes en hun software-implementaties
o Maar opletten voor:
§ Het moet ethisch en juridisch blijven (foto’s bewerken naar naaktfoto’s)
§ Bias van algoritme
3
, D1: Computer- en interne0echnologieën > HS1: Computersystemen, algoritmes en so=ware > 2. Algoritmes
• Algoritmes bestaan uit meerdere stappen in sequentie die…
o beslissingen vereisen om de taak te voltooien
of
o zich kunnen herhalen = iteratie
§ Zoals Algoritme van Euclides: om de grootste gemene deler te bepalen:
• Initieel: A = a en B = b
• Als B = 0: uitkomst is A en stop
• Als A > B:
o Dan: trek B af van A en ga terug naar vorige stap
o Anders: trek A af van B en ga terug naar vorige stap
a = 36 en b = 63
• Eerste iteratie: A < B à anders: B-A è a = 36 en b = 27
• Tweede iteratie: A > B à dan: A-B è a = 9 en b = 27
• Derde iteratie: A < B à anders: B-A è a = 9 en b = 18
• Vierde iteratie: A < B à dan: A-B è a = 9 en b = 9
• Vijfde iteratie: A niet groter dan B à anders: B-A è a = 9 en b = 0
• B is nu 0, dus uitkomst is 9 = grootste gemene deler, algoritme stopt
• Procedure algoritme gebaseerd op kennis over de wereld à onderscheidt:
o Declaratieve kennis: feitelijke uitspraak over aspect uit wereld à geeft definitie v probleem
§ Vb: definieert wat een cirkel is, maar zegt verder niets
o Procedurele kennis: geeft stapsgewijze methode van oplossing
§ Vb: zegt hoe je een cirkel op scherm tekent
è voor algoritme heb je stapsgewijze/procedurele oplossingsmethode nodig
2.2. Kenmerken van algoritmes
• Vereisten van algoritme om bruikbaar te zijn (voor de gebruiker):
o Correctheid: juiste uitvoer geven voor geldige invoer
§ Let op: uitkomst moet niet altijd exact zijn, wel benaderend juist
o Eindigheid: algoritme moet ooit stoppen en een antwoord geven
o Uitvoeringssnelheid/efficiëntie
§ Hangt af vd rekencomplexiteit vh algoritme: hoeveel neemt de benodigde
uitvoeringstijd toe als de grootte vd taak toeneemt?
o Robuustheid: kan algoritme overweg met alle mogelijke (mss zelfs foute) invoer?
• Vereisten van algoritme om algoritme te programmeren (voor de informatici en ingenieurs):
o Elegantie: is het algoritme (en computercode) leesbaar/begrijpbaar?
o Ethisch en zonder vooringenomenheid:
§ Nog belangrijker als we de uitkomst van een algoritme zonder meer gebruiken
§ Nog belangrijker als we algoritmes autonoom beslissingen laten nemen
o Duurzaam: impact op milieu?
• Daarnaast nog vereisten voor het computerprogramma dat het algoritme implementeert (moet eenvoudig te
gebruiken zijn, interface hebben, grafisch mooi zijn, niet duur zijn, upgrades aanbieden)
2.3. Classificatie van algoritmes
• Deterministische algoritmes (algoritme van Euclides)
o = produceren voor gegeven invoer steeds dezelfde uitvoer
o Algoritme doorloopt steeds dezelfde sequentiële stappen
• Probabilistische/stochastische algoritmes (bepalen van optimum van wiskundige functie)
o = kunnen verschillende uitkomst produceren, zelfs voor dezelfde invoer, afhankelijk van
willekeurig (random) proces dat bewust in algoritme w gebruikt
• Slimme algoritmes / machinaal leren (ML) (zoekresultaten door wat je geliked hebt)
o = verbeteren zichzelf automatisch obv vroegere ervaringen
o Hoe meer gegevens, hoe beter algoritme w
o Algoritme bouwt dus zelf model van probleem op
o Behoort tot bredere domein van AI
o ‘Data is de nieuwe olie’
o Maar roept vragen op: wie is er eventueel aansprakelijk? (zie HS6, p.44)
2.4. Illustratie: algoritmes voor het ‘raad-mijn-getal’-spelletje
• Jan kiest getal tussen 1 en 128 (N), Mieke moet raden.
• Algoritme A: Mieke roept willekeurig getallen
o Niet-efficiënt
o Stopt mogelijks nooit (als Mieke vergeet welke getallen ze al heeft gegokt)
4