Hoofdstuk 0: Inleiding Informatica
Hoofdstuk 0: Inleiding
0.1 Rol van Algoritmen
Algoritme = algemene oplossing voor een bepaald type probleem. Deze wordt gegeven in een reeks stappen die dan gaat bepalen hoe een taak zal worden uitgevoerd. Voordat een computer een taak kan uitvoeren, moet hij eerst het algoritme voor het uitvoeren ervan leren.
Programma = een algoritme voorgesteld in een vorm waardoor het door een computer kan uitgevoerd worden.
Programmeren = Het maken van een programma, het structureren ervan zodat de machine ermee kan werken en het programma aan de machine leren.
Software = verzamelnaam voor programma’s en de algoritmen die ze voorstellen
Hardware = geheel van computers en bijhorende apparatuur
Algoritmisch denken: hoe de oplossing van een probleem (basis vd informatica)
· ontdekken
· voorstellen
· communiceren als een
· geordende
· eenduidige reeks
· van uitvoerbare instructies
De intelligentie die nodig is voor het oplossen van een vraagstuk is al opgeslagen in het algoritme. Dit betekent dat de mate van intelligentie van machines bepaald wordt door de intelligentie opgeslagen in het algoritme.
Onvolledigheidstheorema van Gödel: in wezen zijn er allemaal theorieën waarvan de correctheid niet bewezen kan worden, maar eveneens kan niet bewezen worden dat ze incorrect zijn. (zie wiskunde)
Abstraheren = geen verlies aan precisie
De externe eigenschappen van een systeem tonen en de interne werking en structuur van het systeem verbergen
l Principe van de black box doet alleen wat ons intresseert, niet wat er in zit Scheiden van essentie en detail
l Wat essentie is (het externe) en wat detail is (het interne) is relatief t.o.v. een doel
l Doel = oplossen van een (deel)probleem
Abstractie door algoritme
̵ Als er geen algoritme voor bestaat, kan het probleem niet opgelost worden. Computers begrijpen geen programma’s. Ze voeren ze enkel uit.
̵ Algoritme maakt abstractie van “waarom” en “wat” ve oplossing – enkel hoe is belangrijk
̵ Intelligentie om oplossing te vinden is opgeslagen in algoritme
̵ Uitgevoerd zonder te weten waarom het probleem ermee opgelost is
Voorbeeld van een algoritme van Euclides van Alexandrië : (Het vinden van de grootste ggd)
Informatica (Engels: Computer Science) is een ondersteunende wetenschap voor de Beleidsinformatica (Engels: Information Systems). Dit is de toegepaste wetenschap die bestudeert hoe informatietechnologie ingezet kan worden voor het bouwen van systemen die de werking en het beheer van organisaties ondersteunen.
Specifiek voor informatica is het laten uitvoeren van algoritmen door computers. Informatica wordt algemeen de studie van algoritmen genoemd, en komt in heel veel wetenschappelijke gebieden voor:
0.2 De oorsprong van rekenmachines
0.2.1 Telraam
De vraag is of we dit al als een eerste computer kunnen beschouwen. De posities van de kralen stellen waarden voor. Het apparaat heeft wel ervoor gezorgd dat informatie kon worden opgeslagen/ weergegeven, maar dit dan ook alleen indien er heel voorzichtig mee werd omgegaan. Het is dus geen volwaardig gegevensopslagsysteem, maar eerder een combinatie waarbij de mens ervoor zorgt dat het een compleet rekenmachine kan worden.
0.2.2 De eerste mechanische rekenmachines
Deze maakte gebruik van tandwielen. Door de positie hiervan konden gegevens mechanisch worden ingegeven. Algoritmen zijn in de structuur verankerd.
· Pascal (1 algoritme = optellen)
· Leibniz (verschillende wiskundige bewerkingen)
· Babbage (19e eeuw)
Babbage zijn verschilmachine (gebaseerd op successieve verschillen) kon worden omgebouwd waardoor er een aantal verschillende berekeningen konden worden gemaakt, terwijl zijn analytisch machine zo was ontworpen dat de instructies dmv een ponskaart (dus algoritme niet ingebouwd in structuur) werden ingelezen. De uitvoer ervan was afdrukbaar.
Augusta Byron schreef later een paper waarin werd gedemonstreerd hoe het machine geprogrammeerd kon worden + toepassingen, waarbij zij dus bekend staat als de eerste programmeur.
1. Stap 1 stap 2 vb getal:4 2. x = 1 x+1 = 2 3/4 dif(1) = 1 dif(2) = dif(1)+2 = 3 5/7 x^2(1)= 1 x^2(2) = x^2(1)+dif (2) = 4 9/16 |
0.2.3 De eerste computers
De vooruitgang en opkomst van de elektronica heeft ervoor gezorgd dat de machines ontwikkeld door Pascal, Leibniz en Babbage effectief gemaakt konden worden op een economisch verantwoorde manier. Vele Amerikaanse ingenieurs experimenteerde hiermee, waarbij de groep van technici van IBM(Amerikaans computerbedrijf) bekend zijn.
De Mark I van IBM (1944), elektromechanische machine, was één van de eerste computers.
Eveneens de Engelsen hebben een bijdrage gehad, die machines (colossus) maakte die codes konden kraken tijdens de oorlog → Gebruikt in 2de wereldoorlog met oog op militaire toepassingen
0.2.4 Verdere vooruitgang
Verdere vooruitgang door de computerhobbyisten en de technologie. Zij begonnen thuis te experimenteren met computers, maar nog steeds bleven computers alleen iets voor bedrijven. Het is te danken aan IBM in 1981 dat we nu allemaal personal computers (pc’s = zowel laptops als desktopcomputers) gebruiken, waarvan de besturingssoftware ontwikkeld werd door Microsoft. Deze werden meteen een succes, en zijn te danken aan de manier waarop wij vandaag de dag gebruik maken van technologie.
De vooruitgang in electronica zal ook niet stoppen, de wet van Moore zegt: om de 2 jaar verdubbelt het aantal transistoren, waardoor steeds kleinere, snellere en goedkopere chips kunnen worden gemaakt = miniaturisatie.
0.3 Wetenschap van de algoritmen
Gezien de beperkte, beschikbare gegevensopslagcapaciteit en de tijdrovendheid van programmeren, waren de eerste algoritmen weinig complex. Later werden de taak groter en complexer.
0.4 Abstractie
= het onderscheiden van externe en interne eigenschappen, te herleiden naar het onderscheid van essentie en detail. Door hiervan gebruik te maken kunnen we inwendige details negeren, en beschouwen als eenvoudige eenheden. Een machine is opgebouwd uit componenten die bestaan uit kleinere componenten. Deze stellen elk een abstractieniveau voor waarbij het gebruik geïsoleerd wordt van de info over de inwendige samenstelling ervan. Hierbij wordt het black box principe gehanteerd: we weten niet hoe er van input naar output wordt gegaan, omdat dit voor velen niet van belang is. Er wordt bij algoritmen steeds abstractie gemaakt van waarom, aangezien het antwoord op deze vraag al opgeslagen is in het algoritme (zie 0.1).