Rekenaarwetenskap

Rekenaarwetenskap is die studie van berekening en inligtingverwerking, asook die implementering daarvan in inligtingstegnologie, in beide hardeware (apparatuur) en sagteware (programmatuur). In die praktyk omvat dit 'n wye aantal velde – van die abstrakte studie van algoritmes, en formele grammatikas tot meer konkrete onderwerpe soos programmeertale, bedryfstelsels, rekenaarnetwerke, databasisse en beheerstelsels. As 'n wetenskaplike dissipline, sluit dit aan by wiskunde, fisika  en elektronika, maar verskil heelwat en is 'n dissipline in eie reg.

Rekenaarwetenskaplikes bestudeer wat programme kan of nie kan doen nie (onderwerpe soos berekenbaarheid en kunsmatige intelligensie is ter sprake), hoe programme sekere take effektief kan doen, hoe programme verskillende tipes inligting moet stoor en terugkry, en hoe programme en mense met mekaar kommunikeer.

Rekenaarwetenskap gaan net so veel oor rekenaars as wat sterrekunde oor teleskope gaan.
 – toegeskryf aan Edsger Dijkstra

Rekenaarwetenskap is nie so oud soos fisika nie; dit kom 'n paar honderd jaar agterna. Dit beteken egter nie dat daar aansienlik minder op die rekenaarwetenskaplike se bord is as op die fisikus s'n nie: jonger mag dit wees, maar dit het 'n baie meer intense opvoeding gehad!
 – Richard Feynman

