100% tevredenheidsgarantie Direct beschikbaar na je betaling Lees online óf als PDF Geen vaste maandelijkse kosten 4.2 TrustPilot
logo-home
Samenvatting

Samenvatting Theorie Inleiding tot de Computerwetenschappen

Beoordeling
4,0
(2)
Verkocht
9
Pagina's
20
Geüpload op
15-06-2021
Geschreven in
2020/2021

Samenvatting van de te kennen theorie van het vak Inleiding tot de computerwetenschappen.

Instelling
Vak










Oeps! We kunnen je document nu niet laden. Probeer het nog eens of neem contact op met support.

Geschreven voor

Instelling
Studie
Vak

Documentinformatie

Geüpload op
15 juni 2021
Aantal pagina's
20
Geschreven in
2020/2021
Type
Samenvatting

Onderwerpen

Voorbeeld van de inhoud

Samenvatting Theorie Computerwetenschappen


Topic 1: Computerwetenschappen?
“In silico” experiment = De computerwetenschappen beginnen steeds meer een deel van de
onderzoeksmethodologie binnen wetenschappelijke disciplines te worden. “In silico” experimenten zijn dan
experimenten die uitgevoerd worden met behulp van een computersimulatie. → De term "in silico" komt van
Silicium, één van de basisstoffen die gebruikt worden om de elektronische onderdelen van een computer te
bouwen.
Computationeel proces = De “actie” die leeft in een computer. Net als een natuurlijk proces is het iets dat zich
volstrekt in de tijd. Computationele processen ontstaan doordat een computer een programma uitvoert, dat
programma is een tekstuele representatie van het computationeel proces. Het programma moeten we zelf
schrijven a.d.h.v. een programmeertaal naar keuze.
Er bestaan meerdere programmeertalen en ze zijn allemaal even krachtig. Ze zijn Turing compleet: ieder
programma dat je in 1 taal hebt geschreven, kan je opnieuw schrijven in een andere taal. Sommige talen zij wel
beter geschikt voor bepaalde zaken dan anderen.
Topic 2: Basis Python
Read-eval-print-loop =
• Read = Python leest het programma en beslist of dat deze het programma begrijpt.
→ Als dit niet zo is kan het dat er een syntaxfout is opgetreden: jouw invoer is geen geldige Python.
• Eval = Python probeert de expressie te berekenen tot een bepaalde resultaatwaarde.
→ Hier kan een semantische fout of runtime fout optreden: gaat in tegen de betekenis van de taal
(bijvoorbeeld delen door 0).
• Print = De resultaatwaarde gaat effectief weergegeven worden op het scherm.
De eenvoudige types van Python en hun meest gebruikte bijhorende operatoren
• Integers = gehele getallen. → +, -, *, / en %
• (// = deling die naar beneden afrondt)
• Floats = deelverzameling van reële getallen. → + (=overloaded operator)
• Complexe getallen → +, *
• Strings → +, *
Voorrangsregels van de operatoren
** → *, /, % → +, - dus machtsverheffing → negatie (-)→ multiplicatieve indicatoren → additieve indicatoren
Statement = commando’s die we aan de computer geven, ze worden uitgevoerd en geven geen waarden. Met
het statement x=8+2 bevelen we Python als het ware om de variabele x in het geheugen vanaf nu te associëren
met de waarde 10.
Expressie = Een expressie wordt uitgerekend en geeft een waarde terug.’ Expressies hebben een waarde maar
statements niet.
Verschil tussen functies en procedures
In de computerwetenschappen worden functies zonder resultaat vaak procedures genoemd.

We kunnen dus zeggen dat een functie-aanroep een expressie is. De functie-aanroep heeft een waarde, namelijk
de waarde die door de functie wordt teruggegeven. Een procedure-aanroep is een statement aangezien hier
geen waarde uitkomt
Verschil tussen variabele links en rechts van het teken
Een variabele rechts maakt deel uit van de expressie. Eerst wordt de expressie uitgerekend (gebruik makend van
de oude waarde van de variabele dus) en pas nadien wordt de variabele geassocieerd met de nieuwe waarde.
Het statement x = x + 1 gaat de waarde van x dus vervangen door de oude waarde van x, verhoogd met 1.
Modules = werkschriften die door derden werden ingetikt en geïmporteerd kunnen worden.

1

, Topic 3: Functies
• De parameter is de naam van het argument in de definitie van de functie. In ons voorbeeld is t de
parameter en is 80 het argument.
• Soms spreekt men echter van de formele parameter(s) en de actuele parameter(s). Dit is gewoon andere
terminologie om hetzelfde aan te duiden. Indien we deze terminologie gebruiken, is t dus de formele
parameter en is 80 de actuele parameter.
Hoe werkt de oproep van een zelfgemaakte functie?
Een zélfgebouwde functie wordt dus syntactisch helemaal op dezelfde manier opgeroepen als de ingebouwde
functies uit het vorige topic. Maar hier is wat er gebeurt bij de uitvoering: Python "springt" bij de oproep van de
functie naar de body. Hierbij worden de parameters van de functie tijdelijk geassocieerd met de argumenten van
de oproep. Dan wordt de body geëvalueerd. In ons geval staat daar een return statement. Dat doet Python de
expressie evalueren en met de waarde "terugspringen" naar de oproeper. In ons geval is dat de REPL. Deze zal
de resulterende waarde zoals gewoonlijk op het scherm printen.
Parameter en lokale variabelen zijn lokaal aan de definitie van een functie. → De namen van de parameters
mogen enkel gebruikt worden binnenin de body van de functie en niet daarbuiten.
Procedurele abstractie = We stoppen dus zoveel mogelijk "logisch samenhorende berekeningen" in één functie
die we vervolgens een goed gekozen naam geven en nadien kunnen (her)gebruiken.
• Door een expressie als functievoorschrift in een functie met een goede naam te stoppen, abstraheren
we de complexiteit van die expressie "weg" omdat we er van af dan abstract over kunnen nadenken.
• De code wordt op die manier veel leesbaarder en een expressie die we meerdere keren nodig hebben
moeten we maar 1 keer schrijven.
Waarheidstabellen van de Booleaanse operatoren
• + AND – → False
• + AND + → True
• - AND – → False
• + OR – → True
• + OR + → True
• - OR – → False
• Not + → False
• Not – → True
Belangrijkste relationele operatoren:
Relationele operatoren = operatoren die een relatie tussen de twee waarden aftoetsen en vervolgens True of
False opleveren.
• > (groter dan), < (kleiner dan), == (gelijk aan), <= (kleiner of gelijk aan), >= (groter of gelijk aan),
!= (verschillend van).
Predicaat = een functie die een bepaalde waarde van een eigenschap berekent. Het zijn functies die een
booleaanse waarde weergeven.
Waarom zijn and en or lui?
Or is lui omdat het zijn rechter operand niet meer zal uitvoeren (nalezen) als de linker operand True is (want dat
is 1 van de 2 sowieso True). And is lui omdat het zijn rechter operand niet meer zal uitvoeren als de linker operand
False is.
Nesten van if-testen = Zowel de then-tak als de else-tak van dat if statement bestaan opnieuw uit een if
statement dat de beslissing maakt of we in de onderste dan wel de bovenste rij van de tabel zitten.
→ We gebruiken dit om meerdimensionale testen te schrijven.
Wanneer gebruiken we ‘elif’?
Het veelvuldig nesten van if statements geeft moeilijk te lezen code die bovendien bijzonder makkelijk fout te
interpreteren is. Om zulke gevallen op te vangen laat Python een onbeperkt aantal elif takken toe tussen de then-
tak en de else-tak. elif is een afkorting voor "else if".
Wat als er geen ‘return’ statement in de body van een functie staat?
We noemen deze functie dan een procedure aangezien ze geen resultaatwaarde oplevert.


2

, Block = bijvoorbeeld een block code onder een then-tak of een else-tak. → Een block bestaat uit verschillende
statements die door Python één na één worden uitgevoerd. We kunnen een block herkennen aan het feit dat
alle statements van het block op hetzelfde niveau worden ingesprongen.
Topic 4: Recursieve functies
Recursieve functie = Een functie die zichzelf opnieuw zal oproepen in de body, waardoor er een computationeel
proces ontstaat. Belangrijk bij dit soort functies is om te denken aan een stopconditie (een eindvoorwaarde om
de circulariteit te stoppen).
Trace = Een procesvisualisatietechniek. We krijgen een trace van een programma wanneer het programma een
spoort van zijn activiteiten achterlaat op het scherm. Bedoeling is dat het programma nu en dan iets op het
scherm zet om te vertellen wat het aan het doen is.
Profile = Een procesvisualisatietechniek. Deze techniek bestaat er in om de echte tijd te meten die de recursieve
functie heeft gespendeerd tijdens een laatste oproep. Het profilen van een functie is dus het meten van de
rekentijd van een functie voor verschillende soorten invoer. Deze informatie kunnen we weergeven in een plot.

→ Probleem met profiling: Het is niet altijd de beste methode om op een wetenschappelijke manier over de
uitvoeringssnelheid van een algoritme te spreken. Een ongelukkig profile kan ons immers een totaal verkeerd
beeld geven van de uitvoeringssnelheid van het algoritme in het algemeen. De gemeten tijden kunnen immers
afhangen van een hele reeks technische factoren die dikwijls afhangen van andere programma's die op je
computer draaien. Zelfs indien de profile technisch redelijk goed is opgesteld kan het toch nog steeds zijn dat er
bepaalde uitzonderlijke soorten invoer bestaan waarop het algoritme heel goed of heel slecht scoort.
Soorten computationele processen
• Lineair proces = Recursieve functie waarbij het aantal functieoproepen van de vorm a.n + b is. Wanneer
we van dit proces een profile maken, laat de grafiek min of meer een rechte zien.
• Logaritmisch proces = Processen die steeds minder extra recursieve aanroepen genereren naarmate de
invoer groter en groter wordt.
• Exponentieel proces = Processen die steeds meer extra recursieve aanroepen genereren naarmate de
invoer groter en groter wordt.
Groene grafiek toont lineair
proces, rode grafiek toont
logaritmisch proces. → Merk
op dat de rode grafiek minder
snel stijgt door toevoeging
van een 3e optie waardoor er
een onderverdeling gemaakt
wordt tussen even en oneven
Vb. Lineair proces getallen




Pagina 56 tot 58 voor meer info. → Boomrecursie, wanneer een
oproep van een functie resulteert in 2 of meer recursieve
oproepen. Het aantal oproepen dat nodig is groeit exponentieel.

3

Beoordelingen van geverifieerde kopers

Alle 2 reviews worden weergegeven
3 jaar geleden

2 jaar geleden

4,0

2 beoordelingen

5
0
4
2
3
0
2
0
1
0
Betrouwbare reviews op Stuvia

Alle beoordelingen zijn geschreven door echte Stuvia-gebruikers na geverifieerde aankopen.

Maak kennis met de verkoper

Seller avatar
De reputatie van een verkoper is gebaseerd op het aantal documenten dat iemand tegen betaling verkocht heeft en de beoordelingen die voor die items ontvangen zijn. Er zijn drie niveau’s te onderscheiden: brons, zilver en goud. Hoe beter de reputatie, hoe meer de kwaliteit van zijn of haar werk te vertrouwen is.
mara10 Vrije Universiteit Brussel
Volgen Je moet ingelogd zijn om studenten of vakken te kunnen volgen
Verkocht
24
Lid sinds
4 jaar
Aantal volgers
17
Documenten
1
Laatst verkocht
9 maanden geleden

4,0

3 beoordelingen

5
0
4
3
3
0
2
0
1
0

Recent door jou bekeken

Waarom studenten kiezen voor Stuvia

Gemaakt door medestudenten, geverifieerd door reviews

Kwaliteit die je kunt vertrouwen: geschreven door studenten die slaagden en beoordeeld door anderen die dit document gebruikten.

Niet tevreden? Kies een ander document

Geen zorgen! Je kunt voor hetzelfde geld direct een ander document kiezen dat beter past bij wat je zoekt.

Betaal zoals je wilt, start meteen met leren

Geen abonnement, geen verplichtingen. Betaal zoals je gewend bent via iDeal of creditcard en download je PDF-document meteen.

Student with book image

“Gekocht, gedownload en geslaagd. Zo makkelijk kan het dus zijn.”

Alisha Student

Veelgestelde vragen