Geschiedenis van de Informatica (B-KUL-G0K34A)
Professoren Henk Olivie´ Marie-Francine Moens Bern Martens Pierre Verbaeten Philip Dutre´ Karl Meerbergen Luc De Raedt Bart Demoen Erik Duval
Auteurs Dieter Castel Jonas Devlieghere Stefan Pante Willem Van Onsem Bijdragers Kevin Holvoet Ben Lefevere Michiel Meersmans Tim Van den Eynde Dennis Frett
Inhoudsopgave 1 Algemene Geschiedenis 1.1 Reeks A . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Vaardigheden . . . . . . . . . . . . . . . . . 1.1.2 Basissen Getallensystemen . . . . . . . . . . 1.1.3 Cijfer Nul . . . . . . . . . . . . . . . . . . . 1.1.4 Rekenhulpmiddelen . . . . . . . . . . . . . . 1.1.5 Figuren: Hollerith’s Machine en van Abacus 1.2 Reeks B . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Duitsland . . . . . . . . . . . . . . . . . . . 1.2.2 Groot-Brittanni¨e . . . . . . . . . . . . . . . 1.2.3 USA . . . . . . . . . . . . . . . . . . . . . . 1.2.4 Konrad Zuse . . . . . . . . . . . . . . . . . 1.2.5 Alan Turing . . . . . . . . . . . . . . . . . . 1.2.6 Charles Babbage . . . . . . . . . . . . . . . 1.2.7 Eckert en Mauchly . . . . . . . . . . . . . . 1.2.8 John Backus en Grace Hopper . . . . . . . 1.3 Reeks C . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Type Computers . . . . . . . . . . . . . . . 1.3.2 Invloed Internationale Gebeurtenissen . . . 1.3.3 IBM . . . . . . . . . . . . . . . . . . . . . . 1.3.4 Computerrealisaties . . . . . . . . . . . . . 1.3.5 Gebeurtenissen per Decennium . . . . . . . 1.3.6 Periodes . . . . . . . . . . . . . . . . . . . . 1.3.7 World Wide Web . . . . . . . . . . . . . . . 1.3.8 Besturingssystemen & Gebruikersinterfaces 1.3.9 Programmeren & Software Engineering . . 1.3.10 Evolutie Programmeertalen . . . . . . . . .
. . . . . . . . . . . . . . . naar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . cijferrekenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
3 3 3 3 4 5 6 6 6 7 7 8 9 9 9 10 10 10 11 11 12 13 14 14 14 15 15
2 Theorie van Berekenen 19 2.1 Vraag 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Vraag 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3 Artifici¨ ele Intelligentie 21 3.1 Vraag 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Vraag 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4 Geschiedenis van het Internet 22 4.1 Mijlpalen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2 Beheer Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.3 Internet in Belgi¨e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1
5 Informatica en Samenleving 5.1 Privacy . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Internet als Communicatie- en Informatiekanaal . . . . . 5.3 Informaticawetenschappen in het (Secundair) Onderwijs 5.4 Professionele Ethiek voor Informatici . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
24 24 24 24 24
6 Natuurlijke Taalverwerking 6.1 Evolutie & Innovaties . . . . . . . 6.2 Automatisch Vertalen . . . . . . . 6.3 Automatisch Verstaan . . . . . . . 6.4 Multidisciplinair Onderzoeksgebied 6.5 Empirisme . . . . . . . . . . . . . . 6.6 Noam Chomsky . . . . . . . . . . . 6.7 IBM & Google . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
25 25 26 27 27 28 28 28
7 Scientific computing 7.1 Vraag 1 . . . . . . 7.2 Vraag 2 . . . . . . 7.3 Vraag 3 . . . . . . 7.4 Vraag 4 . . . . . . 7.5 Vraag 5 . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
29 29 29 29 29 29
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
8 Computer Graphics 30 8.1 Schermen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 8.2 Animatiefilm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 A Personenregister
31
2
1
Algemene Geschiedenis
1.1 1.1.1
Reeks A Vaardigheden
Vraag. Met de opkomst van digitale rekentoestellen hebben fervente aanhangers van de oudere rekenhulpmiddelen beweerd dat een aantal rekenvaardigheden verloren zouden gaan, o.a. het schatten van de grootte van het resultaat. Denk je dat de actuele ontwikkelingen op het gebied van ICT ook een aantal vaardigheden doen verloren gaan? Antwoord. Hieronder een aantal vaardigheden die verloren kunnen gaan door de huidige ontwikkelingen op het gebied van ICT: 1. Geheugen: We hebben tegenwoordig altijd computers binnen handbereik (Smartphone). Informatie die men vroeger zou moeten noteren en eventueel memoriseren kan nu snel opgezocht worden. Vroeger was het niet ongewoon om telefoonnummers van buiten te kennen. Nu hebben we allen een telefoonboek in onze zak. 2. Kennis: Dankzij de computers is alle informatie vrijwel direct vindbaar. Mensen doen dus minder opzoekingswerk in bijvoorbeeld bibliotheken. Hierbij wordt ook de drang om bekomen informatie te memoriseren minder groot. Terwijl het vroeger nogal wat moeite kostte om informatie op te zoeken, gebeurt dit tegenwoordig vrijwel moeiteloos. Bovendien moedigt dit oppervlakkige kennis aan van materie, door de overvloed aan beschikbare informatie die tevens niet altijd correct is, wordt er minder grondig gelezen. 3. Afspraken maken: Een afspraak afzeggen of last minute verplaatsen ging vroeger moeilijker dan vandaag (dankzij Telecom). Mensen hielden zich dan ook meer aan afspraken in plaats van last minute af te zeggen of wijzigingen aan te brengen. 4. Navigatie: De opkomst van de GPS heeft het gebruik van de fysieke kaart grotendeels vervangen. Vroeger vereiste navigatie ori¨entatievermogen. 5. Sociaal: We kunnen alles ogenblikkelijk delen met iedereen die we willen via sms, sociale netwerken of email. Hierdoor wordt er misschien minder echt gepraat dan vroeger, aangezien je vaak alles al verteld hebt via voorgaande media! wi 1.1.2
Basissen Getallensystemen
Vraag. Welke basissen van getallensystemen zijn er in de loop van de geschiedenis gebruikt en waar vinden we die nu nog terug? Antwoord. Basis 60 Basis 60 vinden we terug in onze indeling van tijd. 1 uur is namelijk 60 minuten, een minuut is 60 seconden. Ook het gebruik van graden in de meetkunde verwijst naar een basis van 60. Babylonische wiskundigen gebruikten in 1750 voor Chr. het sexagesimaal positiestelsel met basis 60. Deze notatie was al floating point. Hierbij kunnen de vingerkootjes gebruikt worden om tot 12 te tellen, terwijl het andere hand kan gebruikt worden om veelvouden bij te houden. 3
Waardoor er ook op de handen geteld kan worden tot 60. Het Babylonische 60-tallig stelsel werd ook in andere gebieden, o.a. Griekenland, de Arabische wereld, en in Europa op het einde van de middeleeuwen, door wiskundigen gebruikt om met gebroken getallen te werken. Basis 20 In het pre-columbiaanse Amarika vinden we getallen notaties terug bij de Maya’s die gebruik maken van basis 20. Ook de Franse woorden voor getallenreeksen duiden op een basis 20. (quatre-vingt). Bovendien werd tot enkele decennia geleden de Britse pond verdeelt in 20 shilling en elke shilling in 12 pence (basis 12). Basis 10 Basis 10 komt ongetwijfeld van het tellen op de 10 vingers van de beide handen. In Babyloni¨e rond 1750 voor Chr. werden er tijdens handelsbetrekkingen getallen genoteerd per groeperingen per 10, per 100 enzovoort. Zij maakten dus eigenlijk gebruik van basis 10. De getallennotatie in het decimale positiestelsel die we nu kennen (voor gehele getallen) is ontstaan in India, rond 500-600 na Christus. De eerste tekenen van dit decimale positiestelsel werd teruggevonden in sterrenkundige berekeningen. Het stelsel is ontstaan uit een ouder Indiaas getallenstelsel met voorlopers van de symbolen voor 1 - 9. Basis 12 In vele westerse talen hebben de getallen van 1 tot en met 12 een eigen naam (bv. dozijn). Dit wijst erop dat 12 ook mogelijk ooit als basis werd gebruikt. Bovendien kan voor basis 12 geteld worden op de vingerkootjes, wat ook op de origine van deze basis kan wijzen. Basis 2 Basis 2 wordt gebruikt in elektrische schakelingen en computers. Dit is onder andere zo omdat computers intern toestanden onderscheiden door het aan- of afwezig zijn van spanning (1 of 0). 1.1.3
Cijfer Nul
Vraag. Waarom is nul belangrijk? Ken je de vermoedelijke oorsprong? Antwoord. Rond 1750 voor Chr. gebruikten Babylonische wiskundigen een symbool voor 0 als plaatshouder, maar het werd nog niet als getal gebruikt en ook nooit achteraan of vooraan een getal geschreven. Ook werd er in het Bakshali manuscript (2de - 3de eeuw na Chr.) al een symbool voor nul gebruikt. Sommige onderzoekers vermoeden dat het gebruik van de nul in combinatie met eenheden een Indiase ontdekking is, die te maken heeft met de structuur van de taal, het Sanskriet. Anderen vermoeden dat ze inspiratie putten uit het Babylonis sexagesimaal positiestelsel dat met de Babylonische/Griekse sterrenkunde mee naar India is gekomen. Brahmagupta (598670 n.Chr.) beschreef het gebruik van de nul als getal en bewerkingen met het getal nul. De Indiase getallennotatie is via de Arabische wereld naar Europa gekomen. Er was sterke interesse in Sterrenkunde en daarbij werden indiase methoden gebruikt.In 1202 publiceerde Leonardo Van Pisa (Fibonacci) “Liber Abaci” waarin het gebruik van arabische cijfers werd beschreven, inclusief nul. Hiermee werd het ge¨ıntroduceerd in Europa. Dankzij het gebruik van de nul, kunnen grote getallen gemakkelijker worden voorgesteld. In plaats van telkens een symbool te moeten verzinnen voor grote getallen, geven eenheden met daarachter nullen de grootte van een getal aan. Het maakt het gebruik van een positiestelsel bovendien gemakkelijker. 4
1.1.4
Rekenhulpmiddelen
Vraag. Welke rekenhulpmiddelen heb je zelf gebruikt? Welke ken je? Welke zijn er in onbruik geraakt en waarom? Antwoord. Hieronder is een opsomming van rekenhulpmiddelen: Tabellen Bij de Babylonie¨ers werden er al tabellen teruggevonden met kwadraten, derde machten en inversen. Meer recent werden tabellen ook gebruikt om bijvoorbeeld de waarden van sinus, cosinus of logaritmes op te zoeken. Zelf hebben we nog gebruik gemaakt van tabellen om de kansen van normaal- of andere verdelingen op te zoeken. Maar vele zijn in ongebruik geraakt door de opkomst van het moderne rekentoestel, waarmee vele waardes kunnen worden opgevraagd die we normaal uit een tabel zouden halen. Quipu De Inca’s stelden getallen voor en bewaarde ze met behulp van knoopjes in touwen. Kerfstok De inkervingen hierop stellen getallen voor. Met de opkomst van systematische notatie van getallen wordt dit niet meer gebruikt. Vingers Tellen op de vingers kent iedereen, het is een handige manier om te tellen met basis 10 of basis 12, 60. Abacus, telraam, rekenbord Aantekeningen kunnen gekrast worden in zand of stof, Er zijn ook rekenborden met lijntjes en steentjes(of staafjes en kralen). Werd vooral gebruikt omdat schrijven niet verspreid was. Rekenlineaal Dit is een liniaal met Logaritmische afstanden. Een vermenigvuldiging en deling worden met logaritmes respectievelijk een optelling en aftrekking. Men kan dan twee logaritmische afstanden optellen/aftrekken op de liniaal om gemakkelijk het resultaat af te lezen. Een huidig zakrekentoestel heeft het gebruik van de rekenliniaal vervangen. Mechanisch rekenmachine Na de middeleeuwen werd er verschillende keren getracht om een mechanisch rekentoestel te ontwikkelen, zo ontwikkelde in 1623 Wilhelm Schickard een rekenklok om aftrekken, vermenigvuldigen en optellen eenvoudiger te maken. Blaise Pascal ontwikkelde in 1642 een telmachine met raderen (Pascaline) welke kon optellen en aftrekken . In 1666 maakte Samuel Morlan een machine waarmee vermenigvuldigd kon worden. In 1694 ontwierp Gottfried Leibniz een rekentoestel waarmee optellen, aftrekken, deling, vermenigvuldiging machten en vierkantswortels konden worden berekend. Deze modellen oogstten echter nooit succes (werkkracht was goedkoop en het toestel was duur). Charles Xavier de Colmar maakte patenteerde in 1820 het eerste commercieel succesvol mechanisch rekentoestel. Hierna kwamen nog succesvolle modellen. Deze werden later echter ook vervangen door elektronische rekenapparatuur. Computers
5
1.1.5
Figuren: Hollerith’s Machine en van Abacus naar cijferrekenen
Figuur 1: Figuren bij vraag 5 Vraag. Kan je de de figuren op Figuur 1 thuisbrengen? Vertel wat je ervan weet. Linkse Figuur De linkse Figuur is van Herman Hollerith en een van zijn Hollerith machines (1880) die tegen het einde van de negentiende eeuw in de VS gebruikt werden om volkstellingen te doen. De tellingen gingen hierdoor aanzienlijk sneller. Deze machine gebruikte ponskaarten. Ze verwerkten grote hoeveelheden gegevens, voor uitvoeren van berekeningen waren ze niet geschikt. In 1896 wordt de Tabulating Machine Company opgericht dat in 1914 met Thomas Watson sr. aan het hoofd wordt omgedoopt tot International Business Machines Corporation (IBM). Rechse Figuur De rechter persoon op deze figuur rekent met een Abacus terwijl de linker persoon aan cijferrekenen doet. Deze afbeelding duidt op de overgang naar cijferrekenen in Europa die plaatsvond tussen 1000 - 1200. Pater Gebert d’Aurillac (945 -1003, paus Sylvester II), bestuurde het gebruik van Arabische cijfers. Later schreef Leonardo van Pisa (Fibonnaci) in 1202 het werk Liber Abaci. Hierin wordt rekenen met Arabische cijfers (inclusief nul) uitgelegd. Het tekenende dus de Europese overgang naar het rekenen met Arabische cijfers.
1.2 1.2.1
Reeks B Duitsland
Vraag. Wat is de rol van Duitsland in de ontwikkeling van computers?
6
Antwoord. Tussen 1936 en 1938 bouwde de Duitse ingenieur Konrad Zuse de eerste digitale computer met mechanische schakelaars: de Z1. Daarna volgden tijdens de tweede wereldoorlog de Z2 en de Z3 ondanks het feit dat de Duitse overheid niet bereid was hiervoor subsidies te geven. Vertraagd door de oorlog ontwikkelde hij uiteindelijk in 1947 de Z4. In 1949 werd Zuse met zijn Z4 voor vijf jaar gehuurd door het Instituut voor Toegepaste Wiskunde in Z¨ urich. De Z4 was toen de enige werkende computer op het vasteland van Europa en is eveneens de eerste computer die ooit verkocht is (aan de ETH Z¨ urich). We kunnen ook opmerken dat het gebruik van de enigma mechanische codeer machines door Duitsland het ontwikkelen van een computer in Groot-Brittani¨e in een stroomversnelling heeft gebracht. Na de oorlog was er te weinig geld en middelen zodat Duitsland verder nog weinig invloed had op de ontwikkeling van de computer. 1.2.2
Groot-Brittanni¨ e
Vraag. Wat is de rol van Groot-Brittanni¨e in de ontwikkeling van computers? Antwoord. Charles Babbage wordt gezien als de vader van de computer. Zijn ontwerp voor een mechanische computer vormt de basis van latere, meer complexe modellen. Babbage was met zijn idee¨en ver vooruit op de technische mogelijkheden van zijn tijd. In Groot-Brittanni¨e werd in 1943 de Colossus I in gebruik genomen. Dit was de eerste elektronische computer met als invoer een snelle ponsbandlezer. Daarvoor werden er reeds relais computers ontwikkeld onder de naam Robinson om de cryptografische codes van Duitsland te breken. De computers werden echter ontworpen in geheimhouding en hebben dus geen invloed gehad op de verdere ontwikkeling van ander computers. Alan Turing ontwierp wel de Automatic Computing Engine (ACE) voor het National Physical Laboratory. Wegens de geheimhouding werd dit te ambitieus bevonden hoewel er toch een (kleinere) Pilot Ace werd vervolledigd in 1950. Er volgde een tweede implementatie namelijk de MOSAIC in 1952. Max Newman samen met Frederic Williams cre¨eerden drie stored program computers. Een prototype de Manchester Baby Machine in 1948 en de Manchseter en Ferranti Mark I in 1951. Maurice Wilkes begon in 1946 na een lezing over de ENIAC te hebben gevolgd aan het ontwikkelen van de EDSAC die kwik vertragingslijnen als geheugen gebruikte. 1.2.3
USA
Vraag. Wat weet je van de eerste elektronische computers in de Verenigde Staten van Amerika? Antwoord. ABC (Atanasoff Berry Computer) Machine uitsluitend geschikt voor het oplossen van stelsels lineaire vergelijkingen. Deze werkte binair met elektronenbuizen maar was niet programmeerbaar. ASSC/Harvard Mark I (1937-1943) Ontworpen door Howard Aiken (Harvard), gebruikte elektromagnetische schakelingen, niet binair, controle via lusvormige ponsband. Financi¨ele steun van IBM.
7
Model I (1939), II (1943), III - VI Ontworpen door George Stibitz (Bell Laboratories), vermenigvuldigingen en delingen uitvoeren. Model II kon enkel optellen en aftrekken, programmeerbaar via ponsband. Daarop volgden nog vier modellen van relaiscomputers. De meest van deze computers werden ingezet voor militaire doeleinden. ENIAC (1946) Volwaardige elektronische computer, ontworpen door John Eckert en John Mauchly, 18000 elektronenbuizen, moeilijk programmeerbaar. EDVAC (1951) Opvolger ENIAC met kwik vertragingslijn, John von Neumann bestudeerde logische structuur hiervan. SSEC (1948) Computer met elektronenbuizen, ontworpen door IBM BINAC (1949) Binaire computer ontworpen onder het bedrijf (ECC) van Eckert en Muachly. UNIVAC (1946-1951) Invoer met magnetische band, geld-problemen voor ontwikkeling, afgewerkt na overname ECC door Remington Rand in 1950. In 1951 legde IBM zicht toe op de ontwikkeling van computers en werd zeer snel het grootste bedrijf in de branche. Dit is vooral te danken aan het feit dat IBM het ponskaarten systeem bleef gebruiken voor hun nieuwe computers en dat de klanten dit systeem al kenden en al machines hadden hiervoor. 1.2.4
Konrad Zuse
Vraag. Wat is de rol van Konrad Zuse? Antwoord. Konrad Zuse was een Duitse ingenieur en heeft een enorme rol gespeeld in het bouwen van de eerste computers (in Europa). In 1949 richt hij het bedrijf Zuse AG op dat later opging in Siemens AG. Hij ontwikkelde 4 revolutionaire computers. Z1 (1936-38) Eerste digitale computer met mechanische schakelaars, programmeerbaar, binaire getallen voorstelling. Z2 (1939) Verbetering van Z1 met elektromagnetische relais in de processor. Z3 (1941) Verbetering op de Z2 waarbij nu ook het geheugen elektromechanisch was. Z4 (1947) Verbetering op de Z3 en de eerste commerci¨ele computer op het Europese vasteland.
8
De Z4 was toen de enige werkende computer op het vasteland van Europa. Hij werd onder meer gebruikt bij het ontwerpen van stuwdammen. Zijn Z4 is de eerste computer die ooit verkocht is (aan de ETH Zrich). Hij is bovendien gekend voor ´e´en van de eerste hogere programmeertalen Plankalku ¨ l. Hij ontwikkelde deze taal na de capitulatie van Duitsland, terwijl Zuse zijn gezin in leven hield door berglandschapjes met gemzen te schilderen voor soldaten van de Amerikaanse bezettingsmacht. 1.2.5
Alan Turing
Vraag. Wat is de rol van Alan Turing? Antwoord. Alan Turing (1912-1954) was een geniale Engelse wiskundige en wordt als vader van de computerwetenschappen gezien. Hij toonde (gelijktijdig en onafhankelijk van Alonzo Church) aan dat er geen oplossing bestaat voor het Entscheidungsproblem. Verder legde hij de basis voor de computerwetenschappen met zijn theoretisch onderzoek waarvan we nu nog steeds de turing machine kennen. Ook werkte hij mee aan de bouw van de Colossus I en later aan de ACE. Het breken van de ENIGMA code van de Duitsers tijdens WOII wordt aan hem toegeschreven. In 1952 werd Turing vervolgd voor homoseksualiteit en in de nasleep van deze situatie pleegde hij op 41 jarige leeftijd zelfmoord. In 2009 werd namens de regering van het Verenigd Koninkrijk postuum excuses aangebonden en in 2013 werd hem gratie verleend wat betekent dat zijn veroordeling uit de boeken werd geschrapt. 1.2.6
Charles Babbage
Vraag. Wat is de rol van Charles Babbage (en Augusta Ada Lovelace)? Antwoord. Babbage was een Engelse wiskundige die de mechanische “Differential Engine” ontwierp. Dit deed hij uit de frustratie van de veel voorkomende fouten in de logaritmische tabellen die toen gebruikt werden. In 1822 kon hij een succesvol prototype demonstreren waarna hij financi¨ele steun kreeg van de Engelse regering. Toch slaagde hij er niet in een totaal werkend systeem te laten bouwen en hij zette het werk in 1833 stop. Later in 1853 werd er in Zweden wel een werkende “Differential Engine” gemaakt. Babbage bracht nog een innovatief idee aan namelijk dat van een “Analytical Engine” die uiteenlopende bewerkingen zou kunnen maken. Ver vooruit op zijn tijd ontwierp hij een toestel dat met ponskaarten zou kunnen werken (de machine werd echter nooit gebouwd). Ada Lovelace schreef voor deze machine het eerste algoritme en wordt daarom als de eerste programmeur aangeduid. Wel voorspelde hij al in 1864 dat de computer de toekomst van de wetenschap zou bepalen. 1.2.7
Eckert en Mauchly
Vraag. Wat is de rol van Eckert en Mauchly? Antwoord. Ze namen de leiding in het ontwikkelen van de ENIAC aan de Moore School of Electrical Engeneering aan de University of Pennsylvania. Toen ze hun ontwerp wilden patenteren kwamen ze in conflict met het bestuur van de Universiteit. Hierna richtten ze de Electronic Control Company (ECC) op en ontwikkelden nog twee belangrijke computers: de UNIVAC (UNIVersal Automatic Computer) en de BINAC (BINary Automatic Computer). Door heel wat technische en fincanci¨ele problemen duurde de ontwikkeling van de UNIVAC zeer lang. De BINAC (een kleinere binaire) 9
computer werd eerder afgewerkt als zijproject in 1949. Na de overname door Remington Rand in 1950 werd dan eindelijk de UNIVAC afgewerkt in 1951. De UNIVAC raakte erg bekend dankzij het gebruik ervan op de televisie bij de voorspelling van de resultaten van de presidentsverkiezingen van november 1948, waarin Eisenhouwer uitgesproken won. 1.2.8
John Backus en Grace Hopper
Vraag. Wat weet je over John Backus en Grace Hopper? Antwoord. John Backus cre¨eerde FORTRAN in 1957 voor de IBM 704. Grace Hopper ontwierp meerder compilers voor de UNIVAC. In 1952 de A-0 en in 1953 de A-1 en A-2. Deze compilers maakten het mogelijk om subroutines te gebruiken en assembleerden zo een programma uit bouwblokken. Ook ontwierp Hopper COBOL en de B-0 compiler daarvoor tussen 1959 en 1960. De B-0 compiler compilede voor de MATH-MATIC en de FLOW-MATIC.
1.3 1.3.1
Reeks C Type Computers
Vraag. Bespreek het onderscheid tussen mainframe, minicomputer, personal computer, werkstation, supercomputer. Antwoord. Mainframe Mainframes zijn computers met grote capaciteit, voornamelijk gebruikt door bedrijven en overheidsinstanties, bedoeld voor het verwerken van informatie in batch. Bij een mainframe ligt de nadruk meer op ononderbroken inzet en het bedienen van een groot aantal gebruikers. Vaak zijn mainframes toegelegd op het verwerken van transacties. Minicomputer Een minicomputer is een klasse van computers die kleiner en goedkoper zijn dan mainframes. Ze beschikken doorgaans over in- en uitvoerapparaten en zijn in staat een hogere programmeertalen uit te voeren. Personal computer De personal computer is een microcomputer voorzien van een scherm en toetsenbord. Deze computer is beduidend goedkoper dan een mainframe of minicomputer. Werkstation Een krachtige computer bedoeld voor professioneel gebruik. Deze computer is voorzien van gespecialiseerde hard- en software. Deze computer bevindt zich tussen de mini en personal computer. Supercomputer Een supercomputer is een computer met een buitengewoon grote bewerkingscapaciteit of rekenvermogen. Men gebruikt een supercomputer wanneer men genoegen kan nemen met een systeem dat soms uit moet voor een servicebeurt, maar waarvan absolute topprestaties verlangd worden als het systeem in bedrijf is. Daarbij ligt de nadruk meestal op floating point bewerkingen. Vaak wordt een supercomputer gebruikt voor onderzoekswerk op universiteiten of technische instituten waarbij op ieder moment slechts een beperkt aantal mensen met het systeem werken, en iedere gebruiker zijn eigen, specifieke applicatie heeft. 10
1.3.2
Invloed Internationale Gebeurtenissen
Vraag. Toon met voorbeelden aan dat belangrijke internationale gebeurtenissen een grote rol hebben gespeeld in de ontwikkeling van computers en informatica. Antwoord. We vinden hiervan verschillende voorbeelden terug doorheen de geschiedenis. Reeds eind negentiende eeuw leid de grote migratie naar de Verenigde Staten tot het probleem van volkstellingen. Dit gaf de aanzet tot het ontwikkelen van de Hollerith Machine met als doel het vereenvoudigen van de volkstelling. Een volgende heel duidelijk voorbeeld is tijdens de tweede wereldoorlog. Vooral in de Verenigde Staten en Groot-Brittanni¨e is de invloed zeer duidelijk te merken. De Collosus I (GB) wordt in het geheim ontwikkeld om Duitse geheime codes te breken. Ook de ASCC, ENIAC (VS) van zijn opvolgers werden gebruikt door het Amerikaanse leger om o.a. projectielbanen te berekenen. In Duitsland was er door de oorlog vooral een negatieve invloed te merken. Zo kreeg Konrad Zuse door de oorlogskosten geen subsidie voor het ontwikkelen van zijn Z-reeks. Ook na de oorlog was het door gebrek aan geld en middelen relatief stil op het front van computers in Duitsland. De ontwikkeling van het ARPAnet (voorloper van het internet) is ook gedeeltelijk toe te schrijven aan de koude oorlog. Er was immers nood aan communicatie als er verschillende nodes in een netwerk zouden uitvallen. 1.3.3
IBM
Vraag. IBM heeft een belangrijke rol gespeeld in de ontwikkeling van computers en informatica. Kan je belangrijke verwezenlijkingen of mijlpalen aangeven? Antwoord. IBM ontstond in 1914 uit de Tabulating Machine Company dat gekend is voor de Hollerith machines. Ze groeide al snel uit tot de marktreus in gegevensverwerkende machines op basis van ponskaarten. • Harvard University en IBM ontwikkelen samen in 1944 de Harvard Mark 1, ´e´en van de eerste computers. Na het succes hiervan ontwikkelen ze de Selective Sequence Electronic Calculator (SSEC) die verschijnt in 1948. • Kort na de tweede wereldoorlog verschijnt de Card-programmed Electronic Calculator (IBM 601/2/3/4/5). Van de IBM 605 werden er tussen 1948 en 1985 maar liefst 5000 gemaakt en verkocht. • Pas vanaf 1951 ziet IBM in dat naast wetenschappelijk rekenwerk, computers ook geschikt waren voor gegevensverwerking en er een markt voor de firma bestond. In 1951 brengen ze de eerste stored program computer uit, de IBM 701 bedoeld voor gegevensverwerking. Omdat de gebruikte ponskaarten compatibel zijn met hun vorige apparatuur steekt IBM al snel alle concurrentie voorbij. In 1955 verschijnt de IBM 702, de business geori¨enteerde opvolger. Deze laatste was de eerste computer die gebruik maakte van magnetische kernen als geheugen. • Parallel met de 701 werd de IBM 650 ontwikkeld. Deze maakte gebruik van een magnetische trommel voor zijn centraal geheugen. 11
• IBM haalt een contract binnen met de US Air Force en levert 30 systemen voor SAGE (SemiAutomatic Ground Environment) waarmee IBM concurrent UNIVAC voorbijsteekt. • De IBM 305 RAMAC (1956) was de eerste computer die gebruik maakte van bewegende-kop magnetische schrijven als secundaire opslag. • John Backus ontwikkeling in 1957 FORTRAN voor de IBM 704 en 705. • De IBM 709 (1958) introduceert als eerste een afzonderlijke processor voor I/O. Dit model wordt in 1959 vervangen door model 7090 die voorzien is van transistoren. Deze wordt opgevolgd door de 7094. • Met de IBM 1400 introduceert IBM in 1960 een tweede computerserie: – Technisch Wetenschappelijke Toepassingen: 700 en 1620 reeks (FORTRAN) – Administratieve Toepassingen: 1400 reeks (COBOL) • IBM ontwikkelt APL, ´e´en van de eerste dynamische programmeertalen. • 1964: IBM wil zijn twee computerlijnen combineren. In samenwerking met SHARE wordt een nieuwe programmeertaal (PL/I) ontwikkeld en een nieuwe familie mainframes: de System/360. Hoewel er verschillende versies bestaan voor verschillende gebruikers beschikken ze over dezelfde software. IBM heeft daarmee het grootste deel van de mainframe markt voor zicht. Opvolgers zijn de System/370 in 1970, de IBM 390 in 1985 en de System z9 in 2006. • In 1975, wordt de IBM 5100 gelanceerd, een draagbare microcomputer. Zes jaar later, in 1981 betreedt IBM de PC markt met de IBM PC (model 5150). Deze gebruikt PC-DOS als besturingssysteem en wordt al snel de de-facto standaard. 1.3.4
Computerrealisaties
Vraag. 60 jaar geleden: 1954. Kan je je voorstellen wat er toen nog niet was (in het dagelijkse leven), en dat gerealiseerd is door middel van computers, processoren, informatica? Antwoord. Er zijn natuurlijk nog veel andere zaken die zeker veranderd zijn, maar dit zijn toch al de belangrijkste: Internet Internet was er toen nog niet en dit is een enorme verandering. We gebruiken het internet nu voor van alles zoals informatie opzoeken, winkelen, betalen, verkopen, ontspanning, communicatie met hele wereld, enz. Bedrijven zijn natuurlijk ook helemaal anders gaan werken door het internet (e-business). Werkverschuiving Een aantal jobs zoals typist, manuele banktransacties, sorteren en verwerken van gegevens, enz. Op de werkvloer worden de meeste producten ook niet meer manueel gemaakt, maar via computergestuurde machines.
12
Ubiquitous Computing In al onze apparaten zitten processoren zoals de wasmachine, vaatwas, auto, tv, mediacenter, audioinstallatie, enz. Ontspanning Nu ontspannen we ons snel door het kijken van een kleurenfilm met mooie effecten, of een game op pc, console, handheld device (smartphone, tablet). 1.3.5
Gebeurtenissen per Decennium
Vraag. Kan je een belangrijke gebeurtenis of evolutie op het gebied van de informatica voor elk decennium vanaf 1940-1949 noemen en toelichten? Antwoord. Overzicht per decennium: Jaren 40 De Z3 is de eerste Computer. De ABC (Atanasoff Berry Computer) is de eerste computer in de USA. John von Neumann introduceert het concept van stored-program computer dat aan de basis komt te liggen van de gehele computerindustrie. De EDSAC is de eerste werkende computer van dat type (Groot-Brittanni¨e) Jaren 50 De UNIVAC is de eerste commerci¨ele computer. IBM snijdt de computermarkt aan met de IBM 701. Belangrijke technologische ontwikkelingen: transistor, kerngeheugen, magnetische schijven. Ontwikkeling van FORTRAN en COBOL. Jaren 60 Verwezenlijking IC (Integrated Circuit). Samenvoegen wetenschappelijke en bedrijfsgerichte computerfamilies met System/360 van IBM. Ontstaan van minicomputers (DEC). Eerste supercomputers: Seymour Cray (CDC) met nieuwe technologie¨en als resultaat. Eerste timesharing systemen. Jaren 70 Ontwikkeling van de microprocessor en microcomputer (IBM 5100, Apple II, Altair 8800). Vlucht microcomputers en bijhorende software (VisiCalc, WordStart). Ontwikkeling UNIX. Eerste ontwikkelingen internet. Jaren 80 Opkomst PC en IBM 5150 met PC-DOS wordt de de-facto standaard. Evoluties hard- en software: processoren, geheugen, grafische interfaces. Ontstaan van werkstations, gepositioneerd tussen PC en minicomputer. Begin object geori¨enteerde programmeertalen (Smalltalk). Jaren 90 Populariteit OOP neemt sterk toe (C++, Eiffel, Java). Opkomst van webgerelateerde programmeertalen (JavaScript, PHP, Python, Lua, Ruby). Start van commercieel internet en het WWW (Tim Berners-Lee), eerste browser, oprichting IETF, W3C.
13
1.3.6
Periodes
Vraag. Hoe zou je zelf de geschiedenis van de informatica in periodes indelen? Op grond waarvan? Antwoord. Subjectief? 1.3.7
World Wide Web
Vraag. Wat weet je over de geschiedenis en de voorlopers van het WWW? Antwoord. Paul Otlet legde reeds in 1907 een basis voor het WWW met zijn systematische organisatie van de literatuur in de sociale wetenschappen. Hij ontwikkelde de Universal Decimal Classification en lag daarmee aan de basis van hypertext systemen. In 1945 ontwierp Vannevar Bush, de wetenschappelijk adviseur van Roosevelt, het concept van een mechanisch computer die notities en boeken gestructureerd en doorzoekbaar zou opslaan genaamd Memex. Ted Nelson bedacht de term “hypertext” in 1965 en daarmee ook het concept Xanadu. Hij wou alle literatuur aan elkaar linken en zo royalties uitkeren aan de originele auteurs afhankelijk van de bytes die de lezer opvroeg. Ook wou hij een zeer eenvoudig systeem om een nieuwe versie van een tekst te publiceren en toch de oude tekst niet verloren te laten gaan. Er werd door de ACM een Special Interest Group on Hypertext, Hypermedia and the Web opgericht en in 1987 werd er een eerste conferentie rond hypertext gehouden. In 1989 aan het CERN waren er zeer veel losse projecten lopende bijna allemaal internationaal en vaak gebruikmaken van complexe computer systemen. Daarom stelde Tim Berners-Lee een gezamelijk netwerk voor om al deze systemen in onder te brengen. Dit werd in 1990 werkelijkheid met de eerste website info.cern.ch en zo werd het www geboren. 1.3.8
Besturingssystemen & Gebruikersinterfaces
Vraag. Bespreek kort de evolutie van besturingssystemen en gebruikersinterfaces. Antwoord. Een overzicht van besturingssystemen per generatie: • 1945 - 1955: Initieel bestonden er geen besturingssystemen en gebeurde programmatie rechtstreeks in machinetaal. De gebruiker en programmeur waren dezelfde persoon. • 1955 - 1965: Deze generatie computers waren uitsluitend mainframes. De eerste besturingssystemen diende enkel om eenvoudig in batch programma’s uit te voeren (Fortran Monitor System). • 1965 - 1980: Met het samenvoegen van wetenschappelijke en administratieve computers werden besturingssystemen ingewikkeld. Timesharing vergde bovendien sterke ondersteuning van het OS. De eerste dergelijke systemen waren het CTSS (Compatible Time Sharing System) en MULTICS (MULTiplexed Information and Computing Service). Voor minicomputers werd MULTICS aangepast voor ´e´en gebruiker: UNIX. Dit werd zeer populair in de academische wereld en werd later een IEEE standaard: POSIX.
14
• 1980 - Heden: Met de introductie van microprocessoren wordt in 1974 CP/M ontwikkeld door Gary Kindall. Het was een disk-gebaseerd besturingssysteem, beschikbaar voor meerdere processoren. In 1981 koopt Bill gates DOS (Disk Operating System) van Seattle Computer Products en past het aan voor IBM. Hij leverde PC-DOS samen met zijn BASIC vertolker voor IBM’s Personal Computers. De PC markt bloeit en de CLI (Command Line Interface) wordt vervangen door een GUI (Graphical User Interface). Dit laatste was geinspireerd op ontwikkelingen bij Xerox PARC en gelanceerd door Steve Jobs. Microsoft volgde met Windows bovenop MS-DOS en voor UNIX verscheen X-Windows. Er ontstonden bovendien verschillende UNIX-ge¨ınspireerde besturingstekens met als meest noemenswaardige Linus Torvalds Linux. 1.3.9
Programmeren & Software Engineering
Vraag. Hoe zijn programmeren en software engineering ge¨evolueerd? Antwoord. Initieel werd er in de eerste generatie computers (1945-55) enkel in machinetaal geprogrammeerd. Programmeren was toen zeer ingewikkeld en er werden vaak geavanceerde trucs toegepast. Eind jaren 50 was er een enorme vraag naar programmeurs omdat toen computers ter beschikking van bedrijven kwamen. De tweede generatie (1955-65) bestond uit mainframes en werden hoofdzakelijk aangestuurd met ponskaarten. Rond 1968 werd de term software engineering ingevoerd. Tussen 1965 en 1980 spreken we van een derde generatie en toen kon er voor het eerst aan multiprogramming gedaan worden. Nu moest er ook rekening worden gehouden met time-sharing wat veel extra complexiteit meebracht en zelfs een software crisis. Langzaam aan won gestructureed programmeren (Hoare) aan terrein. Unix en C maakten deze trend onder andere groot. Bovendien was Unix een veel eenvoudiger besturingssyteem dan de complexe systemen gebruikt voor mainframes. Eind jaren 70 werd dan de microcomputer geintroduceerd dit maakte programeren (vaak met Pascal) voor zeer veel mensen mogelijk. Rond 1980 werd dan OOP voorgesteld maakte het ontwerpen en implementeren van veel complexere systemen mogelijk. Hoewel de computerkracht enorm is toegenomen wordt er slordig mee omgegaan in software. 1.3.10
Evolutie Programmeertalen
Vraag. Schets de evolutie van de verschillende soorten programmeertalen aan de hand van het bijgevoegd (vereenvoudigd) overzicht. (Zie foto’s voor overzicht) Antwoord. Initieel bestaat er enkel het imperatieve paradigma hiervoor werd er enkel in assembler of machinecode geprogrammeerd. Initieel werden er specifieke talen ontwikkeld voor specifieke hardware. FORTRAN I (1957) is de eerste taal met een geoptimaliseerde compiler. De taal werd initieel ontworpen voor de IBM 704 en komt hierdoor aan zijn typerende eigenschappen. Zo was er toen nog geen nood aan dynamische opslag, string handling of geavanceerde input/output. Wat wel essentieel was was het behandelen van lijsten en tellende lussen waarin FORTRAN uitblonk. 15
Figuur 2: (Vereenvoudigd) overzicht van de evolutie van programeertalen.
16
FORTRAN had nog maar net zijn intrede gedaan of ALGOL werd reeds ontwikkeld. Dit was een joint effort om een draagbare taal te maken. Bovendien moest de taal geschikt zijn voor het beschrijven van algoritmes. ALGOL 58 was slechts een theoretische beschrijving en was nog niet bedoeld om ge¨ımplementeerd te worden. Er was geen I/O ondersteuning maar wel een hele lijst instructies die we tot op de dag van vandaag gebruiken. • Data types (conceptueel) • Subscripts binnen [haakjes] • Else-If • Puntkomma als statement operator: statement; • Toekenningsoperator: vaiable := expression; ALGOL 60 bevatte nog steeds werd er geen I/O ondersteund maar de taal werd wel uitgebreid met, opnieuw, elementen die we in veel hedendaagse talen terugvinden: • Blok structuur (lokale scope) • Parameter passing: by value and by reference • Recursie Hoewel het 20 jaar lang de standaard was om algoritmes in te publiceren en alle volgende talen erop gebaaseerd zijn, had het weinig succes. Het gebrek aan I/O was een serieus probleem. Bovendien was de taal te flexibel wat het moeilijk maakte ze te implementeren. Ook zag de taal zwaar af onder de populariteit van FORTRAN en de afwezigheid van steun door IBM. De FLOW-MATIC taal voor de UNIVAC diende als basis voor een andere belangrijke taal in deze periode namelijk COBOL. Het doel van deze nieuwe taal was om het aantal computer gebruikers gevoelig te verhogen. Daarom werd er gefocust op een simpel ontwerp dat op eenvoudig Engels moest lijken. Het ontwerp ging uit van het Amerikaanse Departement of Defense (DoD) in samenwerking met verschillende computerbedrijven. In 1960 kwam een eerste versie uit deze bracht de volgende bekende elementen met zich mee: • Hi¨erarchische data structuren (records) • Geneste selectie statements. • Sterk scheiding tussen data en code. Door het DoD raakt COBOL wijd verspreid en het werd zelfs een ANSI standaard in 1968. Gebruiksgemak blijft een grote drijfveer voor het ontwikkelen van nieuwe talen. Dat bewijzen ook de ontwerp doelen van BASIC in 1963: makkelijk te leren, snel resultaat, programmeertijd minimaliseren. Bovendien wilt men de taal gratis beschikbaar maken voor priv´e en publiek. Basic is sterk gebaseerd op FORTRAN en is de eerste wijdverspreide taal met de opkomst van timesharing. 17
Tot op vandaag bestaat het populair dialect Visual Basic. Gedurende de jaren 60 is er een verschil tussen data verwerking en wiskundige computers. Er was echter een groeiende vraag naar beide types en er werd dus gekeken of beiden niet konden worden gecombineerd. Hiervoor was dan natuurlijk ook een nieuw programmeertaal nodig die zowel voor data verwerking als voor wiskundige berekeningen geschikt was en voordelen bood uit zowel FORTRAN als COBOL. Daarom ontwierp IBM in samenwerking met SHARE PL/I in 1964 Ook hier vinden we weer bekende elementen in terug: • Exception handling • Pointer data type • Concurent exectution van subroutines Midden jaren 60 wordt de basis voor Data Abstraction gelegd. Simula 67 is sterk gebaseerd op ALGOL 60 en introduceert classes. Verder werd er een nieuwe ALGOL 68 ontworpen die onder meer user-define data structures, reference types en dynamic arrays ondersteunde. Zelf was het geen groot succes maar het vormde wel een sterke basis voor Pascal, C en Ada. Pascal werd ontworpen in 1971 en was weinig vernieuwd maar wel klein en gemakkelijk waardoor het vaak werd gebruikt in het onderwijs. In 1972 werd dan C ontwikkeld door Dennis Richie. De taal werd speciaal voor het programmeren van operating systems ontworpen en werd zeer snel groot. Het bood een zeer uitgebreide set aan operators aan maar bleek al snel onveilig wegens het gebrek aan type checking. In 1975 begon men aan het ontwerpen van Ada om zo alle verworven kennis over software engineering en language design te verzamelen. Het werd een werk van lange adem en pas na acht jaar was de eerste volledige specificatie klaar. Pas twee jaar later volgde een degelijke compiler. Ondertussen ontstond in de jaren zeventig een ander paradigma: Object Oriented Programming. Xerox ontwikkelde toen immers Smalltalk wat de eerste volledige implementatie van een OOP taal was. Xerox was een grote promotor van OOP en ook pioniers in het design van een GUI. In 1980 volgde de volgende belangrijke speler in OOP land gebaseerd op C: C++. Begin jaren 90 volgde dan Java wat een enorme vereenvoudiging op C++ was. Bovendien ook een sterke verbetering qua security.
18
2 2.1
Theorie van Berekenen Vraag 1
Vraag. In de loop van de geschiedenis hebben wetenschappers/ingenieurs in verschillende contexten gedacht dat alles geconstrueerd/berekend kon worden, en dikwijls werd dat ook (later) tegengesproken. Geef daarvan een aantal voorbeelden en geef hun historische verbanden in het bijzonder voor de ontwikkelingen i.v.m. functies/algoritmen tijdens de 20ste eeuw. Bespreek ook in hoeverre die inzichten gestuurd zijn door technologische vernieuwingen. Antwoord. De Griekse wiskundigen hielden zich bezig met meetkunde. Vooral met het aspect wat men kan construeren aan de hand van bijvoorbeeld een passer en liniaal, passer en meetstok,... Men was ge¨ınteresseerd welke rekenkundige operaties men kon uitvoeren op een getallenlijn. Met behulp van een passer en liniaal kan men optellen, aftrekken, vermenigvuldigen en delen. Het is echter onmogelijk om een hoek in drie te delen, een kubus uit een kubus te construeren met dubbele oppervlakte en de kwadratuur van een cirkel te construeren. Het duurde echter tot midden de 19e eeuw dat dit bewezen werd. Lange tijd is dan ook intensief gezocht naar methodes om deze problemen alsnog op te lossen. De Griekse wiskundigen hielden zich bezig met het ontwikkelen van manieren (een soort voorlopers van algoritmen) om getallen uit te rekenen. De rekenkunde focuste zich op natuurlijke en rationale getallen en probeerde hier operaties op te defini¨eren, bijvoorbeeld: hoe kan men een vierkantswortel van een natuurlijk getal uitrekenen. √ Men kon echter aantonen dat 2 noch een geheel noch een rationaal getal was. Bijgevolg kon men met deze constante geen operaties uitvoeren. De Grieken concludeerden dat meetkunde – waar worteltrekking van om het even welke afstand wel mogelijk is – krachtiger moest zijn dan rekenkunde. Logica was een derde poot waar de Grieken zich reeds mee bezighielden. Vanaf de 20e eeuw werd logica onder impuls van de Wiener Kreis populair. De Wiener Kreis zal logica dan ook als het uitstekende middel om kennis te genereren uit andere kennis: het zogenaamde Entscheidungsproblem van David Hilbert. Men voerde vooral onderzoek naar het machinaal manipuleren van logische formules. Kurt G¨ odel toonde aan dat dit probleem onoplosbaar is: de zogenaamde onvolledigheidstelling. Eenzelfde fenomeen zien we bij de ontwikkelingen op gebied van functies en algoritmen. Rond de jaren ’20 en ’30 vraagt Kurt G¨ odel zich af – onder impuls van de problemen met logica – welke functies berekend kunnen worden. G¨odel definieert de Primitief berekenbare functies: een verzameling functies die intu¨ıtief berekenbaar zijn. Wilhelm Ackermann toont echter een functie die buiten deze verzameling valt, maar nog steeds berekenbaar is. Kurt G¨ odel breidt hierop de definitie uit, maar verliest hiermee de eigenschap dat de functie overal gedefinieerd moet zijn. De poging faalt dus. Ook Alonzo Church hield zich met berekenbaarheid bezig, maar Samenvattend kan men stellen dat men in de geschiedenis met verschillende hulpmiddelen heeft proberen te rekenen, maar dat men telkens snel inzag dat bepaalde problemen inherent minder evident waren op te lossen dan anderen. Altijd heeft men lange tijd geprobeerd om alsnog een methode te vinden: denk bijvoorbeeld aan de vele gebruikers op stackoverflow.com die nog steeds XML proberen te parsen met reguliere expressies. Het duurde lang alvorens men deze pogingen opgaf en nog langer alvorens er een theoretisch inzicht kwam waarom deze hulpmiddelen ontoereikend waren.
19
De technologie heeft bij dit theoretisch inzicht amper een rol gespeeld, behalve het populariseren van de problemen (in een concrete context).
2.2
Vraag 2
Vraag. Schets de oorsprong en de evolutie van computationele complexiteitsleer in de 20ste eeuw. Antwoord. Al bij het ontstaan van informatica
20
3 3.1
Artifici¨ ele Intelligentie Vraag 1
Vraag. Wat is de Turing test? Het Chinese Room argument? De Loebner Prize? Geef ook een kritische reflectie op hun rol voor de AI. Contrasteer deze visie op AI met de visie die afgeleid is uit een vergelijking van artificial intelligence met artificial flight. Antwoord.
3.2
Vraag 2
Vraag. Bespreek de evolutie van het AI onderzoek van de beginjaren tot nu. Wat kan je er uit leren? Vergelijk ook de thema’s die in de beginjaren onderzocht werden met de huidige thema’s? Wat valt op? Antwoord.
21
4
Geschiedenis van het Internet
4.1
Mijlpalen
Vraag. Geef en bespreek enkele belangrijke mijlpalen in de geschiedenis van het internet. Antwoord. Algemene mijlpalen: • 1961: Eerste onderzoek met ondermeer paper over packet switching door Leonard Kleinrock (MIT). • 1969: Eerste twee knopen van ARPANET: verbinding tussen UCLA en SRI. Al snel wordt het netwerk uitgebreid tot 4 nodes met UCSB en University of Utah. • 1972: Eerste e-mail over ARPANET en eerste publieke demonstratie. • 1974: Samenwerking Vint Cerf en Robert Kahn leidt tot TCP/IP protocol dat NCP vervangt. Vier jaar later in 1978 wordt TCP en IP gesplitst wat het ontstaan van UDP toelaat. In 1982 wordt TCP de als standaard gedeclareerd door de DoD. • 1984: Komst van DNS. Het jaar daarop wordt USC verantwoordelijk voor DNS root beheer en SRI (Stanford) voor NIC registraties. • 1985: Oprichting van het NSFnet (National Science Foundation Network), research netwerk in de Verenigde Staten. • 1989: Definitie WWW door Tim Berners-Lee bij CERN. Eveneens het jaar waarin voor het eerst IP connectiviteit in Europa tot stand komt. • 1990: Begin van het commercieel Internet. Mijlpalen specifiek voor Belgi¨e • 1988: Ontstaan .be TLD. • 1991: Verbinding met het Internet. • 1994: Start commercieel internetdiensten.
4.2
Beheer Internet
Vraag. Velen stellen dat het beheer van het internet doorheen de jaren nogal chaotisch is verlopen. Geef uw visie daarop. Antwoord. Het klopt dat er verschillende instanties verantwoordelijk zijn voor het beheer van verschillende aspecten. Dit is echter niet onverwacht gezien het gedecentraliseerd en internationaal karakter. • 1975: Operationeel beheer wordt overgedragen aan het huidige DISA (Defense Information Systems Agency). • 1983: Het IAB (Internet Activities Board) wordt opgericht. Zij vormen ondermeer: 22
– IETF: Internet Engineering Task Force (1986) – IRTF: Internet Research Task Force (1986) • 1989: RIPE (Reseaux IP Europeens) wordt gevormd door de Europese service providers. Het doel is administratieve en technische cordinatie garanderen om pan Europees IP-netwerk te verwezenlijken. • 1990: IANA (Internet Assigned Numbers Authority) beschrijft de functie van het beheer van de DNS root zone en IPv4 pool. Deze functies worden gesponsord door de Amerikaanse overheid (DARPA). • 1995: Network Solutions (huidige VeriSign) is eerste registrar en krijgt het beheer van de root in handen. • 1998: De ICANN (Internet Corporation for Assigned Names and Numbers) wordt opgericht. Deze VZW beheert niet de inhoud van het internet maar co¨ordineert de toegang ertoe. Door een multi-stakeholder model blijft hun macht echter beperkt. In hetzelfde jaar leidt een overeenkomst tussen ICANN en USC tot de overdracht van IANA naar ICANN. Vanaf 2000 voert ICANN de IANA functies uit.
4.3
Internet in Belgi¨ e
Vraag. Geef enkele belangrijke stappen bij de invoering van het internet in Belgi¨e. Antwoord. Voor de invoer van .be zijn er twee netwerken in Belgi¨e. • Bitnet/EARN – Netwerk tussen onderzoeksinstellingen gesponsord door IBM. In Belgi¨e geponsord door de NFWO zodat het gebruik ervan gratis is. – Het computercenter van de KU Leuven is de centrale knoop voor Belgi¨e. – E-mail: elke gebruiker heeft een uniek naam (jean@BLEKUL60). • UUCP (EUNET) – Unix netwerk, betaalbaar door de kosten te delen. – Netwerk met twee centrale knopen: het departement CW van de KU Leuven en het Philips research lab. – E-mail: vormde pad door netwerk (mcsun!prlb2!kulcs!jean). Dit verschilde al naar gelang de locatie. Het was mogelijk e-mails te sturen tussen deze netwerken via gateways. Het is duidelijk dat dit zeer onhandig was aangezien gebruikers unieke namen vereist waren en gebruikers de topologie van het netwerk diende te kennen. In 1988 wordt initiatief genomen door de beheerders van EARN en EUnet en wordt Pierre Verbaeten aangesteld als verantwoordelijke. De .be-naamservers bevonden zich in de VS en er waren twee MX records (.be en .ac.be) al naargelang het netwerk. IP connectiviteit komt echter zeer traag op gang met commerci¨ele diensten pas vanaf 1994. In 1999 wordt DNS.be opgericht. Sinds 200 zijn ze verantwoordelijk voor het beheer van de Belgische domeinnaam. Sindsdien liggen er geen beperkingen meer op domeinnamen en is de registratie ervan een automatisch proces. 23
5 5.1
Informatica en Samenleving Privacy
Vraag. In de zogenaamde “informatiesamenleving” lijkt privacy een belangrijk punt van bezorgdheid te zijn: geregeld halen casussen in verband met privacy en (het gebruik van) IT de pers en er werd, met name in Europa, heel wat wetgeving ontwikkeld. Kies en bespreek enkele opvallende aspecten van de rol die ICT speelt of kan spelen met betrekking tot privacy in (bijvoorbeeld) de volgende contexten: gegevensopslag en verwerking, camerabewaking en beeldverwerking, internet en internetgebruik, ubiquitous computing. Welke persoonlijke, professionele en maatschappelijke keuzes zijn hiermee gemoeid? Wat kan daarin de rol zijn van een professionele informaticus? Antwoord. Gegevensopslag en Verwerking ICT maakt het vergaren, opslaan en verwerken van gegevens zeer goedkoop. Camerabewaking en Beeldverwerking Internet en Internetgebruik Wanneer we ons op internet begeven worden we automatisch getrackt aan de hadn van ons IP-adres, cookies, logs, etc. Ubiquitous Computing
5.2
Internet als Communicatie- en Informatiekanaal
Vraag. Bespreek kort hoe “anoniem” en “open” het internet is als communicatie- en informatiekanaal. Wat zijn daarvan een aantal voor- en nadelen? Welke mogelijkheden zie je voor het al dan niet reguleren en controleren van het internet in de min of meer nabije toekomst? En wat zouden daarvan de eventuele voor- en nadelen zijn? Kunnen informatici in deze context specifieke bijdragen leveren?
5.3
Informaticawetenschappen in het (Secundair) Onderwijs
Vraag. Onlangs werd de term “informaticawetenschappe” voorgesteld om te verwijzen naar informatica als wetenschap, en dus niet zozeer als vaardigheidsdiscipline om met ICT te leren werken, zoals het momenteel op ruime schaal in ons lager en secundair onderwijs wordt begrepen. Bespreek kort wat de inhoud van informatica als wetenschap in ons (leerplicht)onderwijs zou kunnen en moeten zijn, en waarom. Vergelijk met de huidige situatie in het Vlaams secundair onderwijs en bespreek benaderingen om die te verbeteren op basis van recente voorstellen in onze buurlanden.
5.4
Professionele Ethiek voor Informatici
Vraag. Bespreek de inhoud en het belang van een ethische “code” voor professionele informatici, zoals bijvoorbeeld voorgesteld door ACM (http://www.acm.org/about/code-of-ethics). Hoe verhoudt deze code zich tot de belangrijkste maatschappelijke kwesties die we bespraken in de sessie over ICT/informatica en samenleving? Bespreek ook de relevantie (of het gebrek daaraan?) van een dergelijke code naast wetgeving en arbeidscontracten.
24
6
Natuurlijke Taalverwerking
6.1
Evolutie & Innovaties
Vraag. Schets de evolutie van de natuurlijke taalverwerking over de voorbije decennia aan de hand van belangrijke innovaties. Wat zijn de sturende factoren in deze evolutie? Illustreer met voorbeelden. Zijn er parallelle evoluties waar te nemen in andere domeinen van de informatica? Antwoord. We bespreken de evolutie aan de hand van de belangrijke stromingen gecombineerd met voorbeelden. • 1940 - 1960: Na WOII komt men tot fundamentele inzichten die leiden tot probabiliteitsleer, informatietheorie en automaten. – McCulloch-Pitts neuron – Probabilistische algoritmen voor spraakherkenning – Eindige-toestandsmachines
– Claude Shannon: automata voor taalverwerking – Noam Chomsky: formele taaltheorie
• 1957 - 1970: Twee kampen: – Symbolisch, Kennisgebaseerd: Computerwetenschappen: chomsky, dynamisch programmeren. Resulteert in ontstaan artifici¨ ele intelligentie – Statistische benadering: Statistiek, Elektrotechniek: Bayesiaanse methoden, psychologische modellen. • 1970 - 1983: Vier paradigma’s – Statistische Benadering: Verborgen Markov modellen. – Logicagebaseerd: Onderzoek rond grammatica’s. – Kennisgebaseerd: LUNAR vraag-antwoordsysteem. – Discoursmodellen: Substructuren van een discours • 1983 - 1993: Teruggrijpen naar verleden – Empirisme: Datagedreven modellen die worden ge¨evalueerd aan de hand held-out datasets. – Eindige-toestandsmachines: Voor fonologische, morfologische en syntactische analyse. • 1994 - 1999: Fusie. Verdere integratie van datagedreven modellen, ook voor taken die doorgaans met grammatica’s of symbolische technieken werden hehandeld. Dit is te wijten aan de toename van snelheid en rekenkracht en de ontwikkeling van nieuwe algoritmen. Enkele voorbeelden:
25
– Annoteren van part-of-speech – Syntactische ontleding van een zin – Informatie-extractie
– Coreferentenresolutie – Automatisch vertalen
• 2000: Opkomst machinetaal en machine reading met ongesuperviseerde en semi-gesuperviseerde methoden: – Statistische benaderingen van automatisch vertalen – Probablistische topicmodellen – Recurrente neurale netwerken Daarnaast ook een grote interesse in Machine Reading wat betekent dat getracht wordt om machines tekstuele informatie te laten lezen en begrijpen. De sturende factoren zijn doorgaans politiek (militair) of economisch. Automatisch vertalen was bijvoorbeeld sterk gestuurd door de koude oorlog (Russisch) en de oprichting van de Europese Economische Gemeenschap. Anderzijds deed het World Wide Web de vraag naar informatieontsluiting enorm stijgen samen met de nood aan automatisch vertalen, informatie-extractie en samenvatten van gegevens voor visualisatie. Tenslotte speelt technologie zelf een zeer grote rol, meer bepaald de enorme toename van computerkracht.
6.2
Automatisch Vertalen
Vraag. Schets de evolutie van het automatisch vertalen van de natuurlijke taal over de voorbije decennia aan de hand van belangrijke innovaties. Wat zijn de sturende factoren in deze evolutie? Illustreer met voorbeelden. Antwoord. • Hoewel automatisch vertalen is al lang een droom blijven doorbraken uit tot na de tweede wereldoorlog. In de 17e eeuw beschikte men al over talen om correct te redeneren en werd een mechanisch woordenboek gesuggereerd. • Warren Weaver suggereert in 1949 om statistiek en cryptografische technieken uit de tweede wereldoorlog toe te passen om de onderliggende logica en universele kenmerken van de taal te exploreren. Als snel worden enerzijds statistische, empirische benaderingen (beperkt computerkracht) gebruikt en anderzijds fundamentele lingustische benaderingen (logica, informatietheorie). • De koude oorlog zorgt ervoor dat zowel in de VS als in Rusland de aandacht voor het automatisch vertalen van en naar het Russisch toeneemt. De oprichting van de Europese Economische Gemeenschap in 1957 creert noodzaak voor automatisch met onderzoek in verschillende Europese universiteit tot gevolg. • In 1967 verschijnt een vernietigend rapport van van de ALPAC (Automatic Language Processing Advisory Committee) dat stelt dat automatisch vertalen te veel post-processing vraagt. Dit leidt tot een stille decade.
26
• In 1978 ging het ambitieuze Eurotra project van de Europese Commissie van start. Theoretisch lingu¨ıstisch en computationeel lingu¨ıstisch onderzoek met kennisgebaseerde en interlingua technieken. Er werd echter niet in geslaagd een werkend prototype te leveren en de industri¨ele partnerschappen wierpen geen vruchten af. • Eind jaren ‘80 onstaat Statistical Machine Translation (SMT). Dit maakt gebruik van het aligneren van woorden, frasen en zinnen in parallel corpus en het toepassen van geavanaceerde statische methoden hierop. Een voorbeeld van dergelijke corpus zijn de Canadese parlementaire documenten (Engels-Frans). Peter Brown (IBM) publiceert deen dergelijk systeem 1988 wat resulteert in het zeer invloedrijke Candide systeem. De komende jaren volgen nog verschillende toolkits (EGYPT, Moses). Een grote mijlpaal is het commercieel statistisch MT systeem van Google in 2007.
6.3
Automatisch Verstaan
Vraag. Schets de evolutie van het automatisch verstaan van de natuurlijke taal over de voorbije decennia aan de hand van belangrijke innovaties. Wat zijn de sturende factoren in deze evolutie? Illustreer met voorbeelden. Antwoord. • Het verstaan van tekst begon halfweg de jaren ‘60 met informatie-extractie: het herkennen van patronen. In tegenstelling tot vandaag, waar deze patronen automatisch geleerd worden, werden deze toen nog met de hand opgesteld. • In dezelfde periode ontstaat Elize door de hand van Joseph Weizenbaum (MIT). Eliza was het eerste programma dat in staat was een dialoog te voeren. Aan de hand van patronen werd de input naar output vertaald. • Begin jaren ‘70 introduceert Roger Schank conceptual dependency theory. Deze theorie herkent een aantal primitieven en predicaten in een taal. Zinnen kunnen zo worden voorgesteld als acties met argumenten en omstandigheden. Dit laat toe zinnen te rangschikken in een script. Deze ontwikkeling heeft nog steeds een grote invloed op de huidige semantisch analyse van tekst. • Terry Winograd ontwikkelt SHRDLU, een van de eerste vraag-antwoordsystemen. Het voorziet scripts, plannen, goals en semantische rollen voor het verwerken van complexe bevelen in de natuurlijke taal. Zeer invloedrijk op het gebied van robotica. De stimulansen waren voornamelijk competities (MUC, ACE, TAC), waarvan verscheidene werden gefinancierd door het Amerikaanse National Institute of Standards and Technology (NIST). Een ander motief was het extracten van kennis uit biomedische teksten (economisch) en het aanleggen van automatisch kennisbanken na 9/11 (politiek).
6.4
Multidisciplinair Onderzoeksgebied
Vraag. Leg uit waarom natuurlijke taalverwerking als een multidisciplinair onderzoeksgebied wordt beschouwd. Antwoord. Natuurlijke taalverwerking is een multidisciplinair omdat het aspecten combineert van computerwetenschappen, elektrotechniek, statistiek en lingu¨ıstiek.
27
6.5
Empirisme
Vraag. Wat is empirisme? Verklaar aan de hand van een voorbeeld uit de natuurlijke taalverwerking. Antwoord. Empirisme is de veronderstelling dat kennis voortkomt uit proefondervindelijke ervaringen. Vanuit het standpunt van natuurlijke taalverwerking betekent dit dat de focus ligt op data-gedreven modellen die worden gevalideerd aan de hand van held-out datasets. Het schoolvoorbeeld is IBM Watson, een computer die in spreektaal gestelde vragen beantwoordt aan de hand van een verzameling (on)gestructureerde informatie.
6.6
Noam Chomsky
Vraag. Wat zijn de bijdragen van Noam Chomsky voor de natuurlijke taalverwerking? Evalueer kritisch deze bijdragen. Antwoord. Noam Chomsky schreef als professor aan MIT verschillende invloedrijke artikels die leidde tot de conclusie dat statische modellen niet in staat zijn om een volledig cognitief model van menselijke grammaticale kennis te genereren. Zijn theorie veronderstelt dat taalvermogen is aangeboren. Hij staat vooral gekend voor zijn bijdrage tot de formele taaltheorie met het ontwikkelen van contextvrije grammatica en generatieve grammatica. Deze laatste benvloedde onder meer head-driven phrase structure grammar, generalized phrase structure grammar, lexical functional grammar en combinatory categorial grammar.
6.7
IBM & Google
Vraag. Wat is de rol van grote bedrijven zoals IBM of Google in de ontwikkeling van taaltechnologie in het verleden en vandaag? Welke voordelen hebben deze bedrijven in vergelijking met kennisinstellingen? Antwoord. Beide bedrijven zijn zeer invloedrijk wat betreft statistische machinevertaling. IBM publiceert in 1988 resultaten van een puur statistisch gebaseerd vertaalsysteem. Enekele jaren laten ontwikkelt en patenteert het Candide, dat een zeer grote invloed heeft gehad. Google integreert in 2007 een commercieel statistisch MT systeem in Google Translate. Ze hebben als voordeel dat ze over een veel groter budget beschikken dan de doorsnee kennisinstelling.
28
7 7.1
Scientific computing Vraag 1
Vraag. Leg uit hoe de evolutie van de hardware de evolutie van numerieke software heeft benvloed. Je kan dit doen specifiek voor numerieke lineaire algebra (stelsels en eigenwaardeproblemen). Leg uit waarom nieuwe software werd ontwikkeld.
7.2
Vraag 2
Vraag. Geef drie belangrijke uitdagingen voor toekomstige supercomputers.
7.3
Vraag 3
Vraag. Energiereductie is een belangrijk aspect geworden bij de ontwikkeling van nieuwe hardware. Leg uit hoe men met minder energie toch snellere chips maakt. Welk zijn de consequenties voor de ontwikkeling van software?
7.4
Vraag 4
Vraag. Leg uit wat er bedoeld wordt met de Accidental Benchmarker op bijgevoegde slide (benchmarker.pdf )
7.5
Vraag 5
Vraag. Leg uit waar Scalapack voor staat. Leg de figuren uit op bijgevoegde slide (scalapck.pdf )
29
8 8.1
Computer Graphics Schermen
Vraag. Hoe ziet de evolutie van beeldschermen eruit in de geschiedenis? Heeft deze voor bepaalde veranderingen gezorgd? Antwoord. De eerste beeldschermen waren oscilloscope displays. Deze schermen konden enkel met vectoren werken en dus lijnen trekken van punt tot punt. Ze hadden geen kleur, zelfs geen zwart-wit. Meestal hadden deze schermen een groene kleur. De beeldschermen hebben een sterke evolutie gekend van de eerste vector displays naar CRT schermen die met pixels begonnen werken, naar de platte LCD schermen zoals we ze vandaag kennen. Het aantal pixels is ook constant aan het verhogen op een scherm zoals 1080p en nu zelfs 4k. Hierdoor passen de algoritmen om beeld te maken ook veel aan en hebben we meer en meer geheugen nodig om het beeld te tonen op de schermen. Want deze beelden die gemaakt worden door steeds krachtigere GPU’s moeten ook opgeslagen worden om te tonen op het scherm. Tegenwoordig zijn er al 24 bits nodig per pixel op het scherm.
8.2
Animatiefilm
Vraag. De eerste volledige CG animatiefilm kwam er in 1995 (Toy Story), alhoewel graphics reeds gebruikt werden vanaf de jaren 60 in bvb vliegtuig simulaties en jaren 70 (tv commercials) en jaren 80 (computer games). Waarom?
30
A
Personenregister
Tabel 1 geeft een overzicht van de personen die vermeld werden tijdens de cursus. De derde kolom geeft aan hoe vaak de persoon voorkomt wat een indicatie geeft van hoe belangrijk deze persoon is. Persoon
Jaar
#
Philippe Dreyfus Jaques Perret Brahmagupta Al Khowarizmi Leonardo van Pisa Simon Stevin Leonardo da Vinci Wilhelm Schickard John Napier Blaise Pascal Samuel Morland Gottfried Leibniz Philipp Hahn Charles de Colmar Willgodt Odhner Frank Baldwin Lon Boll Otto Steigner Henri Genaille Edmund Gunter William Oughted William Thompson Joseph-Marie Jacquard Herman Hollerith Charles Babbage Joseph Henry Lee De Forest W. Eccles F. Jordan Walter Bothe Charles Wynn-Willimas George Stibitz Kurt Gdel Alonzo Church Alan Turing
1962 1955 650 750 1170-1250 1548-1620 1452-1519 1595-1634 1550-1617 1623-1662 1625-1695 1646-1716 1739-1790 1785-1870 1845-1903 1842-1923 1870-1913 1858-1923 1890 1581-1626 1574-1660 1824-1907 1752-1834 1860-1929 1791-1871 1835 1906 1919 1919 1942 1931 1937 1931 1936 1912-1954
1 1 1 1 1 1 1 1 4 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 5
Claude Shannon
1948
1
31
Beschrijving
Fibonacci “Den thienden” Ontwerp rekenmachine Rekenklok Staafjes van Napier, Logaritmen Pascaline 1642 rekenmachine 1666 Staffelwalscalculator 1694 Serieproductie Staffelwalscalculator Arithmomtre 1820 Rekenmachine (nokkelwiel) 1878 Rekenmachine (nokkelwiel) Vermenigvuldiger Millionaire 1892 Rekenstaafjes van Genaille (-¿ Napier) Rekenliniaal Rekenliniaal Getijdenpredictor 1870 Weefgetouw van Jacquard Ponskaartenmachines van Hollerith Difference Engine, Analytic Engine Elektromagetische Relais Elektronenbuis Flip-flop Flip-flop EN logische poort Binaire teller Binaire opteller Onvolledigheidsstelling Lambdacalculus, onberekenbaarheid Onberekenbaarheid 1936, Automatic Computing Engine A mathematica theory of communication
Persoon
Jaar
#
Beschrijving
Hugo Koch Frederic William Tom Kilburn Maurice Wilkes Konrad Zuse John Atansoff Clifford Berry Presper Ecker John Mauchly Howard Aiken John von Neumann John Bardeen Walter Brattain William Shockley An Wang Grace Hopper
1920 1948 1948 1949 1940 1942 1942 1946 1946 1944 1944 1948 1948 1948 1951 1952
1 2 2 2 5 2 2 3 3 2 1 1 1 1 1 2
John Backus G. Dummer Jack Kilby Robert Noyce Moore Ken Olsen Halan Anderson Seymour Cray Dan Bircklin Bob Frankston
1957 1952 1958 1958 1957 1957 1957 1965 1979 1979
1 1 1 1 1 1 1 1 1 1
Engima Manchester Baby Computer + Mark I Manchester Baby Computer + Mark I EDSAC Z1-Z4 + Plankalkl ABC Computer ABC Computer ENIAC+Univac ENIAC+Univac Harvard Mark I Computer Stored program Transistor Transistor Transistor Kerngeheugen Automatic Programming (Compilers/Assemblers) + COBOL Fortran Concept geintegreerd circuit Integrated Circuit Integrated Circuit Wet van Moore Digital Equipment Corporation (DEC) Digital Equipment Corporation (DEC) Supercomputers VisiCalc VisiCalc
32