# Informatica

Informatica, ook wel computerwetenschappen genoemd, is een vakgebied dat zich bezighoudt met het gebruik van computers en de onderliggende principes ervan om informatie te verwerken, te beheren en te analyseren. In een academische context maakt men vaak onderscheid tussen theoretische informatica, die de wiskundige en logische grondslagen bestudeert, en toegepaste informatica, die zich richt op de implementatie en toepassing in computersystemen.
Informatica kan worden onderverdeeld in veel verschillende vakgebieden en onderzoeksvelden. De theorie van berekenbaarheid en wiskundige logica vormen de grondslagen om informaticaproblemen op te lossen. Algoritmen en datastructuren worden wel gezien als de kern van de informatica. Computerarchitectuur richt zich op de werking van computeronderdelen, programmeren op het ontwerpen van software. De kunstmatige intelligentie streeft ernaar slimme, doelgerichte processen te ontwikkelen op basis van menselijk denken en leren.
Vanwege de vergaande overlap met andere wetenschappelijk en maatschappelijk belangrijke activiteiten, die alle gebruik maken van computers voor het verwerken van hun gegevens, is een strikte afbakening van de informatica niet mogelijk. Enkele gebieden die zich richten op toepassingen van informatica zijn onder meer beleidsinformatica, medische informatica en digitale veiligheid. Kennis van deze gebieden kan bijvoorbeeld worden gebruikt om bedrijfsprocessen te optimaliseren, klinische gegevens te analyseren en een veilige uitwisseling van informatie te waarborgen.

## Overzicht

De informatica is een multidisciplinaire wetenschap, ontstaan uit (onder meer) de wiskunde en de elektrotechniek. Enkele modellen in de informatica zijn daarnaast geïnspireerd op de biologie, zoals neurale netwerken en genetische algoritmes.

### Informatica versus computertechniek

Het begrip computerwetenschap is een wel gehanteerd synoniem voor informatica, maar deze term dekt de lading maar ten dele. Informatici houden zich niet (alleen) bezig met het bouwen van digitale apparatuur, maar gebruiken deze vooral om onderzoek te doen naar de opslag, verwerking en verspreiding van informatie. Informatietechnologie (ICT) is de tak van techniek die zich bezighoudt met het programmeren van computers en communicatiesystemen.
In het Engels worden afwisselend de termen computer science en computing science gebruikt; de eerste legt de nadruk op het apparaat, de tweede op de berekening/informatieverwerking die het uitvoert. De term informatics wordt niet gebruikt voor de informatica als geheel, maar op toepassingen bij de grootschalige informatieverwerking in andere wetenschapsgebieden, zoals de geneeskunde of het genoomonderzoek. Het laatste vakgebied heet bijvoorbeeld bio-informatics, dat in het Nederlands bekendstaat als bio-informatica. Een bio-informaticus is niet altijd opgeleid als informaticus, maar wel een deskundige in de informatieverwerking bij genoomonderzoek.

### Afbakening

Het gaat hier over de grenzen van de informatica, zowel van de wetenschap als van de bredere interpretatie van het vakgebied informatica. Als men het over de informatica als wetenschap heeft is het in ieder geval handig om het woord wetenschap te noemen, om communicatieve problemen te vermijden.
Ook bij de indeling van informaticaberoepen rijst er een probleem. Informaticaspecialisten (Computing professionals) worden in de nomenclatuur "Internationale classificatie van de beroepstypologie" (ISCO) gevat onder de categorie ISCO88 213, een onderdeel van de "intellectuele en wetenschappelijke beroepen" die hooggekwalificeerde beroepen bevat. De IT-technici horen hier dus niet bij.

## Geschiedenis