Die Church-Turing-stelling sê dat alle bekende algemene rekentoestelle  in wese ekwivalent is in wat hulle doen, alhoewel hulle verskil wat tyd- en ruimtedoeltreffendheid betref. Meeste navorsing in rekenaarwetenskap het te make met von Neumann-rekenaars of Turing-masjiene (rekenaars wat een klein, toegewyde taak op 'n slag uitvoer). Hierdie modelle stem ooreen met meeste werklike rekenaars wat vandag gebruik word. Rekenaarwetenskaplikes bestudeer ook ander masjiene, soos parallelle- en kwantumrekenaars.

Rekenaarwetenskap het sy wortels in elektroniese ingenieurswese, wiskunde en linguistiek. In die laaste paar dekades van die 20ste eeu is rekenaarwetenskap erken as 'n dissipline in eie reg en het dit sy eie metodes en terminologie ontwikkel.

By universiteite is rekenaarwetenskap aanvanklik gedoseer vanuit die wiskundedepartemente, maar deesdae het meeste universiteite aparte departemente vir rekenaarwetenskap en/of informatika.

Die grootste eerbewys in rekenaarwetenskap is die Turing-toekenning.

 Verwante terreine 
Rekenaarwetenskap is naverwant aan verskeie ander wetenskapdissiplines. Hierdie dissiplines oorvleuel heelwat, alhoewel daar ook belangrike verskille bestaan.

 Inligtingswetenskap is die studie van data en inligting, hoe om dit te interpreteer, analiseer, stoor en oor te dra. Inligtingswetenskap het begin as die grondslag van die wetenskaplike analise van kommunikasie en databasisse.
 Programmering beklemtoon die ontwerp en skryf van programme in rekenaartale en vertaling na masjienkode.
 Sagteware-ingenieurswese beklemtoon bestuur van analise, ontwerp, bou en toets van programme.
 Inligtingstelsels is die toepassing van berekening om die aktiwiteite van 'n organisasie te ondersteun: werking, installering en onderhoud van die rekenaars, sagteware en data.
 Bestuursinligtingstelsels (BIS) is die subterrein van inligtingstelsels wat finansiële en personeelbestuur beklemtoon.
 Wiskunde deel baie tegnieke en onderwerpe met rekenaarwetenskap, maar is meer algemeen. In 'n sekere sin is rekenaarwetenskap die wiskunde van berekening.
 Rekenaaringenieurswese is die analise, ontwerp en bou van rekenaarhardeware.
 Inligtingsekerheid is die analise en inwerkingstelling van inligtingstelselsekuriteit, insluitend kriptografie.

 Vakgebiede van groot belang vir rekenaarwetenskap 

 Wiskundige fondasies 
 Boolse algebra
 Diskrete wiskunde
 Grafiekteorie
 Inligtingsteorie
 Simboliese logika
 Waarskynlikheidsleer en Statistiek

 Teoretiese rekenaarwetenskap 
 Algoritmiese inligtingsteorie
 Berekenbaarheid
 Kriptografie
 Formele semantiek
 Teorie van berekening
 analise van algoritmes en probleme se kompleksiteit
 Logikas en die betekenis van programme
 Logika en formele tale
 Tiperingsteorie

 Hardeware 
(sien ook elektroniese ingenieurswese)
 Beheerstrukture en mikroprogrammering
 Geheuestrukture
 Afvoer en datakommunikasie
 Logika-ontwerp
 Geïntegreerde stroombane
 Grootskaalintegrasie-ontwerp
 Werkverrigting en betroubaarheid

 Rekenaarstelsel organisasie 
(sien ook elektroniese ingenieurswese)
 Rekenaarargitektuur
 Rekenaarnetwerke
 Verspreide verwerking
 Werkverrigting van stelsels
 Rekenaarstelselinwerkingstelling

 Sagteware 
 Rekenaarprogrammering en tegnieke
 Parallele programmering
 Programspesifisering
 Programverifikasie
 Sagteware-ingenieurswese
 Sagteware-optimering
 Sagteware-meting
 Sagtewarekonfigurasiebestuur
 Gestruktureerde programmering
 Objekoriëntasie
 Ontwerpspatrone
 Vrye sagteware en oopbronsagteware
 Programmeertale
 Bedryfstelsels
 Vertalers
 Leksikale ontleding
 Sintaktiese ontleding
 Semantiese ontleding

 Data en inligtingstelsels 
Datastrukture
 Datavoorstelling
 Data-enkripsie
 Datasamepersing
 Inligtingsteorie
 Lêers
 Lêerformate
 Inligtingstelsels
 Databasisse
 Inligtingberging en verkryging
 Inligtingkoppelvlakke en voorstelling

 Metodologieë 
 Simboliese en algabraïse manipulasie
 Kunsmatige intelligensie
 Rekenaargrafika
 Beeldverwerking en rekenaarsig
 Patroonherkenning
 Handskrifherkenning
 Spraakherkenning
 Simulasie en modellering
 Dokument- en teksverwerking
 Digitale seinverwerking

 Rekenaartoepassings 
 Administratiewe dataverwerking
 Wiskundige sagteware
 Numeriese analise
 Geoutomatiseerde stellingbewyse
 Rekenaaralgebra
 Fisiese wetenskappe en Ingenieurswese
 Berekeningschemie
 Berekeningsfisika
 Lewens- en mediese wetenskap
 Bio-informatika
 Berekeningsbiologie
 Mediese informatika
 Sosiale en gedragswetenskappe
 Geesteswetenskappe
 Rekenaargesteunde ingenieurswese
 Robotika
 Mens-rekenaar-interaksie
 Spraaksintese
 Bruikbaarheidsingenieurswese

 Rekenaarmilieu 
 Rekenaarindustrie
 Geskiedenis van rekenaarhardeware
 Rekenaars en opvoeding
 Rekenaars en die gemeenskap
 Rekenaargesteunde samewerking
 Regsaspekte van rekenaargebruik
 Bestuur van rekenaar- en inligtingstelsels
 Persoonlike rekenaars
 Rekenaar- en inligtingsekerheid
 Rekenaarwetenskap-pioniers 
 Gottfried Wilhelm Leibniz, die universele genie van die baroktyd, wat die binêre stelsel uitgevind het, die Leibnizrekenaar   – alhoewel hy destyds nie eens geweet het waarvoor mens dit kan gebruik nie, maar besef het dat dit baie nuttig sal kan wees. Daar is ook 'n boek oor hom geskryf, 'Rekene met nul en een', (Duits: Rechnen mit Null und Eins).

 Charles Babbage. Hy het verskeie meganiese optelmasjiene en een meganiese programmeerbare rekenaar ontwerp, maar nooit sy planne tot uitvoer gebring nie.
 John Backus, uitvinder van FORTRAN, die eerste praktiese hoërvlakprogrammeertaal en die Backus-Naur-vorm om formele taaksintaks mee te beskryf.
 James W. Cooley en John W. Tukey vir die Vinnige Fourier-transform en die impak daarvan op wetenskaplike navorsing.
 Ole-Johan Dahl en Kristen Nygaard, uitvinders van die proto-objekgeoriënteerde taal SIMULA.
 Edsger Dijkstra vir algoritmes, Goto considered harmful, nougesetheid en pedagogiek.
 Admiraal Grace Murray Hopper vir pionierswerk in die 1940's, een van die eerstes wat die noodsaaklikheid van hoërvlakprogrammeertale herken. Sy skryf die eerste vertaler. Haar idees beïnvloed die COBOL-taal grootliks.
 Kenneth Iverson, uitvinder van APL, vir sy bydrae tot interaktiewe programmering.
 William Kahan vir die IEEE-dryfpuntstandaard.
 Donald Knuth vir die The Art of Computer Programming-reeks.
 Ada Lovelace, beroemd as die wêreld se eerste rekenaarprogrammeerder.
 John von Neumann vir die ontwerp van die von Neumann-argitektuur waarop meeste hedendaagse rekenaars gebaseer is.
 Claude E. Shannon vir inligtingsteorie.
 Alan Turing vir berekenbaarheidsleer, het ook die Pilot ACE ontwerp.
 James H. Wilkinson vir die tegniek van "terugwaartse foutanalise"'' en vooruitgang op die gebied van matriksberekeninge. Wilkinson was ook 'n belangrike rolspeler in die ontwikkeling van die Pilot ACE, die eerste Britse rekenaar, in die laat 1940's.
 Konrad Zuse, bouer van 'n binêre rekenaar in die 1930's, waarvoor hy na bewering (as eerste) 'n teoretiese hoërvlakprogrammeertaal, Plankalkül, ontwerp het.

Sien ook 
 Internet

Eksterne skakels 

 Die "Jargon-lêer"
 Women and Computer Science, deur Ellen Spertus

Rekenaarwetenskap