H1: Grondslagen v/d beleidsinformatica
Belangrijkste technologieën uit...
Het (verre) verleden: Voor de toekomst: incorporeren pc’s & chips
- Licht, boekdrukkunst, atoombom, DVD... - AI, zelfrijdende auto op waterstof...
Informatiesystemen: instrumenten die bedrijven gebruiken om info te gaan gebruiken
- Data capteren, opslaan, bewerken, transformeren, extraheren, rapporteren…
- Hardware software, database- & netwerktechnologie, gebruikers
Waarom beleidsinformatica?: het gaat niet over hoe de cijfers zijn weergegeven, maar hoe zijn zijn opgeslagen & verwerkt w.
- Impact IT op macro-economisch niveau: wereld verandert
Digitalisatie: omschakeling naar services industry, info opslaan als een sequentie v. bits
o Data = sequentie v. bits (0 & 1) die bepaalde geg. gaan noteren
o Informatie = data die een nut heeft voor een bepaalde gebruiker
Innovatie: creative destruction = oude manieren v. produceren verdwijnen door nieuwe technologie
Globalisatie: outsourcing = bepaalde processen gebeuren op andere locaties, offshoring
- Impact IT op micro-economisch niveau: info technologie biedt opportuniteiten aan bedrijven
ü Toename in productiviteit
ü Competitief voordeel
ü Positieve impact op de bedrijfsvoering
û Voor werknemers: veel rollen w. geautomatiseerd (vb. robbot-technologie)
Maar… nood aan goed beleid wat betreft gebruik v. IT Grondslagen basiskennis IT
Bedrijven werken samen met O&O rond Data, Ai & emerging voor…:
- Financiële instellingen: fraude detectie, krediet risico management…
- HR services bedrijven: interne mobiliteit, retentie, talent management…
- Industriële bedrijven: predictief & preventief onderhoud…
- Telecom bedrijven: klantrelatiebeheer…
Waarom programmeren?:
- Geeft inzicht in de werking v. programmatuur & begrijpen v. uitdagingen bij ontwikkeling v. software
- = polyvalent & krachtig instrument om problemen op te lossen via berekeningen, modellering
& analyse v. gegevens 9 vb. statistiek, onderzoek, marketing, accounting…
Algoritmische oplossingen stapsgewijs ontwikkelen, implementeren & testen
Programmeren = training in logisch, systematisch & abstract denken
Python = eenvoudige programmeertaal, gratis & heeft een groot toepassingsgebied
- W. veel gebruikt in onderwijs, wetenschappelijk onderzoek & bedrijfswereld
- Ondersteunt object-georiënteerd programmeren
- Gebruikt in een programmeeromgeving bv. codeboard
Excel:
ü Gebruiksvriendelijk, algemeen beschikbaar, û Veel manuele repetitieve handelingen nodig
breed inzetbaar û Moeilijk te automatiseren
ü Zeer intensief gebruikt & goed gekend in û Moeilijk om resultaten te controleren &
het bedrijfsleven fouten op te sporen
ü “What you see is what you get”: resultaat û Foutgevoelig
rechtstreeks zichtbaar û Geavanceerde algoritmen niet rechtstreeks
ü “Gemakkelijk” zelf aan te leren beschikbaar (bv. simulatie, optimalisatie…)
,H2: Algoritmen & programmeren
Algoritme = een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd
doel leidt
- Geeft stappen (instructies) vanaf een welbepaalde beginsituatie (‘probleem’) & wil
vooropgestelde uitkomst bereiken (doel), betreft niet enkel verwerking v. info (computers)
Specificering afhankelijk v. beoogde uitvoerder v/h algoritme
Eindig in Q & Tijd (laatste impliceert het 1ste)
Bij set v. instructies: specifiek & Q beperkt
Oplosbaar? Überhaupt te bedenken? Steeds werkend? Voorwaarden? Kwaliteit?
Traveling Salesman Problem, TSP = algoritmisch probleem om de kortste route te vinden tussen een
reeks punten & locaties die bezocht moeten w.
- Bv. Bij bestellen v. pakketjes
Een instantiatie (= het concreet maken v/e filosofisch idee) v/e probleem betreft een specifieke
begintoestand & doel: Bv. Bij het TSP het specifiëren v...
- Het wegennetwerk, locatie v. klanten & vraag, beschikbare vloot, condities...
Een correct algoritme: bereikt voor iedere instantiatie het beoogde doel probleem w. opgelost
Computerprogramma implementeert een algoritme: moet correct werken
Een incorrect algoritme: bereikt niet voor elke instantiatie het beoogde doel sommige wel &
andere zonder uitkomst algoritme blijft eindeloos doorlopen
Slide 14: definities fout/onvolledigheid?
I. Geen begintoestand vermeld & verzameling v. instructies staat fout beschreven, een
verzameling impliceert een collectie & bij een algoritme is er een precieze volgorde
II. Een set, ook geen volgorde & ‘snel/handig’ is onbelangrijk
III. Een logaritme is niet per se een computerprogramma & probleem is te ruim
IV. = definitie v/e computerprogramma
Computeralgoritme = een duidelijk gedefinieerde computationele procedure die een waarde/
verzameling v. waarden (= data) als invoer neemt & een waarde/verzameling v.
waarden (= data) als uitvoer produceert.
- Begintoestand: waarde/verzameling v. waarden als invoer (enkel bits bij pc)
- Doel: waarde/verzameling v. waarde als uitvoer (pc kan enkel bits als produceren)
- Instructies: computationele procedure = een geordende reeks ondubbelzinnige, computer-
uitvoerbare stappen die een eindig proces beschrijven
Bubble sort algoritme: slide 17
- Een initieel niet gesorteerde rij waar we telkens overheen gaan. We kijken naar het getal & het
voorgaande getal. We nemen de volgende 2 & wisselen deze totdat de volgorde v/d rij klopt.
Debiteren zichtrekening: algoritme dat toelaat geld af te halen v/e bankautomaat (perspectief v. systeem)
- Begintoestand: Omvat definitie v. gegevens die te bewerken zijn
- Omvat instructies om gegeven te bewerken
- Doel: na uitvoering w. beoogde eindtoestand bereikt
Proces = herhaalbare reeks afhankelijke activiteiten met een welbepaald eindresultaat & startende
vanaf een welbepaald beginpunt. (bv. productieproces, interne dienstverleningsprocessen)
De activiteit waarbij een algoritme w. uitgevoerd, dat op zijn beurt geïmplementeerd is als
een programma (= een uitvoerbare representatie/implementatie v/e algoritme)
, Geordend: stappen moeten een zorgvuldig opgebouwde structuur hebben als het gaat om de
volgorde bij uitvoering ervan voor het juiste resultaat
- Stappen zijn afhankelijke activiteiten, geordende set (tenzij anders gespecificeerd)
Hetzelfde resultaat kan bekomen w. door samenvoegen v. deelresultaten
- Parallel computing/parallelle (multi-threaded) algoritmen:
Omvatten meerdere reeksen stappen, die expliciet bepaald zijn in het algoritme, &
die afzonderlijk kunnen uitgevoerd w.
Ontworpen om precies door verschillende processoren in een multi-
processormachine uitgevoerd te w.
Niet alle algoritmen kunnen (her-)ontworpen w. in een parallelle structuur bv.
Oorzaak-gevolg ketens, verkeerssimulatie...
Ondubbelzinnig: er moet exact gezegd w. wat te doen in termen v/d basisstappen/instructies die de
machine kan uitvoeren (een pc kan niet interpreteren)
- Bv. Recept chocoladecake: “Een snufje zout” -> ondubbelzinnig?
- Algoritmes in ontwikkeling die een pc in staat stellen te interpreteren bv. ChatGPT, DALL.E 2...
Computer-uitvoerbaar: de uitvoerbaarheid v/d stap door een computer, niet de eindigheid v/d stap
- Instructies = bitsequenties die gevoerd w. aan processor, mogelijks nodig om stap uit te voeren
- Omvat de term ondubbelzinnig, algoritmes nemen meestal een basisinvoer
Verschillende niveaus:
Laagste niveau: geen instructies die dubbelzinnig zijn, beperkte set basisinstructies
o Essentiële uitdaging bij het ontwikkelen v. computer algoritmes: enkel
gebruik te maken v. beperkte set computer-uitvoerbare instructies
Bestaande algoritmes kunnen als hoger-niveau/hogere-orde instructies hergebruikt w.
o Bv. bubblesort te gebruiken in algoritme om percentiel-waarden te berekenen,
ChatGPT om code te genereren op basis van beschrijving door gebruiker
Eindig: essentie = dat je een oplossing/resultaat wil bekomen
- Als iets niet eindig is garandeert het niet gelijk tot een resultaat, dan is het geen goed algoritme
- Er zijn zaken die continue w. ondersteunt & in de zin niet eindig zijn: bv. thermostaat, bewaking…
Algoritme zo ontwikkelt dat het die taak blijft uitvoeren = zichzelf herhalend algoritme,
bij het aangekomen eindpunt initieert het zichzelf terug
Hebben vaak impliciete stopcriteria of -condities: bv. knop om uit te schakelen
Blijven per definitie wel eindig (bv. kies willekeurig N = oneindig)
1ste programma’s in Python:
In algoritme tastbaar representatie een idee: dit concreet maken door een taal/notatiesysteem
- Bv. verhaal vs. Boek = de materialisatie v. dat verhaal waarvan de representatie kan
veranderen, maar het verhaal zelf niet verandert
- We creëren een abstract concept dat op zich redelijk vormloos is
Vereist exact gedefinieerde primitieven bouwstenen, waarmee representaties v. algoritmen
kunnen w. samengesteld
Programmeren = het implementeren (& ontwikkelen) v/e algoritme in termen v/e reeks
computeruitvoerbare instructies met behulp v/e programmeertaal
- Resultaat = computerprogramma
- Implementeren: uitschrijven in een programmeeromgeving die toelaat het resulterende
programma uit te voeren op een computer
- Algoritme vangt intelligentie & laat toe om deze over te dragen laat toe om machines te
maken die allerlei nuttige taken uitvoeren, mate v. intelligentie w.beperkt door…