De moderne informatica stoelt op inzichten die deels van lang voor het begin van onze jaartelling stammen. In India en Mesopotamië stond rond 1500 voor Christus de rekenkunde, de kennis over hoe systematisch berekeningen uit te voeren met optelling en vermenigvuldiging, al op een hoog niveau: veel inzichten die gewoonlijk aan de oude Grieken worden toeschreven waren al bekend, zoals de stelling van Pythagoras en het systematisch oplossen van vierkantsvergelijkingen. De Grieken beschouwden het redeneren zelf als een soort spel dat aan bepaalde regels beantwoordt, zoals het syllogisme of de wet van de uitgesloten derde. Een grote invloed was Aristoteles, die ook nadacht over hoe werkelijkheid en de concepten die we gebruiken om deze te beschrijven systematisch te beschrijven.
Deze benadering en veel van de opgedane kennis raakten vergeten in Europa, maar ondergingen een renaissance vanaf de 10e eeuw in het Arabische rijk; een belangrijke bijdrage daarbij leverde de waarschijnlijk uit de buurt van het Aral-meer afkomstige Al-Chwarizmi, wiens leerboeken over het rekenen ook in Europa doordrongen en daarbij het rekenen met 0 en het idee van rekenen (algebra) als het uitvoeren van systematische procedures (algoritmen) introduceerden. De renaissance en verlichting in Europa gingen hierop door en brachten de wiskunde en logica heel veel verder. Daarbij kwam steeds duidelijker de vraag op de voorgrond in hoeverre rekenen en wiskundig redeneren te mechaniseren en automatiseren zijn. Rond 1840 beschreven wiskundigen als George Boole de basis van het logisch redeneren als wiskundige bewerkingen (booleaanse algebra). Ook ontstonden er machines waarvan de werking mechanisch te configureren was, zoals het Jacquard-weefgetouw (vanaf 1790), de mechanische rekenmachines van Charles Babbage (tussen 1834-1870), en de machines voor gemechaniseerde volkstellingsverwerking van Herman Hollerith (1880).
Begin 20e eeuw werd de wiskunde zozeer geformaliseerd dat vragen over de aard en betekenis van het wiskundige redeneren wiskundig konden worden geformuleerd en beantwoord. Kurt Gödel ontdekte (1930) dat je het logisch redeneren over rekenproblemen inderdaad als een vorm van mechanisch uitvoerbaar rekenen op kunt vatten, maar dat de consequentie is dat er dan onbeslisbare eigenschappen bestaan: eigenschappen van getallen, of andere wiskundig gedefinieerde objecten, waarvoor ondubbelzinnig gedefinieerd is of ze voor een bepaald object gelden of niet, maar waarvoor desondanks geen mechanische methode bestaat om gegeven een willekeurig object te bepalen of de eigenschap ervoor geldt of niet. Alan Turing introduceerde de turingmachine (1936), een wiskundig model van een zo simpel mogelijke gegevensverwerkende machine, om dit nog duidelijker te maken en ook te laten zien dat het er daarbij in wezen niet toe doet of de machine werkt op getallen of op andersoortige gegevens.
Deze twee ontwikkelingen samen, de praktische ontwikkeling van programmeerbare machines en de theoretische inzichten omtrent de mogelijkheden van zulke mechanische programmering, leidden uiteindelijk eind jaren 30 tot de eerste grote programmeerbare elektronische rekenmachines (digitale computers), met mensen als Konrad Zuse, Alan Turing en John von Neumann als pioniers. Zo werd het mechaniseren van het rekenen en redeneren langzamerhand praktische werkelijkheid.
Oorspronkelijk was computer de Engelse benaming voor een persoon die voor haar beroep berekeningen uitvoerde, een taak die vaak door vrouwen werd uitgevoerd. Menselijke computers werden bijvoorbeeld ingezet om tabellen voor de scheepvaart en astronomie op te stellen. Van het grootste belang was correctheid: een fout in een tabel is nu eenmaal niet direct zichtbaar en kan voor de gebruiker van de tabel grote gevolgen hebben.
In de jaren 50 werd de mechanische computer een commercieel product: verschillende firma's bouwden en verkochten computers, met IBM (begonnen als bouwer van de Hollerith-machines) als marktleider. In plaats van aan menselijke computers ontstond er behoefte aan programmeurs en andere deskundigen in het omgaan met de nieuwe mechanische computers; zij richtten een vakorganisatie op, de ACM, en maakten zich sterk voor algemene opleidingen van hoog academisch niveau, om mensen op te leiden die met grote deskundigheid en onafhankelijkheid de nieuwe machines tegemoet zouden kunnen treden. Voor deze nieuw op te richten opleidingen werden namen voorgesteld als computer science (Louis Fein, in Communications of the ACM, 1959) en (in Europa) informatica. Deze opleidingen zouden zich niet zozeer moeten richten op de computer als apparaat en hoe deze te construeren, maar op het programmeren ervan en het gebruik ervan bij de wiskundige modellering en analyse van problemen. Dit is nog steeds het geval.
Wat de theorie betreft bestaat de informatica vooral uit wiskunde: deels het toepassen van al eerder bestaande wiskunde, en deels specifiek voor de informatica ontwikkelde gespecialiseerde wiskunde, de theoretische informatica. Belangrijke onderdelen daarvan zijn algoritmiek, datamodellering, formeletalentheorie, en veel meer. Het praktische werk in de informatica en de theorie gaan hand in hand.

