2.1. Algoritmen
Algoritme: eindige reeks instructies die vanuit een gegeven begintoestand naar
een beoogd doel leidt
Welbepaald probleem algoritme vooropgestelde uitkomst
Instructies:
- Welbepaald = specifiek
- Elementair = grondbestanddeel, 1 enkele instructie
- Ondubbelzinnig*
Eindige reeks: oplossing centraal eindigheid noodzakelijk
Aantal + tijd (1 instructie kan oneindig lang duren)
Oplosbaar
- Algoritme te bedenken
- Werkt het algoritme altijd
- Voorwaarden voor eindigheid
- Kwaliteit oplossing
Instantiatie: concreet maken, specifiëren begintoestand en doel
Correct algoritme: bereikt voor iedere instantiatie beoogde doel
Incorrect algoritme:
- Voor sommige doel bereikt
- Foute uitkomst / geen uitkomst
2.2. Computeralgoritmen
= een duidelijk gedefinieerde computationele procedure die een waarde of
verzameling van waarden als invoer neemt en een waarde of verzameling van
waarden als uitvoer produceert
Invoer / uitvoer = enkel bits
Computationele procedure: geordende reeks ondubbelzinnige, computer-
uitvoerbare instructies die een eindig proces beschrijven
Begintoestand = data: alles wat we kunnen capteren met bits
Doel = informatie: data met daarbovenop utiliteit voor eindgebruiker =
verwerkte data
Er is waarde gecreëerd
,Proces: herhaalbare reeks afhankelijke activiteiten met welbepaald
eindresultaat en startende vanaf een welbepaald beginpunt
Afhankelijk: geordende structuur + volgorde zijn belangrijk
NIET noodzakelijk: kan worden bekomen door samenvoegen deelresultaten
Kunnen afzonderlijk van elkaar gerealiseerd w
= parallel computing: omvatten meerdere reeksen instructies die expliciet
bepaald zijn in het algoritme, kunnen afzonderlijk uitgevoerd w
*ondubbelzinnig: computer kan niet interpreteren exact
WEL: interpreteren (chatgpt), maar essentie is ook exact
Computer uitvoerbaar: op laagste niveau vertaald naar precisie
Instructie = reeks basisinstructies (bits)
Algoritme = instructie, instructie = algoritme (behalve basisinstructies)
= ondubbelzinnig kan uit definitie
Verschillende niveaus:
- Laagste niveau: geen dubbelzinnige instructies
bitsequenties
Beperkte set basisinstructies
- Hoger-niveau: bestaande algoritmes kunnen als hoger-niveau
instructies herbruikt worden
Minder beperkingen, dubbelzinnigheid, niet beperkt tot
basisinstructies
Eindige reeks?
Continu doorlopende processen / uitvoeren zonder a-priori eindpunt
= zichzelf herhalende algoritmen
Vaak impliciete stropcriteria / condities
Computerproces:
- activiteit waarbij algoritme w uitgevoerd, geïmplementeerd is als
een programma
- Activiteit waarbij programma w uitgevoerd dat algoritme
implementeert
= wat er gebeurt
Computerprogramma: uitvoerbare representatie / implementatie ve algoritme
, Algoritme ≠ representatie
Verhaal ≠ boek
Niet tastbaar
Representatie kan veranderen, algoritme blijft hetzelfde
Abstractie maken specifieke vorm algoritme
Abstract manier vinden om weer te geven, noteren, implementeren
Vereist: exact gedefinieerde primitieven
Primitieven: bouwstenen, representaties v algoritmen kunnen w samengesteld
Exact: ondubbelzinnig, vermijdt communicatieprobleem
- Symbolische representatie
- Semantiek: betekenis taalkundige constructies
Syntax: verzameling regels voor manier waarop primitieven kunnen
gecombineerd w tot correcte uitdrukking ofte instructies
= grammatica
Programmeertaal: verzameling primitieven en syntax
Indien primitieven computer-uitvoerbare instructies betreffen
Vb: print(“Hallo”)
- Syntax: print() en “”
- Semantiek: toon tekst tussen haakjes op het scherm in een
dialoogvenster
Programmeren:
- Implementeren en ontwikkelen van een algoritme in termen
ve reeks computeruitvoerbare instructies m.b.v. een
programmeertaal
- Resultaat: computerprogramma
- Implementeren: uitschrijven in een programmeeromgeving die
toelaat resulterende programma uit te voeren
Algoritme vangt intelligentie, draagt deze over:
Enkel eenvoudige instructies waaruit algoritme bestaat moeten w
uitgevoerd om tot oplossing van complex probleem te komen
Machine nuttige taken laten doen
Basisinstructies / activiteiten uitvoeren
Natuurlijke scheiding hardware en software