In dit document staat een volledige samenvatting van de lessen basis programmeren EN ICTS. In het eerste gedeelte worden de hoofdstukken H2-H9,H14,H15,H15 van basis programmeren samengevat, met bij elk hoofdstuk voorbeeldoefeningen met bijhorende pagina van het boek "Softwareontwerp en programmeren...
Grondslagen van de beleidsinformatica
1. Basis programmeren
H2: Algoritmen en Programmeren
2.1 Algoritmen
DEF: Een Algoritme is een eindige reeks instructies die vanuit een gegeven begintoestand
naar een beoogd doel leidt.
Eindige reeks Instructies (welbepaalde elementaire handelingen)
(eindig instructies en tijd, maar bv thermostaat= zichzelf herhalend algoritme)
Voorbeelden
-Torens van Hanoi
Begintoestand: schijven op paal A
Beoogd doel: schijven naar C
E.R. instructies: ?
2.2 Computeralgoritmen
DEF: Een computeralgoritme is 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
Begintoestand: waarde of
verzameling van waarden als invoer
Doel: waarde of verzameling van waarden als uitvoer
Instructies: computationele procedure
• Waarde of verzameling van waarde: DATA =>INFORMATIE (input->output)
DATA= alles wat we kunnen opslagen/capteren als bits (0/1)
INFORMATIE= data met utiliteit, nut voor eindgebruik, verwerkte data
DATA => INFORMATIE => KENNIS => WIJSHEID
, • Een computationele procedure = een geordende reeks ondubbelzinnige, computer-
uitvoerbare instructies die een eindig proces beschrijven
Volgende pas uitvoeren wanneer vorige afgerond is
• Een proces = herhaalbare reeks afhankelijke activiteiten met een welbepaald
eindresultaat en startende vanaf een welbepaald beginpunt
• Geordende reeks= duidelijke sequentie, structuur, volgorde ( niet alle instructies
zelfde volgorde voor zelfde resultaat, bv. Recept )
Parallel computing: meerdere sets van berekeningen die naast elkaar een
oplossing zoeken (bv TSP, eerst klant 1 / eerst klant 2 / …)
• Ondubbelzinnig = computer kan niet interpreteren, uitvoerbare instructies
In ontwikkeling (ChatGPT, …)
• Computer-uitvoerbaar = doenbaar voor computer, instructies op verschillende
niveaus ( Laagste N= Bits 0/1 )
-> computer-uitvoerbaar omvat ondubbelzinnig ( dus mag uit definitie
geschrapt worden)
Parrallel :Je kan een basisinstructie door een algoritme dat op zijn
beurt weer in een ander algoritme terecht komt -> Hiërarchie
DEF: Een programma is een uitvoerbare representatie of implementatie van een algoritme
2.3 Eerste programma’s in Python
Programmeeromgeving: Codeboard – Jupyter
Instructies: for = opening van instructie
print = instructie printen op dialoogvenster
2.4 Programmeren
o Algoritme ≠ Representatie
Verhaal versus boek kan veranderen
Niet tastbaar, veranderd niet
o Representatie van algoritmen vereist exact gedefinieerde primitieven
Primitieven= bouwstenen, met specifieke betekenis
Bestaat uit 2 delen: symbolische representatie
Semantiek: betekenis
Syntax: verzameling regels voor de manier waarop deze primitieven kunnen
gecombineerd worden tot correcte uitdrukkingen ofte instructies
Syntax en primitieven vormen samen een programmeertaal
DEF: Het implementeren van een algoritme in termen van een reeks
computeruitvoerbare instructies met behulp van een programmeertaal
,2.5 Programmeertalen
-> Machinetaal ( 01100010010011... )
Verschillende generaties
1GL: machinetaal
• ontworpen voor één welbepaalde computerarchitectuur
• Programmeur moet in machinetaal denken zoals computer uitvoert
• Vanaf 1940: Hexadecimale code, Mnemonische code (taal)
* Moeilijkn onhandig, traag, laag niveau van complexiteit
2GL: Assemblertalen
• Programma’s kunnen geschreven worden met woorden begrijpbaar voor
mensen, maar niet machines -> vertaling
• Mnemonische code: dient omgezet te worden in machine-instructies
• Bemerk: computerafhankelijke taal
-> nood aan instructies van hoger niveau (hoger N primitieven)
• Primitieven van hoger N worden geautomatiseerd vertaald naar instructies
van lager niveau
3GL: General purpose programming languages (GPL)
• Procedurele en objectgeorienteerde programmeertalen
• Voordeel: machine-onafhankelijke primitieven
• Programmeer- of software ontwikkelomgeving
-Zelf een programma, dat het schrijven van een programma ondersteunt
-detecteert programmeerfouten
4GL: Domain specific programming languages (DSL)
• Talen met nog hoger abstractieniveau
• Voor een specifiek toepassingsdomein ontwikkeld
bv. HTML, SQL, Matlab
5GL: Probleemoplossende talen
Hierbij specifieert de programmeur geen algoritme maar het probleem zelf
( declaratief programmeren vs imperatief )
vooral gebruikt bij AI
Algemeen: trend naar natuurlijke interactie tussen mens en machine
-programmeertaal is de enige directe manier waarop de mens met machines
interageert
Visie:
-gebruiker laten interageren met machine zoals met mens
, - Specifiëren wat machine moet doen eerder dan hoe de machine het moet
doen.
2.6 Efficiëntie van algoritmen
Efficiëntie = de snelheid waarmee een algoritme tot een oplossing komt
Snelheid hangt af van: -Kloksnelheid (hoe snel is de processor)
-Grootte van de invoer
-Aantal instructies
De tijd-complexiteit van een algoritme geeft aan hoe de uitvoeringstijd schaalt in
functie van de grootte van de invoer
-grootte invoer = n
-complexiteit = O
De ruimte-complexiteit van een algoritme geeft aan hoe het geheugengebruik
schaalt in functie van de grootte van de invoer
H3: Variabelen
1. Inleiding
Variabele – geheugenplaats(en) waar tijdelijke informatie wordt opgeslagen
Variabele in Python heeft 3 attributen
Voordelen van het kopen van samenvattingen bij Stuvia op een rij:
√ Verzekerd van kwaliteit door reviews
Stuvia-klanten hebben meer dan 700.000 samenvattingen beoordeeld. Zo weet je zeker dat je de beste documenten koopt!
Snel en makkelijk kopen
Je betaalt supersnel en eenmalig met iDeal, Bancontact of creditcard voor de samenvatting. Zonder lidmaatschap.
Focus op de essentie
Samenvattingen worden geschreven voor en door anderen. Daarom zijn de samenvattingen altijd betrouwbaar en actueel. Zo kom je snel tot de kern!
Veelgestelde vragen
Wat krijg ik als ik dit document koop?
Je krijgt een PDF, die direct beschikbaar is na je aankoop. Het gekochte document is altijd, overal en oneindig toegankelijk via je profiel.
Tevredenheidsgarantie: hoe werkt dat?
Onze tevredenheidsgarantie zorgt ervoor dat je altijd een studiedocument vindt dat goed bij je past. Je vult een formulier in en onze klantenservice regelt de rest.
Van wie koop ik deze samenvatting?
Stuvia is een marktplaats, je koop dit document dus niet van ons, maar van verkoper kamilvanloy. Stuvia faciliteert de betaling aan de verkoper.
Zit ik meteen vast aan een abonnement?
Nee, je koopt alleen deze samenvatting voor €9,66. Je zit daarna nergens aan vast.