INFORMATICA
INHOUDSOPGAVE
H0 Inleiding .............................................................................................................................................................................. 3
Algoritmen ...................................................................................................................................................................................... 3
Het ontstaan van computers .......................................................................................................................................................... 4
0.3 An outline of our study ............................................................................................................................................................. 5
H1 Gegevensopslag .................................................................................................................................................................. 6
Bits en hoe ze worden opgeslagen ................................................................................................................................................. 6
Het werkgeheugen van een computer............................................................................................................................................ 7
Massageheugen ............................................................................................................................................................................. 8
Gegevens voorstellen met bitpatronen .......................................................................................................................................... 9
Het binair talstelsel....................................................................................................................................................................... 10
H2 Gegevensverwerking ......................................................................................................................................................... 13
Computerarchitectuur .................................................................................................................................................................. 13
Machinetaal ................................................................................................................................................................................. 14
Programma-uitvoering ................................................................................................................................................................. 16
Randapparatuur ........................................................................................................................................................................... 17
H3 Besturingssystemen .......................................................................................................................................................... 19
De rol van besturingssystemen..................................................................................................................................................... 19
Evolutie in computerbesturing ..................................................................................................................................................... 19
Typen van software ...................................................................................................................................................................... 20
Componenten en werking van het besturingsysteem .................................................................................................................. 20
Processen en concurrentie ............................................................................................................................................................ 21
H4 Netwerken en Internet ...................................................................................................................................................... 24
Soorten netwerken ....................................................................................................................................................................... 24
Netwerkprotocollen ...................................................................................................................................................................... 24
Netwerken van netwerken ........................................................................................................................................................... 25
Communicatiemodellen en protocollen ........................................................................................................................................ 25
Het internet .................................................................................................................................................................................. 26
Gedistribueerde systemen ............................................................................................................................................................ 28
H5 Algoritmen ........................................................................................................................................................................ 29
Wat is een algoritme? .................................................................................................................................................................. 29
Representatie van algoritmen ...................................................................................................................................................... 29
Fasen bij het algoritmisch oplossen van problemen ..................................................................................................................... 30
1
, Iteratieve structuren ..................................................................................................................................................................... 31
Recursieve structuren ................................................................................................................................................................... 32
H6 Programmeertalen ............................................................................................................................................................ 34
Generaties van programmeertalen .............................................................................................................................................. 34
Programmeerconcepten ............................................................................................................................................................... 35
Procedureeenheden...................................................................................................................................................................... 38
Vertaalproces ............................................................................................................................................................................... 39
Linken en laden ............................................................................................................................................................................. 41
H8 Gegevensabstracties ......................................................................................................................................................... 42
Basis gegevensstructuren ............................................................................................................................................................. 42
Gerelateerde concepten ............................................................................................................................................................... 43
Implementeren van gegevensstructuren ...................................................................................................................................... 44
Door gebruikers gedefinieerde gegevenstypen ............................................................................................................................ 49
H9 Databasesystemen ............................................................................................................................................................ 50
Basisprincipes van databases ....................................................................................................................................................... 50
Het relationele databasemodel .................................................................................................................................................... 52
2
, H0 INLEIDING
ALGORITMEN
Algoritme = algemene oplossing voor een bepaald type probleem. Deze wordt gegeven in een reeks stappen die dan
gaat bepalen hoe een taak zal worden uitgevoerd. Voordat een computer een taak kan uitvoeren, moet hij eerst het
algoritme voor het uitvoeren ervan leren.
Een programma = een algoritme voorgesteld in de vorm waardoor het door een computer kan uitgevoerd worden.
Programmeren = het maken van een programma, het structureren ervan zodat de machine ermee kan werken en het
programma aan de machine leren.
Software = verzamelnaam voor programma’s en de algoritmen die ze voorstellen.
Hardware = het geheel van computers en bijhorende apparatuur die de instructies van de programma’s uitvoeren.
è Algoritmisch denken: hoe de oplossing van een probleem ontdekken, voorstellen en communiceren als een
geordende, éénduidige reeks van uitvoerbare instructies
De intelligentie die nodig is voor het oplossen van een vraagstuk is opgeslagen in het algoritme
à mate van intelligentie van machines wordt bepaald door de intelligentie die is opgeslagen in het algoritme.
!! Onvolledigheidstheorema van Göbel: er zijn allemaal theorieën waarvan de correctheid of incorrectheid niet
bewezen kan worden. !!
è Abstraheren abstractie: = kernidee van de informatica
- De externe eigenschappen van een systeem tonen en de interne werking en
structuur van het systeem verbergen
à principe ‘black box’: alleen wat doet interesseert ons, niet wat er in zit
- Scheiden van essentie en detail
à wat essentie is (het externe) en wat detail (het interne) is relatief t.o.v. een
doel
à doel = oplossen van een (deel)probleem<
à geen verlies van precisie
Computers begrijpen geen programma’s, ze voeren enkel uit.
Informatica (Computer Science) is een ondersteunende wetenschap voor de Beleidsinformatica (Information Systems).
Dit is de toegepaste wetenschap die bestudeert hoe informatie (en communicatie) technologie (ICT) ingezet kan
worden voor het bouwen van systemen die de werking en het beheer van organisaties ondersteunen.
VB. algoritme van Euclides van Alexandrië : het vinden van de GGD
Invoer: Twee positieve getallen
Uitvoer: Grootste gemene deler van de twee getallen
Stap 1: Wijs M en N respectievelijk de grootste en kleinste invoerwaarde toe
Stap 2: Deel M door N, en plaats de rest in R
Stap 3: Als R niet gelijk is aan 0,
wijs dan aan M de waarde N toe,
wijs aan N de waarde R toe,
en ga zo terug naar stap 2;
zo niet is het eindresultaat gelijk aan N
3
, Creativiteit: het inzetten van ICT voor het oplossen van uitdagende
(maatschappelijke) problemen vereist creativiteit
Data: de hedendaagse omgang van opslagcapaciteit, bandbreedte en
computerkracht maakt het mogelijk om “big data” te analyseren en hieruit
nuttige toepasbare kennis te verwerven, voor het oplossen van allerlei
problemen aangaande het stellen van diagnoses, het zoeken naar verklaringen,
het maken van voorspellingen en het voorschrijven van acties en beslissingen
Internet: het internet is geëvolueerd tot een netwerk dat niet enkel mensen maar ook “dingen” verbindt. Het Internet
of Things (IOT) vormt een belangrijke hoeksteen in de digitale revolutie
Programmeren: nodig voor het kunnen uitvoeren van algoritmen door computers VB. Python
Impact: belangrijke gevolgen op het vlak van ethiek, privacy, veiligheid en wetgeving. De blockchain technologie,
ontwikkelingen in AI, cyberaanvallen, en sociale media zijn allemaal voorbeelden van hoe ICT een impact heeft op vele
aspecten van het maatschappelijk en economisch leven
HET ONTSTAAN VAN COMPUTERS
Het telraam
De vraag is of we dit al als een eerste computer kunnen beschouwen. De posities van de kralen stellen waarden voor.
Het apparaat heeft wel ervoor gezorgd dat informatie kon worden opgeslagen/ weergegeven, maar dit dan ook alleen
indien er heel voorzichtig mee werd omgegaan. Het is dus geen volwaardig gegevensopslagsysteem, maar eerder een
combinatie waarbij de mens ervoor zorgt dat het een compleet rekenmachine kan worden.
De eerste rekenmachine
Deze maakte gebruik van tandwielen. Door de positie hiervan konden gegevens mechanisch worden ingegeven.
Algoritmen zijn in de structuur verankerd.
• Pascal (1 algoritme = optellen)
• Leibniz (verschillende wiskundige bewerkingen)
• Babbage (19e eeuw)
o Verschilmachine: kan omgebouwd worden om aantal verschillende
berekeningen te maken, gebaseerd op successieve verschillen
o Analystische machine: instucties dmv ponskaart inlezen (dus
algoritme niet ingebouwd) & oplossingen konden afgedrukt worden
De eerste computers
De Mark I computer van IBM (1944), een elektomechanische machine
De eerste computers ontstonden omstreeks de tweede Wereldoorlog en werden ontworpen met het oog op militaire
toepassingen (VB. kraken van vijandige codes)
Verdere vooruitgang
Volgens de wet van Moore: het aantal transitoren op een geïntegreerd circuit verdubbelt om de twee jaren
Computers worden hierdoor goedkoper en kleiner (miniaturisatie) en worden geintegreerd in allerlei apparatuur en
machines, vb. motoren, camera’s, verkeerslichten, wasmachines, drankautomaten, …
4
, 0.3 AN OUTLINE OF OUR STUDY
Gezien de beperkte, beschikbare gegevensopslagcapaciteit en de tijdrovendheid van programmeren, waren de eerste
algoritmen weinig complex. Later werden de taak groter en complexer.
P34: SOCIAL ISSUES
5
, H1 GEGEVENSOPSLAG
BITS EN HOE ZE WORDEN OPGESLAGEN
Bit = binary digit à 0 en 1
Bits worden in informatica gebruikt om gegevens op te slaan als reeksen
nullen en enen. Deze bits hoeven niet perse een numerieke waarde te
hebben, maar zijn symbolen die meerdere gegevens kunnen voorstellen.
Om een bit op te slaan, heb je een apparaat nodig dat 2 standen heeft (0 en
1). Het vertalen van gegevens naar bitpatronen gebeurt deels op basis van
conventies of standaarden (vb. de ASCII code), en deels op basis van
berekeningen.
• Elektronische schakelingen (geleidend / niet geleidend)
• Magnetiseerbaar oppervlak (pos / neg geladen)
• Refelcterend oppervlak (reflecterend / niet reflecterend)
• Vakje siliciumdioxide (vol / leeg)
• Condensator (geladen / niet geladen)
Booleaanse algebra = ontworpen om te bepalen of iets WAAR (1) of NIET WAAr (2) is.
Afkorting Operator Vergelijkbaar met Symbool
AND de conjuctie vermenigvuldigen x.y
XOR de disjunctie, exclusieve keuze optellen x+y
NOT het complement negatie ¬x of ~x of !x
(I)OR Inclusieve keuze
Gates = “poort” = apparaat die Booleaanse bewerking uitvoert en verschillende implementaties mogelijk (vb. AND),
één of twee invoeren à één uitvoer
Transistor = drie laagjes siliconemateriaal: Emitter, Base, Collector
AAN = (kleine) stroom tussen B-E à grote stroom tussen C-E
Flip-flops = schakeling voor het opslaan van één bit gebouwd met gates (dus transistoren)
Twee invoerlijnen, één uitvoerlijn - Beiden 0 à uitvoerlijn 0
- Bovenste 1 à uitvoerlijn 1
- Onderste 1 à uitvoerlijn 0
VLSI: Very Large-Scale Integration = integratie van miljoenen flip-flops samen met een besturingsschakeling op een
chip
6
, = latch: eenmaal IN = 1 blijft OUT = 1, ook als IN weer 0
wordt
à hoe krijgen we de waarde weer op 0?
= SR latch (set, reset)
Input R, S Output Q, !Q
Om Q = 1 moet S = 1 worder
= SR latch met enable
Klok aanwezig die om de zoveel tijd een puls uitstuurt: het
enable signaal
= D latch
Enable EN: geeft de klokpuls aan dat we mogen lezen uit D
Data D: wat is het “data” signaal
è Concept van een computer - Binaire operaties met gates
- Geheugen ook, met latches en flip-flops
- Plus: een klok EN: elektrische stroom voor aan te drijven D: data weergeven
HET WERKGEHEUGEN VAN EEN COMPUTER
Werkgeheugen = een enorm aantal schakelingen die elk 1 bit kunnen opslaan
Cel = groep van acht schakelingen die elk een bit kunnen bevatten
Byte = reeks van acht bits
à unieke naam (adres)
Geheugenadres = een unieke naam die elke cel krijgt om verschillende cellen in het werkgeheugen van mekaar te
scheiden -> Meest significante cijfer links
-> Omgekeer kan ook (rechts) = Endianness
Cellen in het werkgeheugen zijn geordend en hun inhoud vormt één lange
reeks van bits
-> bitpatronen langer dan 8 opslaan
VB. bitpatroon van 16 bits opslaan in twee opeenvolgende cellen
7
,Heximale notatie = verkorten notatie voor het noteren van bitstromen
Wiskundig: waarden van 0 tot F: 16 waarden:
16 = 2^4: om de waarde voor te stellen zijn 4 bits nodig
Informatica: bitpatronen als veelvoud van 4 (=1 symbool voor 4 bits)
Opslag VB. De cel op adres 0101 bevat waarde 00001000
è verschil tussen celruimte en adresruimte
Random Access Memory (RAM) = elke cel heeft een eigen adres en kan dus onafhankelijk van andere cellenv
bereikt/worden worden
Dynamisch RAM (DRAM of SDRAM) = dynamische geheugentechnologie: gebruik van flip-flops is verouderd en
verdere miniaturisatie en snellere responstijd door gebruik van nieuwe technologiën die kleine ladingen gebruiken +
refresh-schakelingen nodig die meerdere keren per seconde herhalen
Opslagcapaciteit:
• 1 bit: 0 of 1
• 1 nibble: 4 bits (of 1 hexadecimaal cijfer 0-F)
• 1 byte: 8 bits (of 2 hexadecimale cijfers)
• Kilobyte (KB) = 2!" bytes = 1024 bytes = ± 1000 bytes
• Megabyte (MB) = 2#" bytes = 2!" KB = ± 1 000 000 bytes
• Gigabyte (GB) = 2$" bytes = 2#" KB = 2!" MB = ± 1 000 000 000 bytes
• Terabyte (TB) = 2%" bytes = 2$" KB = 2#" MB = 2!" GB = ± 1 000 000 000 000 bytes
• Nu ja, Kibi en Kilo...
MASSAGEHEUGEN
Werkgeheugen in “vluchtig”, massageheugen niet - grotere opslagcapaciteit
- lagere kosten (per opgeslagen bit)
- “offline”, vervoerbaar/uitwisselbaar
Nadelen: - Bij roterende schijven trager
- Zoektijd
- Rotatievertraging
- Overdrachtsnelheid tijdens lezen/schrijven
Magnetisch geheugen
• Gegevens worden opgeslagen op een roterende magnetische schijf
voorzien van een coating
• Concentrische sporen op het magnetisch schijfgeheugen
• Formatteren = aanbrengen van sporen en sectoren
• Elke spoor bevat eenzelfde aantal sectoren en elke sector bevat een
lange reeks bits
o Densiteit van gegevens neemt toe naarmate het midden
• Meerde schijven op centrale as
• Elk bruikbaar opp. heeft een lees/schrijfarm
8
, • Opslagcapaciteit van honderden GB tot enkele TB
• Prestaties beoordeeld op:
o Zoektijd (seek time) = tijd nodig om de lees/schrijfkoppen van de ene naar de andere track te
verplaatsen
o Rotatievertraging of latentietijd = helft van de tijd die nodig is om schijf 1 omwenteling te laten maken
o Toegangstijd (access tijd) = zoektijd + rotatievertraging
o Overdrachtsnelheid = snelheid waarmee gegevens van of naar de schijf kunnen worden verplaats
Optisch geheugen
• De sectoren op een Compact Disk (CD) hebben een capaciteit van 2
KB. De opslagdensiteit is overal op de disk hetzelfde d.w.z. dat de
rotatiesnelheid moet aangepast worden naarmate dichter/verder van
het middelpunt
• Toegangstijden kunnen langer zijn t.o.v. magnetische schijfgeheugens
• Opslagcapaciteit van een CD is rond de 700 MB
• Digital Versatile Disk (DVD) maken gebruik van meerdere semi-
transparante lagen en halen opslagcapaciteiten van meerdere GB
• Blue-ray Disk (BD) maken gebruik van andere lasertechnologie waardoor de focus van de laserstraal preciezer
is en er meer gegevens op de schijf opgeslagen kunnen worden (5x zovaal als DVD)
Flashgeheugen
• Massageheugen zonder mechanische (bewegende) component
o Geen nadeel van tragere snelheid
• Bit = elektron in miniscuul vakje siliciumdioxide
o Niet vluchtig voor vele jaren
o Robuust tegen schokken
o Random access
o MAAR soms wijzigen, beschadigen de vakjes
• Flash drives (VB. USB stick, Solid State disk (SSD)): capaciteiten tot honderden/duizenden GB
• SD, SDHC en SDXC geheugenkaarten: groote van kleine postzegel met capaciteiten van resp. 2GB, 32GB, TB
GEGEVENS VOORSTELLEN MET BITPATRONEN
TEKST: code met unieke bitpatronen per tekstsymbool
• ASCII
8 bits à 2& = 256 unieke patronen
• Unicode
16 bits à 2!' = 65536 unieke patronen
• Tekst file
Bestand met lange reeks sympbolen gecodeerd met ASCII of Unicode
AFBEELDINGEN: verzameling van puntjes (pixels)
• Bitmap: reeks bits die de pixels van een afbeelding codeert
• Zwart-wit: 1 bit per pixel
9
, • Kleur: 3 bits per pixel (RGB)
GELUID: sampling
• Amplitude van een geluidgolf meten met een frequentie van 44100 keer per seconde
• Opgeslaan in 16 bits per sampel (32 stereo)
• CD-opnames met 16 bits (2!' = 65536 unieke patronen)
• MIDI (musical instrument digital interface): kan coderen welk instrument welke noot speelt en voor hoe lang
HET BINAIR TALSTELSEL
Van binair naar decimaal:
Van deciamaal naar binair:
1. Dele het getal (gehele deling) door 2 en noteer de rest
2. Zolang het quotient niet gelijk is aan 0, blijf doordelen
door 2 en de rest noteren
3. Eenmaal het quotient gelijk is aan 0 kan de binaire
voorstelling afgeleid worden door de resten van rechts
naar links neer te schrijven
Optellen van binaire getallen:
Gehele getallen: 2-complementnotatie:
Meest significante bit geeft het teken weer
!!! -1 ≠ 101 !!!
Afleiden van pos naar neg:
10