Basis programmeren
Hoofdstuk 2: algoritmen en programmeren
1. Algoritmen
Def.: een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd doel leidt.
Maw het lost een welbepaald probleem op de stappen die nodig zijn om vanaf een welbepaalde
beginsituatie een vooropgestelde uitkomst te bereiken
- Instructies: welbepaalde elementaire handelingen (moet duidelijk en uitvoerbaar zijn voor de
uitvoerder, zou niet mogen afhangen van de beoogde uitvoerder van het algoritme)
- Eindige reeks: anders wordt het beoogde doel niet bereikt eindig in tijd impliceert dat het
ook eindig in aantal is, maar niet omgekeerd
Computeralgoritme: een duidelijk gedefinieerd computationele procedure die een (verzameling v.)
waarde(n) als invoer neemt en een (verzameling v.) waarde(n) als uitvoer produceert
2. Problemen
Problemen algoritme oplossing
De set v mogelijke instructies is beperkt en a-priori bepaalddit is onderdeel vd probleemspecificatie
Traveling Salesman problem + Torens van Hanoi: klasse van problemen zelfde algoritme is
bruikbaar om voor een andere begintoestand tot een oplossing te komen bv. ander netwerk/
klanten/…, er zijn veel instantiaties mogelijk
- Instantiatie: betreft een specifieke begintoestand en doel van een probleem
Correct algoritme: bereikt voor iedere instantiatie het beoogde doel, maw lost het betreffende
probleem op
Incorrect algoritme: bereikt niet voor iedere instantiatie het beoogde doel, voor sommige bereikt het
mogelijks wel een doel, voor andere wordt mogelijks geen uitkomst gegenereerd bv. chatGPT
Is een probleem (algoritmisch) oplosbaar?: kunnen we algoritme bedenken? Werkt het steeds? Voor
elke begintoestand, specifiëring, instantiatie? Zijn er bepaalde voorwaarden voor de eindigheid van
een algoritme? Wat is de kwaliteit van de gevonden opl?
3. Computeralgoritmen
Wat is data?: alles wat we kunnen opslaan als een sequentie van 0-en en 1-en. Die kunnen we op een
bepaalde manier coderen in tekst, muziek… (extern)
informatie: alles wat we kunnen opslaan op een computer als een sequentie van 0-en en 1-en, die
nuttig is voor de gebruiker, hangt dus af van gebruiker (extern)
kennis: informatie in de hoofden van mensen (intern)
wijsheid: meer geaggregeerde vorm van kennis (intern)
Utiliteit= nut neemt toe, doordat ze verwerkt wordt
Data algoritme informatie cognitive processing kennis, wijsheid
, Y= f(x) (x= data) (f=algoritme) (y= uitkomst)
Computeralgoritme: creëert waarde door het omzetten van data naar informatie
Bubble sort algoritme: om gehele getallen te sorteren, steeds per 2 getallen vergelijken tot dat die 1
keer volledig over de rij is geweest en niets heeft moeten aanpassen
Business intelligence: rapporteren
- Tabellen geven weinig overzicht
- Belangrijk voor bv. de evolutie van de loonkost in een HRM systeem
4. Computationele procedures
= een geordende reeks ondubbelzinnige, computer-uitvoerbare instructies die een eindig proces
beschrijven
- Proces: herhaalbare reeks afh. activiteiten (activiteit is afh. van (enkele) stappen daarvoor) met
een welbepaald eindres., startende vanaf een welbepaald beginpunt
- Geordend: de instructies moeten een zorgvuldig opgebouwde structuur hebben als het gaat om
de volgorde waarin instructies moeten uitgevoerd worden
o In willekeurig volgorde heb je niet altijd de beoogde uitkomst afh. activiteiten
o Niet alle instructie moeten in een vooraf vastgelegde volgorde uitgevoerd worden om
hetzelfde resultaat te bekomen
Res. wordt mogelijks bekomen door samenvoegen deelresultaten, die afzonderlijk
kunnen gerealiseerd worden, los van elkaar, in een niet geordende manier parallel
computing bv. bij recept, TSP, niet torens van Hanoi
Parallelle algoritmen omvatten meerdere reeksen instructies, die expliciet bepaald
zijn in het algoritme, kunnen afzonderlijk uitgevoerd worden. Ze zijn ontworpen
om door verschillende processoren in een multiprocessormachine uitgevoerd
worden
- Ondubbelzinnig: computer kan niet interpreteren (of programmeur mag het niet verkeerd
begrijpen), daarom moet een computeralgoritme exact specifiëren wat er moet gebeuren.
Dubbelzinnigheid hangt af vd notatie vh algoritme (best (pseudo-)programmeertaal , maar niet
altijd handig want zeer veel/ ingewikkelder)
o Intussen zijn er algoritmes die een computer in staat stellen te interpreteren (natuurlijke
taal) bv. ChatGPT, DALL.E 2, DeepSeek
- Computer-uitvoerbaar: ze moeten doenbaar zijn vb. 1 niet (CPU), 2 wel, 3 niet (niet eindig),
instructies op verschillende niveaus
o Laagste: beperkte set basisinstructies= bitsequenties die gevoed worden aan processor.
Essentiële uitdaging bij het ontwikkelen v. computeralgoritmes complexe problemen
oplossen enkel gebruikmakend v. beperkte set computer-uitvoerbare instructies
o Bestaande algoritmes kunnen als hoger-niveau/ hogere-orde instructies herbruikt worden
bv. BubbleSort (percentiel-waarde berekenen), ChatGPT(obv beschrijving door gebruiker)
o Een computer-uitvoerbare instructie is per definitie uitvoerbaar in eindige tijd
- Eindig soms wel oneindig doorlopende processen, nl. processen die geen a-priori bepaald
eindpunt hebben die continu doorlopen bv. thermostaat wel eindige reeks instructies, het
zijn zichzelf herhalende algoritmen, wnr het eindpunt is bereikt, initieert het zichzelf terug met
vaak stopcriteria of -condities. Eerder semantisch, technisch-theoretische dicussie
Programma: een uitvoerbare representatie of implementatie ve algoritme
, Programmeren: computeralgoritme implementeren als een computerprogramma
5. Eerste programma’s in Python
Vb 2.1 en 2.2 geven instructies voor het kwadraat van 0 tem 10
Vb 2.3: 3 aanhalingstekens voor informatieve gedeelte, # voor nog individuele info, instructies voor
schrikkeljaar
6. Programmeren
Algoritme≠ representatie (= geeft algoritme weer): in se niet tastbaar, abstracte vormloze concepten
Door de abstracte aard van algoritmes moeten we zelf een manier vinden om deze weer te geven,
noteren en implementeren
Representatie vereist exact gedefinieerde primitieve= bouwstenen waarmee representaties v.
algoritmen kunnen worden samengesteld
- Exact of precies gedefinieerd: ondubbelzinnig, vermijden communicatieproblemen
- Primitief bestaat uit 2 delen: symbolische representatie en semantiek
- Syntax (grammatica): verz. regels voor de manier waarop deze primitieven (woordenschat)
kunnen gecombineerd worden tot correcte uitdrukkingen ofte instructies
Verzameling primitieven en syntax vormen samen een programmeertaal (ind de primitieven
computer-uitvoerbare instructies betreffen)
Def. Programmeren: het implementeren (en ontwikkelen) ve algoritme in termen ve reeks
computeruitvoerbare instructies met behulp ve programmeertaal. Res= computerprogramma.
- Implementeren: uitschrijven in een programmeeromgeving die toelaat het resulterende
programma uit te voeren op een computer
Algoritme vangt intelligentie en laat toe om deze over te dragen om tot een opl te komen voor een
‘complex’ probleem, moeten enkel de instructies uitvoeren waaruit het algoritme bestaat
Laat toe om machines te maken die allerlei nuttige taken (basisinstructies/-activiteiten)
uitvoeren
De mate van intelligentie van machines wordt beperkt door
- De intelligentie die mbv computeralgoritmes gevangen en overgedragen worden, gevolg vd
beperkte set v computer-uitvoerbare instructies
- Door de intelligentie vd mens om algoritmes te ontwikkelen algoritmes die zelf algoritmes
ontwikkelen = machine learning, AI
7. Programmeertalen
Programma’s voor computers: reeksen instructies, gecodeerd of neergeschreven dmv alfanumerieke
tekens die in feite bit-sequenties voorstellen (machinetaal). Enige taal die computer verstaat, vorm
waarin invoer moet gebeuren om machine aan te sturen alsook data in te geven, acties te laten
ondernemen, te kunnen gebruiken voor specifieke doeleinden om gewenste output te generen.
Zowel instructies als data gecodeerd als bitsequenties
- 1 e generatie (1GL): machinetaal overeenstemmend met/ ontworpen voor 1 welbepaalde
computerarchitectuur, elektronische signalen die verstuurd worden, moeilijk, onhandig , traag
programmeren, laag niveau v. complexiteit te bereiken
Hoofdstuk 2: algoritmen en programmeren
1. Algoritmen
Def.: een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd doel leidt.
Maw het lost een welbepaald probleem op de stappen die nodig zijn om vanaf een welbepaalde
beginsituatie een vooropgestelde uitkomst te bereiken
- Instructies: welbepaalde elementaire handelingen (moet duidelijk en uitvoerbaar zijn voor de
uitvoerder, zou niet mogen afhangen van de beoogde uitvoerder van het algoritme)
- Eindige reeks: anders wordt het beoogde doel niet bereikt eindig in tijd impliceert dat het
ook eindig in aantal is, maar niet omgekeerd
Computeralgoritme: een duidelijk gedefinieerd computationele procedure die een (verzameling v.)
waarde(n) als invoer neemt en een (verzameling v.) waarde(n) als uitvoer produceert
2. Problemen
Problemen algoritme oplossing
De set v mogelijke instructies is beperkt en a-priori bepaalddit is onderdeel vd probleemspecificatie
Traveling Salesman problem + Torens van Hanoi: klasse van problemen zelfde algoritme is
bruikbaar om voor een andere begintoestand tot een oplossing te komen bv. ander netwerk/
klanten/…, er zijn veel instantiaties mogelijk
- Instantiatie: betreft een specifieke begintoestand en doel van een probleem
Correct algoritme: bereikt voor iedere instantiatie het beoogde doel, maw lost het betreffende
probleem op
Incorrect algoritme: bereikt niet voor iedere instantiatie het beoogde doel, voor sommige bereikt het
mogelijks wel een doel, voor andere wordt mogelijks geen uitkomst gegenereerd bv. chatGPT
Is een probleem (algoritmisch) oplosbaar?: kunnen we algoritme bedenken? Werkt het steeds? Voor
elke begintoestand, specifiëring, instantiatie? Zijn er bepaalde voorwaarden voor de eindigheid van
een algoritme? Wat is de kwaliteit van de gevonden opl?
3. Computeralgoritmen
Wat is data?: alles wat we kunnen opslaan als een sequentie van 0-en en 1-en. Die kunnen we op een
bepaalde manier coderen in tekst, muziek… (extern)
informatie: alles wat we kunnen opslaan op een computer als een sequentie van 0-en en 1-en, die
nuttig is voor de gebruiker, hangt dus af van gebruiker (extern)
kennis: informatie in de hoofden van mensen (intern)
wijsheid: meer geaggregeerde vorm van kennis (intern)
Utiliteit= nut neemt toe, doordat ze verwerkt wordt
Data algoritme informatie cognitive processing kennis, wijsheid
, Y= f(x) (x= data) (f=algoritme) (y= uitkomst)
Computeralgoritme: creëert waarde door het omzetten van data naar informatie
Bubble sort algoritme: om gehele getallen te sorteren, steeds per 2 getallen vergelijken tot dat die 1
keer volledig over de rij is geweest en niets heeft moeten aanpassen
Business intelligence: rapporteren
- Tabellen geven weinig overzicht
- Belangrijk voor bv. de evolutie van de loonkost in een HRM systeem
4. Computationele procedures
= een geordende reeks ondubbelzinnige, computer-uitvoerbare instructies die een eindig proces
beschrijven
- Proces: herhaalbare reeks afh. activiteiten (activiteit is afh. van (enkele) stappen daarvoor) met
een welbepaald eindres., startende vanaf een welbepaald beginpunt
- Geordend: de instructies moeten een zorgvuldig opgebouwde structuur hebben als het gaat om
de volgorde waarin instructies moeten uitgevoerd worden
o In willekeurig volgorde heb je niet altijd de beoogde uitkomst afh. activiteiten
o Niet alle instructie moeten in een vooraf vastgelegde volgorde uitgevoerd worden om
hetzelfde resultaat te bekomen
Res. wordt mogelijks bekomen door samenvoegen deelresultaten, die afzonderlijk
kunnen gerealiseerd worden, los van elkaar, in een niet geordende manier parallel
computing bv. bij recept, TSP, niet torens van Hanoi
Parallelle algoritmen omvatten meerdere reeksen instructies, die expliciet bepaald
zijn in het algoritme, kunnen afzonderlijk uitgevoerd worden. Ze zijn ontworpen
om door verschillende processoren in een multiprocessormachine uitgevoerd
worden
- Ondubbelzinnig: computer kan niet interpreteren (of programmeur mag het niet verkeerd
begrijpen), daarom moet een computeralgoritme exact specifiëren wat er moet gebeuren.
Dubbelzinnigheid hangt af vd notatie vh algoritme (best (pseudo-)programmeertaal , maar niet
altijd handig want zeer veel/ ingewikkelder)
o Intussen zijn er algoritmes die een computer in staat stellen te interpreteren (natuurlijke
taal) bv. ChatGPT, DALL.E 2, DeepSeek
- Computer-uitvoerbaar: ze moeten doenbaar zijn vb. 1 niet (CPU), 2 wel, 3 niet (niet eindig),
instructies op verschillende niveaus
o Laagste: beperkte set basisinstructies= bitsequenties die gevoed worden aan processor.
Essentiële uitdaging bij het ontwikkelen v. computeralgoritmes complexe problemen
oplossen enkel gebruikmakend v. beperkte set computer-uitvoerbare instructies
o Bestaande algoritmes kunnen als hoger-niveau/ hogere-orde instructies herbruikt worden
bv. BubbleSort (percentiel-waarde berekenen), ChatGPT(obv beschrijving door gebruiker)
o Een computer-uitvoerbare instructie is per definitie uitvoerbaar in eindige tijd
- Eindig soms wel oneindig doorlopende processen, nl. processen die geen a-priori bepaald
eindpunt hebben die continu doorlopen bv. thermostaat wel eindige reeks instructies, het
zijn zichzelf herhalende algoritmen, wnr het eindpunt is bereikt, initieert het zichzelf terug met
vaak stopcriteria of -condities. Eerder semantisch, technisch-theoretische dicussie
Programma: een uitvoerbare representatie of implementatie ve algoritme
, Programmeren: computeralgoritme implementeren als een computerprogramma
5. Eerste programma’s in Python
Vb 2.1 en 2.2 geven instructies voor het kwadraat van 0 tem 10
Vb 2.3: 3 aanhalingstekens voor informatieve gedeelte, # voor nog individuele info, instructies voor
schrikkeljaar
6. Programmeren
Algoritme≠ representatie (= geeft algoritme weer): in se niet tastbaar, abstracte vormloze concepten
Door de abstracte aard van algoritmes moeten we zelf een manier vinden om deze weer te geven,
noteren en implementeren
Representatie vereist exact gedefinieerde primitieve= bouwstenen waarmee representaties v.
algoritmen kunnen worden samengesteld
- Exact of precies gedefinieerd: ondubbelzinnig, vermijden communicatieproblemen
- Primitief bestaat uit 2 delen: symbolische representatie en semantiek
- Syntax (grammatica): verz. regels voor de manier waarop deze primitieven (woordenschat)
kunnen gecombineerd worden tot correcte uitdrukkingen ofte instructies
Verzameling primitieven en syntax vormen samen een programmeertaal (ind de primitieven
computer-uitvoerbare instructies betreffen)
Def. Programmeren: het implementeren (en ontwikkelen) ve algoritme in termen ve reeks
computeruitvoerbare instructies met behulp ve programmeertaal. Res= computerprogramma.
- Implementeren: uitschrijven in een programmeeromgeving die toelaat het resulterende
programma uit te voeren op een computer
Algoritme vangt intelligentie en laat toe om deze over te dragen om tot een opl te komen voor een
‘complex’ probleem, moeten enkel de instructies uitvoeren waaruit het algoritme bestaat
Laat toe om machines te maken die allerlei nuttige taken (basisinstructies/-activiteiten)
uitvoeren
De mate van intelligentie van machines wordt beperkt door
- De intelligentie die mbv computeralgoritmes gevangen en overgedragen worden, gevolg vd
beperkte set v computer-uitvoerbare instructies
- Door de intelligentie vd mens om algoritmes te ontwikkelen algoritmes die zelf algoritmes
ontwikkelen = machine learning, AI
7. Programmeertalen
Programma’s voor computers: reeksen instructies, gecodeerd of neergeschreven dmv alfanumerieke
tekens die in feite bit-sequenties voorstellen (machinetaal). Enige taal die computer verstaat, vorm
waarin invoer moet gebeuren om machine aan te sturen alsook data in te geven, acties te laten
ondernemen, te kunnen gebruiken voor specifieke doeleinden om gewenste output te generen.
Zowel instructies als data gecodeerd als bitsequenties
- 1 e generatie (1GL): machinetaal overeenstemmend met/ ontworpen voor 1 welbepaalde
computerarchitectuur, elektronische signalen die verstuurd worden, moeilijk, onhandig , traag
programmeren, laag niveau v. complexiteit te bereiken