STEM – Science, Technology, Engineering & Mathematics
Computational Thinking
Hoofdstuk 1 ‘What is Computational Thinking?’
Het representeert een universele, gestructureerde manier om een probleem op te lossen, om systemen te ontwerpen of om
gedrag van mensen te begrijpen. Niet alleen computerwetenschappers zouden deze manier moeten leren en gebruiken,
maar iedereen. Dit is niet hetzelfde als denken als een computer; het is het putten uit fundamentele concepten uit de
computerscience.
1.1 CO MPUT ERS, CO MPUT ERS EV ERYW HERE
Computers zijn overal en worden overal bij gebruikt; zelfs de grootste vorm van criminaliteit is ‘computer crime’; je hebt dus
geen keuze meer over dat computers je leven beïnvloeden, het enige waar je nog impact op hebt is hoe je hiermee omgaat:
of je leert hoe je ze moet gebruiken of je gebruikt de manier van luddite; een persoon die niet met computers kan omgaan.
1.2 CO MPUT ER, COMPUTER SCIE NCE A ND CO MPUT ATIO NA L T HINKI NG
De termen computer of computer systeem gebruiken we voor zowel computer hardware als computer software;
Hardware: alle fysieke onderdelen van een apparaat (toetsenbord, LCD, disk drivers, CD/DVD drivers, track pads, processors).
Software: groepen computer programma’s . Het belangrijkste verschil tussen een computer en andere machines is dat een
computer op instructies kan reageren. Instructies voor het uitvoeren van een bepaalde taak worden ook wel programm of
code genoemd (voorbeeld: Chrome, Firefox, Internet Explorer, Antivirus, apps op je telefoon).
Mensen die als baan hebben om programma’s te maken krijgen ook wel de naam software developer of programmer. Omdat
elk programma zo gemaakt is dat het de eisen (requierements) van iemand behartigd, lost elk programma in feite een
probleem op. Dus: programmers of software developers zijn in feite probleem oplossers.
1.3 FROM A BAC US TO MACH INE
Een belangrijk aspect van computer hardware is het vermogen om te calculeren. Om de geschiedenis van de computer in te
duiken, beginnen we daarom bij de allereerste rekenmachines.
• De allereerste rekenmachine was de abacus (rond 1300):
Een abacus kan niet omschreven worden als een computer, omdat
het niet genoeg opslagruimte heeft, het laat alleen hele getallen zien,
kan maar een beperkt aantal berekeningen uitvoeren en heeft een
nogal grof user-interface.
De abacus lees je van rechts naar links
De rijen onder de streep heet ook wel the ‘1s beads’ omdat elke ‘bead’ in deze rij de waarde 1 heeft.
De rij boven de streep heet de ‘5s beads’ omdat elke ‘bead’ in deze rij de waarde 5 heeft.
De eerste rij op rechts heeft de waarde 1; de tweede rij 10; de derde rij 100; de vierde 1.000 enz.
Alleen de ‘beads’ die als het ware de lijn aanraken, mag je tellen. Bovenstaande abacus heeft dus de waarde 0.
Moderne computers hebben de volgende vier concepten van de abacus:
1) De mogelijkheid om data op te slaan (storage)
2) Het vermogen om gegevens van het systeem informatie te laten weergeven (representation)
3) Het vermogen om berekeningen uit te voeren (calculation)
Calculation kan nooit alleen; een abacus heeft een mens nodig en een computer software)
4) User interface: de manier waarop de gebruiker communiceert met het apparaat
• Na de abacus kwam de Napier’s Bones (1617)
Hiermee was het ook mogelijk om te delen, vermenigvuldigen en te worteltrekken.
• Hierna werd de snelheid van berekenen en de unster interface verbeterd; er werden ‘machines’ ontworpen. Deze
waren mechanisch en werden ontworpen door mathematicians in verschillende delen van Europa. Dit waren:
Pascaline (1643) door Blaise Pascal & Leibnitz’ cualculator (1674) door Gottfried Leibniz
1.4 TH E FIRST SO FTWA RE
,STEM – Science, Technology, Engineering & Mathematics
Computational Thinking
Geen van bovenstaande apparaten waren werkelijk programmeerbaar; als je een nieuwe berekening wou uitvoeren,
verdween de berekening die je daarvoor deed. Een echt programmeerbaar apparaat kan berekeningen opslaan om het op
een ander moment weer te kunnen gebruiken.
• De eerste machine die programmeerbaar werd, was geen calculator. Dit was een ‘loom’ voor het weven van
kleding. Rond 1805 bouwde Joseph-Marie de eerste programmeerbare machine:
The Jacquard Loom. Deze maakte gebruik van ‘ponskaarten’; het veranderen van nummers en de plaats van de
gaten in de kaarten zou het patroon van de kleding die geweven zou worden veranderen.
• Het eerste voorbeeld van ‘computer software’ ontstond in 1843: de Analytical Engin door Charles Babbage. Hij
maakte gebruik van het idee van The Jacquard Loom met de ponskaarten; zo konden er dingen opgeslagen worden
en was er een mogelijk tot input van een programma in de hardware. Helaas was dit te groot, te ingewikkeld en
veel te ver vooruit in de tijd. Dit kon niemand bouwen en deze is dus, helaas, nooit gebouwd.
Ada Lovelace was zeer geïnteresseerd in dit werk en heeft voor de Analystical Engine programma’s geschreven. Zij
behoort daardoor tot de eerste programmers.
1.5 WH AT MA KE S IT A MODE RN COMPUT E R?
Een computer bestaat uit drie eigenschappen (de Babbage voldeed niet aan alle 3):
1) Het moet elektronisch zijn (dus niet mechanisch)
2) Het moet digitaal zijn (en niet analoog)
Een digitaal systeem is een systeem waarin er geen oneindig aantal mogelijkheden is en de verandering niet continue is.
Digitale systemen beperken waarden als een van de weinige keuzes. Denk aan digitale klok; je ziet de cijfers ze als nummers;
er zit niks tussen 09:30 en 09:31. De meeste snelheidsmeters in auto’s zijn analoog m et een soort klok met een wijzer.
3) Het moet een stored programm concept gebruiken
Dit zijn de belangrijkste hardware-eenheden in een moderne computer; een toetsenbord, een beeldscherm en een system
unit. Deze drie componenten kunnen gebruikt worden om de vier essentiële delen van een computer te beschrijven:
→ Input device (dit is je muis of je toetsenbord)
→ Output device (je scherm of het geluid wat uit de computer komt)
Let op: er bestaan ook In- & Output (IO) devices: disk drivers, flash memory cards, CD units, DVD
→ Memory (de harde schijf of de SSD)
→ Processor (dit is het brein van de computer)
Computer-memory wordt tegenwoordig voor twee doeleinden gebruikt: 1) voor het opslaan van data en 2) voor het opslaan
van instructies die de data verwerken.
1.6 TH E FIRST MODE N COMPUTER
Aan het einde van de jaren ‘30 en gedurende de jaren ’40 werd er overal ter wereld onderzoek gedaan om vroege
computerapparatuur te maken. Binnen een paar jaar waren computerwetenschappers de ingewikkelde activiteit van het
gebruik van machine-instructies zat, wat leidde tot de uitvinding van programmeertalen op hoog niveau. Programmeertaal
op hoog niveau is een taal die vertrouwt op instructies die veel meer op Engels lijken in plaats van op cryptische numerieke
vorm van de meeste machine-instructies. De revolutie die leidde tot computersystemen zoals die van vandaag, veranderde
halverwege de jaren ’50 in meer een evolutionaire geschiedenis, op één grote wijziging aan de hardware na.
1.7 MOO RE’ S LAW
Jack Kilby & robert Noyce werkten in de jaren ’50 en ’60 aan een technologie die de ‘vacuüm tubes’ zou vervangen; dit zou
kleiner, sneller en meer betrouwbaar zijn. Ze maakten de ‘chip’. Deze apparaten zijn integrated circiuts en de technologie
noemden ze semiconductor technology.
Integrated circuits maken het mogelijk dat computers kleiner worden maar wel duizend keer sneller worden dan de eerste
computers. Omdat ook Gordon Moore hieraan mee werkte, kwam de Moore’s Law tot stand: elke 18 maanden verdubbeld
het aantal tranistors op 1 inch2.
, STEM – Science, Technology, Engineering & Mathematics
Computational Thinking
Hoofdstuk 2: How Real-World information becomes computable data
2.1 I NFO RMATI ON A ND DA TA
Information Age: het resultaat van de sociale en economische groei; een periode dat gekarakteriseerd wordt door de
toenemende technologie.
Data en informatie hebben overlappende ideeën, maar betekenen beide wat anders:
Data: informatie die is omgezet in een vorm waarmee een computer kan werken, zoals audio-opnames of observaties of
een QR code; kan echter ook een getal zijn en het hoeft niet persé in een computer opgeslagen te worden.
“the quantities, characters, or symbols on which operations are performed by computers and other automatic equipment,
and which may be stored or transmitted in the form of electrical signals, records on magnetic tape or punched cards, etc.”
Informatie: kennis/feiten uit de echte wereld, zoals gesprekken of informatie van een website
“knowledge communicated concerning some particular fact, subject, or event; that of which one is apprised or told;
intelligence, news”
2.2 CO NVERTING I NFORMATIO N I NTO DATA
Er zijn twee verschillende soorten data:
1. Continuous data; wanneer er een oneindige mogelijkheid aan waarden is; metingen in de fysieke/echte wereld;
analoog
2. Discrete data; wanneer er een eindig aantal mogelijke waarden is; dingen die geteld kunnen worden; digitaal
Binary Digit/BIT: in de digitale wereld de kleinste eenheid van data; kan alleen ON of OFF zijn:
0 = OFF (discharged)
1 = ON (charged)
Computers zien alles in BITS; foto’s, geluid, boeken, video’s etc. Een bit string is een reeks bits. Hoe langer de bitstring, hoe
meer mogelijke patronen er zijn en hoe meer mogelijkheid er bestaat.
Als een bit string uit 3 bits bestaat (bijvoorbeeld 3 lampen met allemaal de mogelijkheid 0 of 1), zijn er dus 8 mogelijkheden.
Je doet dan: 2 tot de 3e. (2 x 2 = 4, x 2 = 8), zie ook deze tabel:
Lengte van de bit string Mogelijkheden
1 2 tot de 1e = 2
2 2 tot de 2e = 4
3 2 tot de 3e = 8
4 2 tot de 4e = 16
5 2 tot de 5e = 32
6 2 tot de 6e = 64
7 2 tot de 7e = 128
8 2 tot de 8e = 256
2.3 DAT A CA PACITY
Een dag van de week kan een bit string van 3 hebben, omdat er 7 dagen in de week zijn en er zijn 8 mogelijkheden met de
lengte 3 (2 tot de 3e macht = 8). De maanden van het jaar heeft echter een lengte van 4 nodig, gezien er daar 16
mogelijkheden zijn en er 12 maanden in een jaar zitten (2 tot de 4e macht = 16).
Data capaciteit: de hoeveelheid informatie van een computersysteem die door het systeem kan worden gecodeerd. Dit is
direct gerelateerd aan het aantal nummers van het bit-systeem van een systeem. Dit wordt meestal uitgedrukt in byte: een
bitstring met de lengte 8. Een enkele byte kan 256 unieke patronen opslaan, want 2 tot de macht 8 (1 byte) is 256.
Word is een andere maat van data capaciteit. Het is een eenheid van data capaciteit dat is gebaseerd op de hardware van
een computer systeem. Het is een reeks met een vaste lengte van bits die als 1 item worden verwerkt door de processor.
Het nummer van bits in word van een computersysteem is normaalgesproken een meervoud van 8. Je hebt bijvoorbeeld 32
bit computers of 64 bit computers. Een computer rekent in KB, MB, GB, TB of PB.
Computational Thinking
Hoofdstuk 1 ‘What is Computational Thinking?’
Het representeert een universele, gestructureerde manier om een probleem op te lossen, om systemen te ontwerpen of om
gedrag van mensen te begrijpen. Niet alleen computerwetenschappers zouden deze manier moeten leren en gebruiken,
maar iedereen. Dit is niet hetzelfde als denken als een computer; het is het putten uit fundamentele concepten uit de
computerscience.
1.1 CO MPUT ERS, CO MPUT ERS EV ERYW HERE
Computers zijn overal en worden overal bij gebruikt; zelfs de grootste vorm van criminaliteit is ‘computer crime’; je hebt dus
geen keuze meer over dat computers je leven beïnvloeden, het enige waar je nog impact op hebt is hoe je hiermee omgaat:
of je leert hoe je ze moet gebruiken of je gebruikt de manier van luddite; een persoon die niet met computers kan omgaan.
1.2 CO MPUT ER, COMPUTER SCIE NCE A ND CO MPUT ATIO NA L T HINKI NG
De termen computer of computer systeem gebruiken we voor zowel computer hardware als computer software;
Hardware: alle fysieke onderdelen van een apparaat (toetsenbord, LCD, disk drivers, CD/DVD drivers, track pads, processors).
Software: groepen computer programma’s . Het belangrijkste verschil tussen een computer en andere machines is dat een
computer op instructies kan reageren. Instructies voor het uitvoeren van een bepaalde taak worden ook wel programm of
code genoemd (voorbeeld: Chrome, Firefox, Internet Explorer, Antivirus, apps op je telefoon).
Mensen die als baan hebben om programma’s te maken krijgen ook wel de naam software developer of programmer. Omdat
elk programma zo gemaakt is dat het de eisen (requierements) van iemand behartigd, lost elk programma in feite een
probleem op. Dus: programmers of software developers zijn in feite probleem oplossers.
1.3 FROM A BAC US TO MACH INE
Een belangrijk aspect van computer hardware is het vermogen om te calculeren. Om de geschiedenis van de computer in te
duiken, beginnen we daarom bij de allereerste rekenmachines.
• De allereerste rekenmachine was de abacus (rond 1300):
Een abacus kan niet omschreven worden als een computer, omdat
het niet genoeg opslagruimte heeft, het laat alleen hele getallen zien,
kan maar een beperkt aantal berekeningen uitvoeren en heeft een
nogal grof user-interface.
De abacus lees je van rechts naar links
De rijen onder de streep heet ook wel the ‘1s beads’ omdat elke ‘bead’ in deze rij de waarde 1 heeft.
De rij boven de streep heet de ‘5s beads’ omdat elke ‘bead’ in deze rij de waarde 5 heeft.
De eerste rij op rechts heeft de waarde 1; de tweede rij 10; de derde rij 100; de vierde 1.000 enz.
Alleen de ‘beads’ die als het ware de lijn aanraken, mag je tellen. Bovenstaande abacus heeft dus de waarde 0.
Moderne computers hebben de volgende vier concepten van de abacus:
1) De mogelijkheid om data op te slaan (storage)
2) Het vermogen om gegevens van het systeem informatie te laten weergeven (representation)
3) Het vermogen om berekeningen uit te voeren (calculation)
Calculation kan nooit alleen; een abacus heeft een mens nodig en een computer software)
4) User interface: de manier waarop de gebruiker communiceert met het apparaat
• Na de abacus kwam de Napier’s Bones (1617)
Hiermee was het ook mogelijk om te delen, vermenigvuldigen en te worteltrekken.
• Hierna werd de snelheid van berekenen en de unster interface verbeterd; er werden ‘machines’ ontworpen. Deze
waren mechanisch en werden ontworpen door mathematicians in verschillende delen van Europa. Dit waren:
Pascaline (1643) door Blaise Pascal & Leibnitz’ cualculator (1674) door Gottfried Leibniz
1.4 TH E FIRST SO FTWA RE
,STEM – Science, Technology, Engineering & Mathematics
Computational Thinking
Geen van bovenstaande apparaten waren werkelijk programmeerbaar; als je een nieuwe berekening wou uitvoeren,
verdween de berekening die je daarvoor deed. Een echt programmeerbaar apparaat kan berekeningen opslaan om het op
een ander moment weer te kunnen gebruiken.
• De eerste machine die programmeerbaar werd, was geen calculator. Dit was een ‘loom’ voor het weven van
kleding. Rond 1805 bouwde Joseph-Marie de eerste programmeerbare machine:
The Jacquard Loom. Deze maakte gebruik van ‘ponskaarten’; het veranderen van nummers en de plaats van de
gaten in de kaarten zou het patroon van de kleding die geweven zou worden veranderen.
• Het eerste voorbeeld van ‘computer software’ ontstond in 1843: de Analytical Engin door Charles Babbage. Hij
maakte gebruik van het idee van The Jacquard Loom met de ponskaarten; zo konden er dingen opgeslagen worden
en was er een mogelijk tot input van een programma in de hardware. Helaas was dit te groot, te ingewikkeld en
veel te ver vooruit in de tijd. Dit kon niemand bouwen en deze is dus, helaas, nooit gebouwd.
Ada Lovelace was zeer geïnteresseerd in dit werk en heeft voor de Analystical Engine programma’s geschreven. Zij
behoort daardoor tot de eerste programmers.
1.5 WH AT MA KE S IT A MODE RN COMPUT E R?
Een computer bestaat uit drie eigenschappen (de Babbage voldeed niet aan alle 3):
1) Het moet elektronisch zijn (dus niet mechanisch)
2) Het moet digitaal zijn (en niet analoog)
Een digitaal systeem is een systeem waarin er geen oneindig aantal mogelijkheden is en de verandering niet continue is.
Digitale systemen beperken waarden als een van de weinige keuzes. Denk aan digitale klok; je ziet de cijfers ze als nummers;
er zit niks tussen 09:30 en 09:31. De meeste snelheidsmeters in auto’s zijn analoog m et een soort klok met een wijzer.
3) Het moet een stored programm concept gebruiken
Dit zijn de belangrijkste hardware-eenheden in een moderne computer; een toetsenbord, een beeldscherm en een system
unit. Deze drie componenten kunnen gebruikt worden om de vier essentiële delen van een computer te beschrijven:
→ Input device (dit is je muis of je toetsenbord)
→ Output device (je scherm of het geluid wat uit de computer komt)
Let op: er bestaan ook In- & Output (IO) devices: disk drivers, flash memory cards, CD units, DVD
→ Memory (de harde schijf of de SSD)
→ Processor (dit is het brein van de computer)
Computer-memory wordt tegenwoordig voor twee doeleinden gebruikt: 1) voor het opslaan van data en 2) voor het opslaan
van instructies die de data verwerken.
1.6 TH E FIRST MODE N COMPUTER
Aan het einde van de jaren ‘30 en gedurende de jaren ’40 werd er overal ter wereld onderzoek gedaan om vroege
computerapparatuur te maken. Binnen een paar jaar waren computerwetenschappers de ingewikkelde activiteit van het
gebruik van machine-instructies zat, wat leidde tot de uitvinding van programmeertalen op hoog niveau. Programmeertaal
op hoog niveau is een taal die vertrouwt op instructies die veel meer op Engels lijken in plaats van op cryptische numerieke
vorm van de meeste machine-instructies. De revolutie die leidde tot computersystemen zoals die van vandaag, veranderde
halverwege de jaren ’50 in meer een evolutionaire geschiedenis, op één grote wijziging aan de hardware na.
1.7 MOO RE’ S LAW
Jack Kilby & robert Noyce werkten in de jaren ’50 en ’60 aan een technologie die de ‘vacuüm tubes’ zou vervangen; dit zou
kleiner, sneller en meer betrouwbaar zijn. Ze maakten de ‘chip’. Deze apparaten zijn integrated circiuts en de technologie
noemden ze semiconductor technology.
Integrated circuits maken het mogelijk dat computers kleiner worden maar wel duizend keer sneller worden dan de eerste
computers. Omdat ook Gordon Moore hieraan mee werkte, kwam de Moore’s Law tot stand: elke 18 maanden verdubbeld
het aantal tranistors op 1 inch2.
, STEM – Science, Technology, Engineering & Mathematics
Computational Thinking
Hoofdstuk 2: How Real-World information becomes computable data
2.1 I NFO RMATI ON A ND DA TA
Information Age: het resultaat van de sociale en economische groei; een periode dat gekarakteriseerd wordt door de
toenemende technologie.
Data en informatie hebben overlappende ideeën, maar betekenen beide wat anders:
Data: informatie die is omgezet in een vorm waarmee een computer kan werken, zoals audio-opnames of observaties of
een QR code; kan echter ook een getal zijn en het hoeft niet persé in een computer opgeslagen te worden.
“the quantities, characters, or symbols on which operations are performed by computers and other automatic equipment,
and which may be stored or transmitted in the form of electrical signals, records on magnetic tape or punched cards, etc.”
Informatie: kennis/feiten uit de echte wereld, zoals gesprekken of informatie van een website
“knowledge communicated concerning some particular fact, subject, or event; that of which one is apprised or told;
intelligence, news”
2.2 CO NVERTING I NFORMATIO N I NTO DATA
Er zijn twee verschillende soorten data:
1. Continuous data; wanneer er een oneindige mogelijkheid aan waarden is; metingen in de fysieke/echte wereld;
analoog
2. Discrete data; wanneer er een eindig aantal mogelijke waarden is; dingen die geteld kunnen worden; digitaal
Binary Digit/BIT: in de digitale wereld de kleinste eenheid van data; kan alleen ON of OFF zijn:
0 = OFF (discharged)
1 = ON (charged)
Computers zien alles in BITS; foto’s, geluid, boeken, video’s etc. Een bit string is een reeks bits. Hoe langer de bitstring, hoe
meer mogelijke patronen er zijn en hoe meer mogelijkheid er bestaat.
Als een bit string uit 3 bits bestaat (bijvoorbeeld 3 lampen met allemaal de mogelijkheid 0 of 1), zijn er dus 8 mogelijkheden.
Je doet dan: 2 tot de 3e. (2 x 2 = 4, x 2 = 8), zie ook deze tabel:
Lengte van de bit string Mogelijkheden
1 2 tot de 1e = 2
2 2 tot de 2e = 4
3 2 tot de 3e = 8
4 2 tot de 4e = 16
5 2 tot de 5e = 32
6 2 tot de 6e = 64
7 2 tot de 7e = 128
8 2 tot de 8e = 256
2.3 DAT A CA PACITY
Een dag van de week kan een bit string van 3 hebben, omdat er 7 dagen in de week zijn en er zijn 8 mogelijkheden met de
lengte 3 (2 tot de 3e macht = 8). De maanden van het jaar heeft echter een lengte van 4 nodig, gezien er daar 16
mogelijkheden zijn en er 12 maanden in een jaar zitten (2 tot de 4e macht = 16).
Data capaciteit: de hoeveelheid informatie van een computersysteem die door het systeem kan worden gecodeerd. Dit is
direct gerelateerd aan het aantal nummers van het bit-systeem van een systeem. Dit wordt meestal uitgedrukt in byte: een
bitstring met de lengte 8. Een enkele byte kan 256 unieke patronen opslaan, want 2 tot de macht 8 (1 byte) is 256.
Word is een andere maat van data capaciteit. Het is een eenheid van data capaciteit dat is gebaseerd op de hardware van
een computer systeem. Het is een reeks met een vaste lengte van bits die als 1 item worden verwerkt door de processor.
Het nummer van bits in word van een computersysteem is normaalgesproken een meervoud van 8. Je hebt bijvoorbeeld 32
bit computers of 64 bit computers. Een computer rekent in KB, MB, GB, TB of PB.