## Vakgebieden

De informatica bestaat zoals iedere andere wetenschap uit een grote verscheidenheid aan subdisciplines, waarvan de grenzen meestal zeer moeilijk te onderscheiden zijn. Iedere strikte indeling is dan ook vrij kunstmatig.
De voornaamste zijn:
* Fundamentele informatica: betreft onder andere datastructuren, algoritmes, formele talen-, berekenbaarheids-, complexiteits- en grafentheorie.
* Informatie- en gegevensbeheer: rond databanken en datamining.
* Technisch-wetenschappelijk rekenen: betreft vakken als computergraphics, bio-informatica, wetenschappelijk programmeren en computeraritmetiek.
* Kunstmatige intelligentie: betreft onderwerpen als toegepaste logica, optimalisatietechnieken, neurale netwerken en kennisrepresentatie.
* Software engineering: omtrent softwareontwikkeling en zaken als softwaremetrieken, ICT-projectmanagement, formele specificatietechnieken, software-re-engineering en verificatie van programmacorrectheid.
* Computernetwerken en communicatiesystemen
* Mens-computerinteractie
* Computerbeveiliging en cryptografie
Softwareconstructie of software-engineering wordt hoe langer hoe meer beschouwd als een aparte ingenieursdiscipline die geen onderdeel meer is van de informatica maar er uiteraard wel nauw aan verwant is. Dit is vergelijkbaar met elektrotechniek die ooit is afgesplitst van de natuurkunde. Op hoe langer hoe meer universiteiten wordt software engineering dan ook als een aparte opleiding ingericht, naast de bestaande informaticaopleiding.

## Toepassing

In de meeste gevallen vereist toepassing ervan, naast de eigenlijk informatica-kennis, tevens kennis op het vlak van wiskunde, bedrijfskunde en software engineering.
Echter, toepassing ervan in een bredere technisch-industriële context vereist bovendien vaak een vrij grote kennis op het vlak van elektrotechniek (zowel elektronica als communicatie), numerieke technieken, technische bedrijfskunde en soms zelfs natuurkunde, scheikunde en werktuigbouwkunde. Deze toepassing gebeurt dan vaak door ingenieurs en/of in samenwerking met ingenieurs.
Als voorbeelden van dit laatste denken we bijvoorbeeld aan technische automatisering in fabrieken, telecommunicatie, cybernetica, simulering van scheikundige processen, automatische raketsturing, spraakherkenning, biometrie, optimalisering van bedrijfsprocessen etc.
Vele informatici vinden echter ook werk in takken van het bedrijfsleven waar informatie moet worden verkregen uit een grote stapel data (zie datamining).

## Belangrijke informatici

* Edsger Dijkstra, grote bijdragen bij gedistribueerde systemen en bij algoritmen, zie bijvoorbeeld het Dijkstra-algoritme
* Alan Turing, bekend van onder andere de turingmachine en de turingtest
* Bill Gates, de medeoprichter van Microsoft
* Ken Iverson, een programmeur bekend door onderzoek naar het gebruik van wiskundige notaties in programmeertalen en methoden
* Tony Hoare, de bedenker van het sorteeralgoritme quicksort en Hoarelogica
* Ken Thompson en Dennis Ritchie, de grondleggers van Unix (oorspronkelijk in assembler)
* Brian Kernighan en Dennis Ritchie ontwikkelden C dat de verdere ontwikkeling van Unix mogelijk maakte
* Dave Cutler en Gordon Bell ontwikkelden VMS en VAX (het besturingssysteem en de hardware werden tezamen ontworpen)
* Niklaus Wirth ontwikkelde de programmeertalen Pascal en Modula-2
* Donald Knuth ontwikkelde TeX en schreef The Art of Computer Programming
* Andrew S. Tanenbaum, ontwikkelaar van Minix
* Linus Torvalds, bekend vanwege zijn werk aan de Linuxkernel
* Tim Berners-Lee en Robert Cailliau, bedenkers en grondleggers van het wereldwijde web