Basis programmeren
Hoofdstuk 1: inleiding
Informatietechnologie bron achter ontwikkeling nieuwe technologie
Gartner Hypecycle for Emerging Technologies
o Amerikaans onderzoeksbedrijf die trends in bedrijven onderzoekt
Biedt consultancy aan bedrijven
o Geeft verwachtingen weer
Wat ze zouden kunnen
Hypes ontstaan (AI)
Stijgende curve tot ontgoocheling
Waarom beleidsinformatica?
o Business efficiënter, beslissingen makkelijker, klanten bereiken door kennis
informatietechnologie
o Innoveren technologie gebruiken voor Retail
Deloitte
o Consultancy profileert als technologiebedrijf
o Digital Era
Digital informatie opgeslagen als sequentie van 0 en 1
Analog informatie door analogie overgedragen (bv groeven omhoog omlaag geluid
(lp))
Data binnen bedrijven informatiesystemen die data capteren data opgeslagen,
geanalyseerd…
Informatiesystemen
Data capteren, opslaan, bewerken, transformeren, extraheren, rapporteren…
Hardware, software, database- en netwerktechnologie, gebruikers
Impact IT op macro-economisch niveau (wereld verandert door IT)
o Digitalisatie
omschakeling naar service industry dienst aanbieden volledig gefaciliteerd door IT (vb
loonberekening)
o innovatie
creative destruction ontwikkeling nieuwe diensten aanbieden, constante vernieuwing,
verdwijnen oude diensten
, wordt getriggerd door IT
Western Union geld transfereren naar andere landen (oorspronkelijk telegrambedrijf)
o globalisatie
outsourcing
uitbesteden aan gespecialiseerd bedrijf
via internet
offshoring diensten verplaatsen
verliezen jobs binnenland productie gerobotiseerd
netto winst maar naar wie? Mbv regelgeving
impact IT op micro-economisch niveau
o IT biedt bijzondere opportuniteiten aan bedrijven
kosten besparen toename productiviteit
competitief voordeel
positieve impact op bedrijfsvoering
o nood aan mensen met goede kennis bedrijfs en IT
Waarom programmeren?
o Inzicht krijgen in werking programmatuur en weten welke uitdagingen bij ontwikkeling apps
o Programmeren als instrument om problemen op te lossen via berekeningen en analyse van
gegevens
Statistiek, operationeel onderzoek, econometrie, master thesis, etc.
Problemen op een gestructureerde manier leren analyseren en opdelen in
deelproblemen (verdeel en heers!)
Problemen helder en ondubbelzinnig leren omschrijven
Algoritmische oplossingen stapsgewijs leren ontwikkelen, implementeren en testen
o Programmeren training in logisch, systematisch en abstract denken
Python
o ‘eenvoudig’
o Open source = gratis software
o Groot toepassingsgebied
Onderwijs & wetenschappelijk onderzoek
Veel gebruikt bij data science- analytics – AI- machine learning
Ondersteunt object-georiënteerd programmeren (OOP)
bedrijfswereld
o Gebruikt door grote tech bedrijven
Hoofdstuk 2: algoritmen
algoritmen
= eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd doel leidt
Bepaalt hoe welbepaalde taak dient uitgevoerd te worden om vanaf welbepaalde beginsituatie een
vooropgestelde uitkomst te bereiken
o Adhv instructies Welbepaalde (precies, geen vaagheid) elementaire handelingen
Eindig (zowel in aantal als in tijd) anders nooit tot doel
Fundamenteel concept in de informatica
Foute definities
o Computationele procedure fout, is wiskundige def
o Geen verzameling volgorde van belang
Toepassingen
2
, o Torens van Hanoi
o debiteren rekening
algoritme dat toelaat geld af te halen aan bankautomaat (vanuit perspectief van systeem)
! algoritme genoteerd in pseudocode gericht op implementeren algoritme
o sorteren van een rij gehele getallen dmv sorteeralgoritme (vb Bubble sort example)
Computeralgoritme
o = een geordende reeks ondubbelzinnige, computer-uitvoerbare stappen die een eindig proces
beschrijven
o Begintoestand, beoogd doel en instructies niet vermeld? Zitten vervat in betekenis van eindig
proces
o Proces
= herhaalbare reeks afhankelijke activiteiten met een welbepaald eindresultaat en
startende vanaf een welbepaald beginpunt
o VS gewoon algoritme: geordende, ondubbelzinnige, computer uitvoerbare
geordend
stappen zorgvuldig opgebouwde structuur
o afhankelijke activiteiten: volgorde niet van belang om resultaat te
bekomen
o geen losse verzameling instructies maar geordende set
o tenzij anders gespecificeerd
betekent niet dat alle stappen in vooraf vastgelegde volgorde uitgevoerd moeten
worden om tot zelfde resultaat te komen
o resultaat wordt mogelijks bekomen door samenvoegen deelresultaten
die afzonderlijk kunnen gerealiseerd worden in niet geordende manier
parallel computing! Multi-core processors
parallelle algoritmen
o omvatten meerdere reeksen stappen, expliciet bepaald in algoritme en
afzonderlijk kunnen uitgevoerd worden
o om door verschillende processoren in multi-processormachine
uitgevoerd te worden
o niet alle algoritmen kunnen herontworpen worden in parallelle structuur
bv oorzaak-gevolg…
o parallel veel bewerkingen uitvoeren op gegevens
o ondubbelzinnig?
Vereist want kan niet interpreteren duidelijke taal (basisstappen) gebruiken
Computer ondertussen wel al creatief AI
Expliciete toevoeging in definitie van computeralgoritme tov algemene definitie
Essentiële uitdaging bij het ontwikkelen van computer algoritmes
Enkel gebruik te maken van beperkte set computer-uitvoerbare instructies
o computer-uitvoerbaar
betreft uitvoerbaarheid van de stap door computer maar niet eindigheid van stap
Bewerking met binaire getallen
o Wat kan een computer niet?
3
, Willekeurig getal tussen 0 en 1 geeft altijd zelfde sequentie
Muziek componeren kan
Lijst van natuurlijke getallen kan
o Orgate…? basis elektronische schakelingen
o Eindigheid
Aantal instructies en uitvoeringstijd eindig
Niet-eindige processen worden ondersteund door eindig computeralgoritme
Algoritme in oneindige lus herhalen
Bv thermostaat
Eindpunt ingebakken in algoritme uitvoering algoritme op bepaald moment door
algoritme zelf stopgezet
Wanneer beoogde resultaat bereikt wordt
Wanneer een ander, vooraf bepaald punt bij de uitvoering bereikt wordt
o = stopcriterium vb staartdelingsalgoritme
Indien geen eindpunt ingebakken en geen stop-criterium geen
algoritme
o Alle computerprogramma’s bevatten typische stopcriteria
Stopcriterium staartdeling: resultaat met max 6 cijfers na komma
Stopcriterium monitoringssysteem vitale levensfuncties: druk op
stop-knop door gebruiker
Algoritme vs proces vs programma
o Een proces is de activiteit waarbij een algoritme wordt uitgevoerd, dat op zijn beurt
geïmplementeerd is als een programma
o Een proces is de activiteit waarbij een programma wordt uitgevoerd dat een bepaald algoritme
implementeert
o Een programma is een uitvoerbare representatie of implementatie van een algoritme
Programmeren
?Algoritme niet gelijk aan representatie
o Manier om abstracte aard algoritmen te noteren programmeren
Representatie van algoritmen vereist exact gedefinieerde primitieven
o Bouwstenen
o Heel specifieke instructie ondubbelzinninge instructies voldoende gedetailleerd, vermijden
communicatieproblemen: natuurlijke talen, doel van definiëren in wetenschap
Delen primitief
o Symbolische representaties
o Sematiek: betekenis
Syntax
o =verzameling regels voor de manier waarop deze primitieven kunnen gecombineerd worden
o Grammatica
Programmeertaal = verzameling primitieven en syntax (indien primitieven computer-uitvoerbare
instructies bevatten)
Definitie programmeren
o = implementeren (en ontwikkelen(bredere interpretatie)) van een algoritme in termen van een
reeks computeruitvoerbare instructies met behulp van een programmeertaal
o Resultaat computerprogramma
o Implementeren: uitschrijven in een programmeeromgeving die toelaat het resulterende
programma uit te voeren op een computer
Algoritme vangt intelligentie op en laat toe over te dragen oplossing komen voor ‘complex’ probleem
4