Module 1A: computersystemen en software
Korte inhoud: evolutie en gebruik van computersystemen en basisbegrippen van softwareapplicaties-
en ontwikkeling
verschil natuurlijke vs. computertalen
algoritmes, softwareontwikkeling, en opensourcesoftware
I. Computers en de digitale revolutie
1. Inleiding
Digitale revolutie/digitale transformatie = vele processen die vroeger handmatig gebeurden,
gebeuren nu digitaal dankzij enorme vooruitgang in informatie- en communicatietechnologie (ICT)
socio-economische impact maar ook mentaal-culturele
2. Computers en hun geschiedenis
Digitale revolutie wordt gedragen door genetwerkte computers (software en hardware)
computer = fundamenteel anders dan andere uitvindingen van technologische apparaten omdat
het dankzij software programmeerbaar is voor verschillende toepassingen
Computer = (programmeerbare) machines om berekeningen te maken
- Rekenmachines 19E
- 20E: elektronische componenten gebruikt (elektronenbuizen, halfgeleidercomponenten,
transistor, CMOS-halfgeleidertechnologie, geïntegreerd circuit (IC, chip) snellere en
betrouwbaardere computers)
- Uiteindelijk: PC, laptop, notepad + bedrijven die software aanboden als product
3. De wet van Moore
Huidige computers opgebouwd met micro/nano-elektronica
- bouwstenen elektronica = transistoren = digitaal programmeerbare schakelaar om
berekeningen uit te voeren (1 & 0)
- transistoren kunnen op een geïntegreerde schakeling (IC, chip) verbonden worden met
elkaar om rekenprocessoren en geheugens te bouwen, waarmee computers gebouwd
worden
1
, - Wet van Moore: elke 2 jaar verdubbeling van aantal transistoren op een CMOS-chip.
o Voortdurende schaalverkleining van transistoren = computers steeds sneller en meer
rekenkracht
Rekenracht computers neemt exponentieel toe in de tijd
Elektronica en computers toenemnde impact op onze samenleving
Ook totaal antal computers dat we gebruiken neemt toe: netwerken tussen computers versterken
exponentiële groei
- Nieuwe en complexere problemen oplossen
- Snel veel data transfereren en diensten aanbieden
- Groeiende impact software-industrie en algoritmes in onze samenleving
Supercomputers = speciaal ontworpen voor buitengewoon groot rekenvermogen veel geheugen-
en opslag capaciteit:
- Bevatten intern veel processoren die verbonden w met zeer snel intern netwerk
- OF meerdere computers als één cluster
Wat als exponentiële groei in rekenkracht blijft doorgaan? wanneer CMOS-schaalverkleining niet
meer mogelijk is, zullen wetenschappers en ingenieurs andere technologieën ontwikkelen om groei
in rekenracht verder te zetten verwachting: computers even krachtig als breinen van alle mensen
samen (technologische singulariteit)
4. Computerarchitecturen
Continue, exponentiële groei mogelijk gemaakt door verschillende techieken: (elektro)mechanische
computer relays hafgeleidende elektrische buizen micro/nano-elektronische
halfgeleidertransistoren
4.1. De Von Neumann-architectuur
Huidige computers =
- Centrale verwerkingseenheid (CPU) = ALU + control unit
- Computer geheugen (RAM memory unit) = data & instructies opslaan
- Invoer- en uitvoermechanismen (input and output devices) + externe massaopslag
Werking:
2
, - computer w geprogrammeerd: programma ingeladen in geheugen
- CPU haalt instructies uit geheugen en voert ze uit op data (ook in geheugen ingeladen en
opgeslagen)
- Resultaten van berekeningen ook naar geheugen
- Eindresultaat van volledige programma wordt uiteindelijk uitgelezen
Voordelen: eenvoudig te ontwerpen
Geschikt voor: uitvoeren van numerieke berekeningen (bv weer voorspellen)
!! Beperkingen: kan niet op hetzelfde moment een volgende instructie ophalen om uit te voeren en
een bewerking op de data uitvoeren kan snelheid beperken
4.2. Neuroforme computers
= computers die neurobiologische architectuur en werking van onze hersenen en zenuwen proberen
nabootsen (zelf)lerende systemen: kunnen werking verbeteren en zich aanpassen aan
(veranderende) omstandigheden + kunnen beslissingen nemen op basis van nieuwe info
Geschikt voor: cognitieve taken efficiënt uitvoeren (bv.mensen/dieren herkennen op foto’s), ook
voor toepassingsn als visie, gehoor, autonome robots, autonome auto’s, …
!! Beperkingen: nog niet alles geweten hierover
4.3. Kwantumcomputers
= rekenprocessor die gebruikmaakt van kwantummechanica (qubits) kwantumprocessor kan
tegelijk dezelfde berekeningen uitvoeren over zeer grote hoeveelheid data
Voordelen: veel sneller dan klassieke computer
Geschikt voor: berekeningen voor encryptie, snel zoeken in grote databanken, kwantumsimulatie,
artificiële intelligentie, …
!! Beperkingen: verstrengeling van qubits vrij snel onstabiel aantal betrouwbare berekeningen vrij
beperkt + dienen extreem gekoeld te worden
3
, II. Algoritmes en software
1. Algoritmes
Computers = programmeerbaar via softwareprogramma (broncode) dat computeronafhankelijk is en
dan vertaald (gecompileerd) wordt naar een uitvoerbaar programma (uitvoerinsgcode) in termen
van specifieke instructies gekend door de computer die je wil gebruiken
1.1. Wat is een algoritme?
Algoritme = eindige reeks instructies om (wiskundig) probleem op te lossen: procedure om
probleem van een begintoestand naar een einddoel te brengen
- Probleem vaak wiskundig gedefinieerd
- Meerdere algoritmes mogelijk voor eenzelfde probleem
- Algoritme = beschrijving van oplossingsprocedure van een probleem
overeenkomstige computerprogramma (software) = implementatie van dat algoritme
o Ethische & juridische implicaties van software!!!
- Algoritmes = meerdere stappen in sequentie die zich repetitief kunnen herhalen (iteraties)
of die beslissingen uitvoeren om taak te voltooien
- Procedure gebaseerd op kennis en informatie over de wereld
o Declaratieve kennis: feitelijke uitspraak over aspect vd wereld
o Procedurele kennis: methode van oplossing
1.2. Kenmerken van algoritmes [CEURE]
1) Correctheid: juiste output voor gegeven, geldige input
2) Eindigheid: stoppen met zinnig antwoord
3) Uitvoeringssnelheid
4) Robuustheid: alle mogelijk vormen van invoer mogelijk?
5) Elegantie: makkelijk leesbaar en begrijpbaar
Maar ook: ethisch? Duurzaam? Specifieke eisen eindgebruiker?
1.3. Classificatie van algoritmes
- Deterministische algoritmes: steeds dezelfde output voor gegeven input (steeds zelfde
sequentie aan stappen)
- Probabilistische/stochastische algoritmes: kunnen voor dezelfde invoer een verschillende
uitkomst genereren, vaak afhankelijk van willekeurig proces in algoritme
4