Computer Science: From Wikipedia, The Free Encyclopedia
Computer Science: From Wikipedia, The Free Encyclopedia
Computer Science: From Wikipedia, The Free Encyclopedia
ComputerscienceWikipedia
Computerscience
FromWikipedia,thefreeencyclopedia
Computerscienceisthestudyofthetheory,experimentation,
andengineeringthatformthebasisforthedesignanduseof
computers.Itisthescientificandpracticalapproachto
computationanditsapplicationsandthesystematicstudyof
thefeasibility,structure,expression,andmechanizationofthe
methodicalprocedures(oralgorithms)thatunderliethe
acquisition,representation,processing,storage,communication
of,andaccesstoinformation.Analternate,moresuccinct
definitionofcomputerscienceisthestudyofautomating
algorithmicprocessesthatscale.Acomputerscientist
specializesinthetheoryofcomputationandthedesignof
computationalsystems.[1]
Itsfieldscanbedividedintoavarietyoftheoreticaland
practicaldisciplines.Somefields,suchascomputational
complexitytheory(whichexploresthefundamentalproperties
Computersciencedealswiththetheoretical
ofcomputationalandintractableproblems),arehighlyabstract,
foundationsofinformationandcomputation,
whilefieldssuchascomputergraphicsemphasizerealworld
togetherwithpracticaltechniquesforthe
visualapplications.Otherfieldsstillfocusonchallengesin
implementationandapplicationofthese
implementingcomputation.Forexample,programming
foundations.
languagetheoryconsidersvariousapproachestothe
descriptionofcomputation,whilethestudyofcomputer
programmingitselfinvestigatesvariousaspectsoftheuseofprogramminglanguageandcomplexsystems.
Humancomputerinteractionconsidersthechallengesinmakingcomputersandcomputationsuseful,usable,and
universallyaccessibletohumans.
Contents
1 History
1.1 Contributions
2 Etymology
3 Philosophy
4 Areasofcomputerscience
4.1 Theoreticalcomputerscience
4.1.1 Theoryofcomputation
4.1.2 Informationandcodingtheory
4.1.3 Algorithmsanddatastructures
4.1.4 Programminglanguagetheory
4.1.5 Formalmethods
4.2 Appliedcomputerscience
4.2.1 Artificialintelligence
4.2.2 Computerarchitectureandengineering
4.2.3 Computerperformanceanalysis
4.2.4 Computergraphicsandvisualization
4.2.5 Computersecurityandcryptography
4.2.6 Computationalscience
4.2.7 Computernetworks
https://en.wikipedia.org/wiki/Computer_science
1/15
18/10/2016
ComputerscienceWikipedia
4.2.7 Computernetworks
4.2.8 Concurrent,parallelanddistributedsystems
4.2.9 Databases
4.2.10 Softwareengineering
5 Thegreatinsightsofcomputerscience
6 Academia
7 Education
8 Seealso
9 Notes
10 References
11 Furtherreading
12 Externallinks
History
Theearliestfoundationsofwhatwouldbecomecomputersciencepredatethe
inventionofthemoderndigitalcomputer.Machinesforcalculatingfixednumerical
taskssuchastheabacushaveexistedsinceantiquity,aidingincomputationssuch
asmultiplicationanddivision.Further,algorithmsforperformingcomputations
haveexistedsinceantiquity,evenbeforethedevelopmentofsophisticated
computingequipment.TheancientSanskrittreatiseShulbaSutras,or"Rulesofthe
Chord",isabookofalgorithmswrittenin800BCforconstructinggeometric
objectslikealtarsusingapegandchord,anearlyprecursorofthemodernfieldof
computationalgeometry.
BlaisePascaldesignedandconstructedthefirstworkingmechanicalcalculator,
Pascal'scalculator,in1642.[2]In1673,GottfriedLeibnizdemonstratedadigital
mechanicalcalculator,calledtheSteppedReckoner.[3]Hemaybeconsideredthe
firstcomputerscientistandinformationtheorist,for,amongotherreasons,
documentingthebinarynumbersystem.In1820,ThomasdeColmarlaunchedthe
mechanicalcalculatorindustry[note1]whenhereleasedhissimplifiedarithmometer,
whichwasthefirstcalculatingmachinestrongenoughandreliableenoughtobe
useddailyinanofficeenvironment.CharlesBabbagestartedthedesignofthefirst
automaticmechanicalcalculator,hisDifferenceEngine,in1822,whicheventually
gavehimtheideaofthefirstprogrammablemechanicalcalculator,hisAnalytical
Engine.[4]Hestarteddevelopingthismachinein1834and"inlessthantwoyears
hehadsketchedoutmanyofthesalientfeaturesofthemoderncomputer".[5]"A
crucialstepwastheadoptionofapunchedcardsystemderivedfromtheJacquard
loom"[5]makingitinfinitelyprogrammable.[note2]In1843,duringthetranslation
ofaFrencharticleontheAnalyticalEngine,AdaLovelacewrote,inoneofthe
manynotessheincluded,analgorithmtocomputetheBernoullinumbers,whichis
consideredtobethefirstcomputerprogram.[6]Around1885,HermanHollerith
inventedthetabulator,whichusedpunchedcardstoprocessstatisticalinformation
eventuallyhiscompanybecamepartofIBM.In1937,onehundredyearsafter
Babbage'simpossibledream,HowardAikenconvincedIBM,whichwasmaking
allkindsofpunchedcardequipmentandwasalsointhecalculatorbusiness[7]to
https://en.wikipedia.org/wiki/Computer_science
CharlesBabbageiscredited
withinventingthefirst
mechanicalcomputer.
AdaLovelaceiscredited
withwritingthefirst
algorithmintendedfor
processingonacomputer.
2/15
18/10/2016
ComputerscienceWikipedia
develophisgiantprogrammablecalculator,theASCC/HarvardMarkI,basedonBabbage'sAnalyticalEngine,
whichitselfusedcardsandacentralcomputingunit.Whenthemachinewasfinished,somehaileditas"Babbage's
dreamcometrue".[8]
Duringthe1940s,asnewandmorepowerfulcomputingmachinesweredeveloped,thetermcomputercameto
refertothemachinesratherthantheirhumanpredecessors.[9]Asitbecameclearthatcomputerscouldbeusedfor
morethanjustmathematicalcalculations,thefieldofcomputersciencebroadenedtostudycomputationingeneral.
Computersciencebegantobeestablishedasadistinctacademicdisciplineinthe1950sandearly1960s.[10][11]The
world'sfirstcomputersciencedegreeprogram,theCambridgeDiplomainComputerScience,beganatthe
UniversityofCambridgeComputerLaboratoryin1953.ThefirstcomputersciencedegreeprogramintheUnited
StateswasformedatPurdueUniversityin1962.[12]Sincepracticalcomputersbecameavailable,manyapplications
ofcomputinghavebecomedistinctareasofstudyintheirownrights.
Althoughmanyinitiallybelieveditwasimpossiblethatcomputersthemselvescouldactuallybeascientificfieldof
study,inthelatefiftiesitgraduallybecameacceptedamongthegreateracademicpopulation.[13][14]Itisthenow
wellknownIBMbrandthatformedpartofthecomputersciencerevolutionduringthistime.IBM(shortfor
InternationalBusinessMachines)releasedtheIBM704[15]andlatertheIBM709[16]computers,whichwere
widelyusedduringtheexplorationperiodofsuchdevices."Still,workingwiththeIBM[computer]wasfrustrating
[]ifyouhadmisplacedasmuchasoneletterinoneinstruction,theprogramwouldcrash,andyouwouldhave
tostartthewholeprocessoveragain".[13]Duringthelate1950s,thecomputersciencedisciplinewasverymuchin
itsdevelopmentalstages,andsuchissueswerecommonplace.[14]
Timehasseensignificantimprovementsintheusabilityandeffectivenessofcomputingtechnology.[17]Modern
societyhasseenasignificantshiftintheusersofcomputertechnology,fromusageonlybyexpertsand
professionals,toanearubiquitoususerbase.Initially,computerswerequitecostly,andsomedegreeofhumanaid
wasneededforefficientuseinpartfromprofessionalcomputeroperators.Ascomputeradoptionbecamemore
widespreadandaffordable,lesshumanassistancewasneededforcommonusage.
Contributions
Despiteitsshorthistoryasaformalacademicdiscipline,computersciencehasmadeanumberoffundamental
contributionstoscienceandsocietyinfact,alongwithelectronics,itisafoundingscienceofthecurrentepoch
ofhumanhistorycalledtheInformationAgeandadriveroftheInformationRevolution,seenasthethirdmajor
leapinhumantechnologicalprogressaftertheIndustrialRevolution(17501850CE)andtheAgricultural
Revolution(80005000BC).
Thesecontributionsinclude:
Thestartofthe"digitalrevolution",whichincludesthecurrentInformationAgeandtheInternet.[19]
Aformaldefinitionofcomputationandcomputability,andproofthattherearecomputationallyunsolvable
andintractableproblems.[20]
Theconceptofaprogramminglanguage,atoolforthepreciseexpressionofmethodologicalinformationat
variouslevelsofabstraction.[21]
Incryptography,breakingtheEnigmacodewasanimportantfactorcontributingtotheAlliedvictoryin
WorldWarII.[18]
Scientificcomputingenabledpracticalevaluationofprocessesandsituationsofgreatcomplexity,aswellas
experimentationentirelybysoftware.Italsoenabledadvancedstudyofthemind,andmappingofthehuman
genomebecamepossiblewiththeHumanGenomeProject.[19]Distributedcomputingprojectssuchas
Folding@homeexploreproteinfolding.
https://en.wikipedia.org/wiki/Computer_science
3/15
18/10/2016
ComputerscienceWikipedia
Algorithmictradinghasincreasedtheefficiencyandliquidityoffinancial
marketsbyusingartificialintelligence,machinelearning,andother
statisticalandnumericaltechniquesonalargescale.[22]Highfrequency
algorithmictradingcanalsoexacerbatevolatility.[23]
Computergraphicsandcomputergeneratedimageryhavebecome
ubiquitousinmodernentertainment,particularlyintelevision,cinema,
advertising,animationandvideogames.Evenfilmsthatfeaturenoexplicit
CGIareusually"filmed"nowondigitalcameras,oreditedorpostprocessed
usingadigitalvideoeditor.[24][25]
Simulationofvariousprocesses,includingcomputationalfluiddynamics,
physical,electrical,andelectronicsystemsandcircuits,aswellassocieties
andsocialsituations(notablywargames)alongwiththeirhabitats,among
manyothers.Moderncomputersenableoptimizationofsuchdesignsas
completeaircraft.Notableinelectricalandelectroniccircuitdesignare
SPICE,aswellassoftwareforphysicalrealizationofnew(ormodified)
designs.Thelatterincludesessentialdesignsoftwareforintegratedcircuits.
Artificialintelligenceisbecomingincreasinglyimportantasitgetsmore
efficientandcomplex.TherearemanyapplicationsofAI,someofwhichcan
beseenathome,suchasroboticvacuumcleaners.Itisalsopresentinvideo
gamesandonthemodernbattlefieldindrones,antimissilesystems,and
squadsupportrobots.
Etymology
TheGermanmilitaryused
theEnigmamachine(shown
here)duringWorldWarII
forcommunicationsthey
wantedkeptsecret.The
largescaledecryptionof
EnigmatrafficatBletchley
Parkwasanimportantfactor
thatcontributedtoAllied
victoryinWWII. [18]
Althoughfirstproposedin1956,[14]theterm"computerscience"appearsina1959
articleinCommunicationsoftheACM,[26]inwhichLouisFeinarguesforthecreationofaGraduateSchoolin
ComputerSciencesanalogoustothecreationofHarvardBusinessSchoolin1921,[27]justifyingthenameby
arguingthat,likemanagementscience,thesubjectisappliedandinterdisciplinaryinnature,whilehavingthe
characteristicstypicalofanacademicdiscipline.[26]Hisefforts,andthoseofotherssuchasnumericalanalyst
GeorgeForsythe,wererewarded:universitieswentontocreatesuchprograms,startingwithPurduein1962.[28]
Despiteitsname,asignificantamountofcomputersciencedoesnotinvolvethestudyofcomputersthemselves.
Becauseofthis,severalalternativenameshavebeenproposed.[29]Certaindepartmentsofmajoruniversitiesprefer
thetermcomputingscience,toemphasizepreciselythatdifference.DanishscientistPeterNaursuggestedtheterm
datalogy,[30]toreflectthefactthatthescientificdisciplinerevolvesarounddataanddatatreatment,whilenot
necessarilyinvolvingcomputers.ThefirstscientificinstitutiontousethetermwastheDepartmentofDatalogyat
theUniversityofCopenhagen,foundedin1969,withPeterNaurbeingthefirstprofessorindatalogy.Thetermis
usedmainlyintheScandinaviancountries.Analternativeterm,alsoproposedbyNaur,isdatasciencethisisnow
usedforadistinctfieldofdataanalysis,includingstatisticsanddatabases.
Also,intheearlydaysofcomputing,anumberoftermsforthepractitionersofthefieldofcomputingwere
suggestedintheCommunicationsoftheACMturingineer,turologist,flowchartsman,appliedmeta
mathematician,andappliedepistemologist.[31]Threemonthslaterinthesamejournal,comptologistwas
suggested,followednextyearbyhypologist.[32]Thetermcomputicshasalsobeensuggested.[33]InEurope,terms
derivedfromcontractedtranslationsoftheexpression"automaticinformation"(e.g."informazioneautomatica"in
Italian)or"informationandmathematics"areoftenused,e.g.informatique(French),Informatik(German),
informatica(Italian,Dutch),informtica(Spanish,Portuguese),informatika(SlaviclanguagesandHungarian)or
pliroforiki(,whichmeansinformatics)inGreek.SimilarwordshavealsobeenadoptedintheUK(as
intheSchoolofInformaticsoftheUniversityofEdinburgh).[34]"IntheU.S.,however,informaticsislinkedwith
appliedcomputing,orcomputinginthecontextofanotherdomain."[35]
https://en.wikipedia.org/wiki/Computer_science
4/15
18/10/2016
ComputerscienceWikipedia
Afolkloricquotation,oftenattributedtobutalmostcertainlynotfirstformulatedbyEdsgerDijkstra,statesthat
"computerscienceisnomoreaboutcomputersthanastronomyisabouttelescopes."[note3]Thedesignand
deploymentofcomputersandcomputersystemsisgenerallyconsideredtheprovinceofdisciplinesotherthan
computerscience.Forexample,thestudyofcomputerhardwareisusuallyconsideredpartofcomputer
engineering,whilethestudyofcommercialcomputersystemsandtheirdeploymentisoftencalledinformation
technologyorinformationsystems.However,therehasbeenmuchcrossfertilizationofideasbetweenthevarious
computerrelateddisciplines.Computerscienceresearchalsooftenintersectsotherdisciplines,suchasphilosophy,
cognitivescience,linguistics,mathematics,physics,biology,statistics,andlogic.
Computerscienceisconsideredbysometohaveamuchcloserrelationshipwithmathematicsthanmanyscientific
disciplines,withsomeobserverssayingthatcomputingisamathematicalscience.[10]Earlycomputersciencewas
stronglyinfluencedbytheworkofmathematicianssuchasKurtGdelandAlanTuring,andtherecontinuestobe
ausefulinterchangeofideasbetweenthetwofieldsinareassuchasmathematicallogic,categorytheory,domain
theory,andalgebra.[14]
Therelationshipbetweencomputerscienceandsoftwareengineeringisacontentiousissue,whichisfurther
muddiedbydisputesoverwhattheterm"softwareengineering"means,andhowcomputerscienceisdefined.[36]
DavidParnas,takingacuefromtherelationshipbetweenotherengineeringandsciencedisciplines,hasclaimed
thattheprincipalfocusofcomputerscienceisstudyingthepropertiesofcomputationingeneral,whilethe
principalfocusofsoftwareengineeringisthedesignofspecificcomputationstoachievepracticalgoals,making
thetwoseparatebutcomplementarydisciplines.[37]
Theacademic,political,andfundingaspectsofcomputersciencetendtodependonwhetheradepartmentformed
withamathematicalemphasisorwithanengineeringemphasis.Computersciencedepartmentswithamathematics
emphasisandwithanumericalorientationconsideralignmentwithcomputationalscience.Bothtypesof
departmentstendtomakeeffortstobridgethefieldeducationallyifnotacrossallresearch.
Philosophy
Anumberofcomputerscientistshavearguedforthedistinctionofthreeseparateparadigmsincomputerscience.
PeterWegnerarguedthatthoseparadigmsarescience,technology,andmathematics.[38]PeterDenning'sworking
grouparguedthattheyaretheory,abstraction(modeling),anddesign.[39]AmnonH.Edendescribedthemasthe
"rationalistparadigm"(whichtreatscomputerscienceasabranchofmathematics,whichisprevalentintheoretical
computerscience,andmainlyemploysdeductivereasoning),the"technocraticparadigm"(whichmightbefound
inengineeringapproaches,mostprominentlyinsoftwareengineering),andthe"scientificparadigm"(which
approachescomputerrelatedartifactsfromtheempiricalperspectiveofnaturalsciences,identifiableinsome
branchesofartificialintelligence).[40]
Areasofcomputerscience
Asadiscipline,computersciencespansarangeoftopicsfromtheoreticalstudiesofalgorithmsandthelimitsof
computationtothepracticalissuesofimplementingcomputingsystemsinhardwareandsoftware.[41][42]CSAB,
formerlycalledComputingSciencesAccreditationBoardwhichismadeupofrepresentativesoftheAssociation
forComputingMachinery(ACM),andtheIEEEComputerSociety(IEEECS)[43]identifiesfourareasthatit
considerscrucialtothedisciplineofcomputerscience:theoryofcomputation,algorithmsanddatastructures,
programmingmethodologyandlanguages,andcomputerelementsandarchitecture.Inadditiontothesefourareas,
CSABalsoidentifiesfieldssuchassoftwareengineering,artificialintelligence,computernetworkingand
https://en.wikipedia.org/wiki/Computer_science
5/15
18/10/2016
ComputerscienceWikipedia
communication,databasesystems,parallelcomputation,distributedcomputation,humancomputerinteraction,
computergraphics,operatingsystems,andnumericalandsymboliccomputationasbeingimportantareasof
computerscience.[41]
Theoreticalcomputerscience
TheoreticalComputerScienceismathematicalandabstractinspirit,butitderivesitsmotivationfrompracticaland
everydaycomputation.Itsaimistounderstandthenatureofcomputationand,asaconsequenceofthis
understanding,providemoreefficientmethodologies.Allpapersintroducingorstudyingmathematical,logicand
formalconceptsandmethodsarewelcome,providedthattheirmotivationisclearlydrawnfromthefieldof
computing.
Theoryofcomputation
AccordingtoPeterDenning,thefundamentalquestionunderlyingcomputerscienceis,"Whatcanbe(efficiently)
automated?"[10]Theoryofcomputationisfocusedonansweringfundamentalquestionsaboutwhatcanbe
computedandwhatamountofresourcesarerequiredtoperformthosecomputations.Inanefforttoanswerthefirst
question,computabilitytheoryexamineswhichcomputationalproblemsaresolvableonvarioustheoreticalmodels
ofcomputation.Thesecondquestionisaddressedbycomputationalcomplexitytheory,whichstudiesthetimeand
spacecostsassociatedwithdifferentapproachestosolvingamultitudeofcomputationalproblems.
ThefamousP=NP?problem,oneoftheMillenniumPrizeProblems,[44]isanopenprobleminthetheoryof
computation.
Automata
theory
Computability
theory
P=NP?
GNITIRW
TERCES
Computationalcomplexity
theory
Cryptography
Quantumcomputing
theory
Informationandcodingtheory
Informationtheoryisrelatedtothequantificationofinformation.ThiswasdevelopedbyClaudeShannontofind
fundamentallimitsonsignalprocessingoperationssuchascompressingdataandonreliablystoringand
communicatingdata.[45]Codingtheoryisthestudyofthepropertiesofcodes(systemsforconvertinginformation
fromoneformtoanother)andtheirfitnessforaspecificapplication.Codesareusedfordatacompression,
cryptography,errordetectionandcorrection,andmorerecentlyalsofornetworkcoding.Codesarestudiedforthe
purposeofdesigningefficientandreliabledatatransmissionmethods.
Algorithmsanddatastructures
Algorithmsanddatastructuresisthestudyofcommonlyusedcomputationalmethodsandtheircomputational
efficiency.
https://en.wikipedia.org/wiki/Computer_science
6/15
18/10/2016
ComputerscienceWikipedia
O(n2)
Analysisof
algorithms
Algorithms
Data
structures
Combinatorial
optimization
Computational
geometry
Programminglanguagetheory
Programminglanguagetheoryisabranchofcomputersciencethatdealswiththedesign,implementation,
analysis,characterization,andclassificationofprogramminglanguagesandtheirindividualfeatures.Itfallswithin
thedisciplineofcomputerscience,bothdependingonandaffectingmathematics,softwareengineering,and
linguistics.Itisanactiveresearcharea,withnumerousdedicatedacademicjournals.
Typetheory
Compilerdesign
Programminglanguages
Formalmethods
Formalmethodsareaparticularkindofmathematicallybasedtechniqueforthespecification,developmentand
verificationofsoftwareandhardwaresystems.Theuseofformalmethodsforsoftwareandhardwaredesignis
motivatedbytheexpectationthat,asinotherengineeringdisciplines,performingappropriatemathematical
analysiscancontributetothereliabilityandrobustnessofadesign.Theyformanimportanttheoretical
underpinningforsoftwareengineering,especiallywheresafetyorsecurityisinvolved.Formalmethodsarea
usefuladjuncttosoftwaretestingsincetheyhelpavoiderrorsandcanalsogiveaframeworkfortesting.For
industrialuse,toolsupportisrequired.However,thehighcostofusingformalmethodsmeansthattheyareusually
onlyusedinthedevelopmentofhighintegrityandlifecriticalsystems,wheresafetyorsecurityisofutmost
importance.Formalmethodsarebestdescribedastheapplicationofafairlybroadvarietyoftheoreticalcomputer
sciencefundamentals,inparticularlogiccalculi,formallanguages,automatatheory,andprogramsemantics,but
alsotypesystemsandalgebraicdatatypestoproblemsinsoftwareandhardwarespecificationandverification.
Appliedcomputerscience
Appliedcomputerscienceaimsatidentifyingcertaincomputerscienceconceptsthatcanbeuseddirectlyin
solvingrealworldproblems.
Artificialintelligence
https://en.wikipedia.org/wiki/Computer_science
7/15
18/10/2016
ComputerscienceWikipedia
Artificialintelligence(AI)aimstoorisrequiredtosynthesizegoalorientatedprocessessuchasproblemsolving,
decisionmaking,environmentaladaptation,learningandcommunicationfoundinhumansandanimals.Fromits
originsincyberneticsandintheDartmouthConference(1956),artificialintelligenceresearchhasbeennecessarily
crossdisciplinary,drawingonareasofexpertisesuchasappliedmathematics,symboliclogic,semiotics,electrical
engineering,philosophyofmind,neurophysiology,andsocialintelligence.AIisassociatedinthepopularmind
withroboticdevelopment,butthemainfieldofpracticalapplicationhasbeenasanembeddedcomponentinareas
ofsoftwaredevelopment,whichrequirecomputationalunderstanding.Thestartingpointinthelate1940swas
AlanTuring'squestion"Cancomputersthink?",andthequestionremainseffectivelyunansweredalthoughthe
Turingtestisstillusedtoassesscomputeroutputonthescaleofhumanintelligence.Buttheautomationof
evaluativeandpredictivetaskshasbeenincreasinglysuccessfulasasubstituteforhumanmonitoringand
interventionindomainsofcomputerapplicationinvolvingcomplexrealworlddata.
Machinelearning
Computervision
Imageprocessing
Patternrecognition
Datamining
Evolutionarycomputation
Knowledgerepresentation
Naturallanguageprocessing
Robotics
Computerarchitectureandengineering
Computerarchitecture,ordigitalcomputerorganization,istheconceptualdesignandfundamentaloperational
structureofacomputersystem.Itfocuseslargelyonthewaybywhichthecentralprocessingunitperforms
internallyandaccessesaddressesinmemory.[46]Thefieldofteninvolvesdisciplinesofcomputerengineeringand
electricalengineering,selectingandinterconnectinghardwarecomponentstocreatecomputersthatmeet
functional,performance,andcostgoals.
https://en.wikipedia.org/wiki/Computer_science
8/15
18/10/2016
ComputerscienceWikipedia
Digitallogic
Microarchitecture
Multiprocessing
Ubiquitouscomputing
Systemsarchitecture
Operatingsystems
Computerperformanceanalysis
Computerperformanceanalysisisthestudyofworkflowingthroughcomputerswiththegeneralgoalsof
improvingthroughput,controllingresponsetime,usingresourcesefficiently,eliminatingbottlenecks,and
predictingperformanceunderanticipatedpeakloads.[47]
Computergraphicsandvisualization
Computergraphicsisthestudyofdigitalvisualcontents,andinvolvessynthesisandmanipulationofimagedata.
Thestudyisconnectedtomanyotherfieldsincomputerscience,includingcomputervision,imageprocessing,and
computationalgeometry,andisheavilyappliedinthefieldsofspecialeffectsandvideogames.
Computersecurityandcryptography
Computersecurityisabranchofcomputertechnology,whoseobjectiveincludesprotectionofinformationfrom
unauthorizedaccess,disruption,ormodificationwhilemaintainingtheaccessibilityandusabilityofthesystemfor
itsintendedusers.Cryptographyisthepracticeandstudyofhiding(encryption)andthereforedeciphering
(decryption)information.Moderncryptographyislargelyrelatedtocomputerscience,formanyencryptionand
decryptionalgorithmsarebasedontheircomputationalcomplexity.
Computationalscience
Computationalscience(orscientificcomputing)isthefieldofstudyconcernedwithconstructingmathematical
modelsandquantitativeanalysistechniquesandusingcomputerstoanalyzeandsolvescientificproblems.In
practicaluse,itistypicallytheapplicationofcomputersimulationandotherformsofcomputationtoproblemsin
variousscientificdisciplines.
Numericalanalysis
https://en.wikipedia.org/wiki/Computer_science
Computationalphysics
Computationalchemistry
Bioinformatics
9/15
18/10/2016
ComputerscienceWikipedia
Computernetworks
Thisbranchofcomputerscienceaimstomanagenetworksbetweencomputersworldwide.
Concurrent,parallelanddistributedsystems
Concurrencyisapropertyofsystemsinwhichseveralcomputationsareexecutingsimultaneously,andpotentially
interactingwitheachother.Anumberofmathematicalmodelshavebeendevelopedforgeneralconcurrent
computationincludingPetrinets,processcalculiandtheParallelRandomAccessMachinemodel.Adistributed
systemextendstheideaofconcurrencyontomultiplecomputersconnectedthroughanetwork.Computerswithin
thesamedistributedsystemhavetheirownprivatememory,andinformationisoftenexchangedamongthemselves
toachieveacommongoal.
Databases
Adatabaseisintendedtoorganize,store,andretrievelargeamountsofdataeasily.Digitaldatabasesaremanaged
usingdatabasemanagementsystemstostore,create,maintain,andsearchdata,throughdatabasemodelsandquery
languages.
Softwareengineering
Softwareengineeringisthestudyofdesigning,implementing,andmodifyingsoftwareinordertoensureitisof
highquality,affordable,maintainable,andfasttobuild.Itisasystematicapproachtosoftwaredesign,involving
theapplicationofengineeringpracticestosoftware.Softwareengineeringdealswiththeorganizingandanalyzing
ofsoftwareitdoesn'tjustdealwiththecreationormanufactureofnewsoftware,butitsinternalmaintenanceand
arrangement.Bothcomputerapplicationssoftwareengineersandcomputersystemssoftwareengineersare
projectedtobeamongthefastestgrowingoccupationsfrom2008to2018.
Thegreatinsightsofcomputerscience
ThephilosopherofcomputingBillRapaportnotedthreeGreatInsightsofComputerScience:[48]
GottfriedWilhelmLeibniz's,GeorgeBoole's,AlanTuring's,ClaudeShannon's,andSamuelMorse'sinsight:
thereareonlytwoobjectsthatacomputerhastodealwithinordertorepresent"anything".
Alltheinformationaboutanycomputableproblemcanberepresentedusingonly0and1(oranyother
bistablepairthatcanflipflopbetweentwoeasilydistinguishablestates,suchas"on/off",
"magnetized/demagnetized","highvoltage/lowvoltage",etc.).
AlanTuring'sinsight:thereareonlyfiveactionsthatacomputerhastoperforminordertodo"anything".
Everyalgorithmcanbeexpressedinalanguageforacomputerconsistingofonlyfivebasic
instructions:
moveleftonelocation
moverightonelocation
readsymbolatcurrentlocation
print0atcurrentlocation
print1atcurrentlocation.
https://en.wikipedia.org/wiki/Computer_science
10/15
18/10/2016
ComputerscienceWikipedia
CorradoBhmandGiuseppeJacopini'sinsight:thereareonlythreewaysofcombiningtheseactions(into
morecomplexones)thatareneededinorderforacomputertodo"anything".
Onlythreerulesareneededtocombineanysetofbasicinstructionsintomorecomplexones:
sequence:firstdothis,thendothat
selection:IFsuchandsuchisthecase,THENdothis,ELSEdothat
repetition:WHILEsuchandsuchisthecaseDOthis.
NotethatthethreerulesofBoehm'sandJacopini'sinsightcanbefurthersimplifiedwiththeuseof
goto(whichmeansitismoreelementarythanstructuredprogramming).
Academia
Conferencesareimportanteventsforcomputerscienceresearch.Duringtheseconferences,researchersfromthe
publicandprivatesectorspresenttheirrecentworkandmeet.Unlikeinmostotheracademicfields,incomputer
science,theprestigeofconferencepapersisgreaterthanthatofjournalpublications.[49][50]Oneproposed
explanationforthisisthequickdevelopmentofthisrelativelynewfieldrequiresrapidreviewanddistributionof
results,ataskbetterhandledbyconferencesthanbyjournals.[51]
Education
Sincecomputerscienceisarelativelynewfield,itisnotaswidelytaughtinschoolsanduniversitiesasother
academicsubjects.Forexample,in2014,Code.orgestimatedthatonly10percentofhighschoolsintheUnited
Statesofferedcomputerscienceeducation.[52]A2010reportbyAssociationforComputingMachinery(ACM)and
ComputerScienceTeachersAssociation(CSTA)revealedthatonly14outof50stateshaveadoptedsignificant
educationstandardsforhighschoolcomputerscience.[53]However,computerscienceeducationisgrowing.[54]
Somecountries,suchasIsrael,NewZealandandSouthKorea,havealreadyincludedcomputerscienceintheir
respectivenationalsecondaryeducationcurriculum.[55][56]Severalcountriesarefollowingsuit.[57][58]
Inmostcountries,thereisasignificantgendergapincomputerscienceeducation.Forexample,intheUSabout
20%ofcomputersciencedegreesin2012wereconferredtowomen.[59]Thisgendergapalsoexistsinother
Westerncountries.[60]However,insomepartsoftheworld,thegapissmallornonexistent.In2011,approximately
halfofallcomputersciencedegreesinMalaysiawereconferredtowomen.[61]In2001,womenmadeup54.5%of
computersciencegraduatesinGuyana.[60]
Seealso
Academicgenealogyofcomputerscientists
AssociationforComputingMachinery
ComputerScienceTeachersAssociation
InformaticsandEngineeringinformatics
Listofacademiccomputersciencedepartments
Listofcomputerscientists
Listofpublicationsincomputerscience
Listofpioneersincomputerscience
Listofpioneersincomputerscience
Listofunsolvedproblemsincomputerscience
Outlineofsoftwareengineering
Technologytransferincomputerscience
TuringAward
ComputerscienceWikipediabook
Notes
https://en.wikipedia.org/wiki/Computer_science
11/15
18/10/2016
ComputerscienceWikipedia
1.In1851
2."Theintroductionofpunchedcardsintothenewenginewasimportantnotonlyasamoreconvenientformofcontrolthan
thedrums,orbecauseprogramscouldnowbeofunlimitedextent,andcouldbestoredandrepeatedwithoutthedangerof
introducingerrorsinsettingthemachinebyhanditwasimportantalsobecauseitservedtocrystallizeBabbage'sfeeling
thathehadinventedsomethingreallynew,somethingmuchmorethanasophisticatedcalculatingmachine."Bruce
Collier,1970
3.Seetheentry"Computerscience"onWikiquoteforthehistoryofthisquotation.
References
1."WordNetSearch3.1".Wordnetweb.princeton.edu.Retrieved20120514.
2."BlaisePascal".SchoolofMathematicsandStatisticsUniversityofStAndrews,Scotland.
3."ABriefHistoryofComputing".
4."ScienceMuseumIntroductiontoBabbage".Archivedfromtheoriginalon20060908.Retrieved20060924.
5.AnthonyHyman(1982).CharlesBabbage,pioneerofthecomputer.
6."ASelectionandAdaptationFromAda'sNotesfoundinAda,TheEnchantressofNumbers,"byBettyAlexandraToole
Ed.D.StrawberryPress,MillValley,CA".ArchivedfromtheoriginalonFebruary10,2006.Retrieved20060504.
7."InthissenseAikenneededIBM,whosetechnologyincludedtheuseofpunchedcards,theaccumulationofnumerical
data,andthetransferofnumericaldatafromoneregistertoanother",BernardCohen,p.44(2000)
8.BrianRandell,p.187,1975
9.TheAssociationforComputingMachinery(ACM)wasfoundedin1947.
10.Denning,PeterJ.(2000)."ComputerScience:TheDiscipline"(PDF).EncyclopediaofComputerScience.Archivedfrom
theoriginal(PDF)on20060525.
11."SomeEDSACstatistics".Cl.cam.ac.uk.Retrieved20111119.
12."ComputersciencepioneerSamuelD.Contediesat85".PurdueComputerScience.July1,2002.Retrieved
December12,2014.
13.Levy,Steven(1984).Hackers:HeroesoftheComputerRevolution.Doubleday.ISBN0385191952.
14.Tedre,Matti(2014).TheScienceofComputing:ShapingaDiscipline.TaylorandFrancis/CRCPress.
15."IBM704ElectronicDataProcessingSystemCHMRevolution".Computerhistory.org.Retrieved20130707.
16."IBM709:apowerfulnewdataprocessingsystem"(PDF).ComputerHistoryMuseum.RetrievedDecember12,2014.
17."TimelineofComputerHistory".ComputerHistoryMuseum.RetrievedNovember24,2015.
18.DavidKahn,TheCodebreakers,1967,ISBN0684831309.
19."ComputerScience:AchievementsandChallengescirca2000"(PDF).Archivedfromtheoriginal(PDF)onSeptember11,
2006.RetrievedJanuary11,2007.
20.Constable,R.L.(March2000)."ComputerScience:AchievementsandChallengescirca2000"(PDF).
21.Abelson,H.G.J.SussmanwithJ.Sussman(1996).StructureandInterpretationofComputerPrograms(2nded.).MIT
Press.ISBN0262011530."Thecomputerrevolutionisarevolutioninthewaywethinkandinthewayweexpress
whatwethink.Theessenceofthischangeistheemergenceofwhatmightbestbecalledproceduralepistemologythe
studyofthestructureofknowledgefromanimperativepointofview,asopposedtothemoredeclarativepointofview
takenbyclassicalmathematicalsubjects."
22."Blackboxtradersareonthemarch".TheTelegraph.August26,2006.ArchivedfromtheoriginalonJune21,2008.
23."TheImpactofHighFrequencyTradingonanElectronicMarket".Papers.ssrn.com.doi:10.2139/ssrn.1686004.
Retrieved20120514.
24.Maly,Timy."HowDigitalFilmmakersProducedaGorgeousSciFiMovieonaKickstarterBudget".Wired.Retrieved
November24,2015.
25.Matthau,Charles."HowTechHasShapedFilmMaking:TheFilmvs.DigitalDebateIsPuttoRest".Wired.Retrieved
November24,2015.
26.LouisFine(1959)."TheRoleoftheUniversityinComputers,DataProcessing,andRelatedFields".Communicationsof
theACM.2(9):714.doi:10.1145/368424.368427.
27."StanfordUniversityOralHistory".StanfordUniversity.RetrievedMay30,2013.
28.DonaldKnuth(1972)."GeorgeForsytheandtheDevelopmentofComputerScience"(http://www.stanford.edu/dept/ICM
E/docs/history/forsythe_knuth.pdf).Comms.ACM.Archived(https://web.archive.org/web/20131020200802/http://www.
stanford.edu/dept/ICME/docs/history/forsythe_knuth.pdf)October20,2013,attheWaybackMachine.
29.MattiTedre(2006)."TheDevelopmentofComputerScience:ASocioculturalPerspective"(PDF).p.260.Retrieved
December12,2014.
30.PeterNaur(1966)."Thescienceofdatalogy".CommunicationsoftheACM.9(7):485.doi:10.1145/365719.366510.
https://en.wikipedia.org/wiki/Computer_science
12/15
18/10/2016
ComputerscienceWikipedia
31.Weiss,E.A.Corley,HenryP.T."CommunicationsoftheACM".CommunicationsoftheACM.1(4):6.
doi:10.1145/368796.368802.
32.CommunicationsoftheACM2(1):p.4
33.IEEEComputer28(12):p.136
34.P.MounierKuhn,L'InformatiqueenFrance,delasecondeguerremondialeauPlanCalcul.L'mergenced'unescience,
Paris,PUPS,2010,ch.3&4.
35.[1](http://cacm.acm.org/magazines/2010/2/69363whyaninformaticsdegree)
36.Tedre,M.(2011)."ComputingasaScience:ASurveyofCompetingViewpoints".MindsandMachines.21(3):361
387.doi:10.1007/s1102301192404.
37.Parnas,D.L.(1998)."Softwareengineeringprogrammesarenotcomputerscienceprogrammes".AnnalsofSoftware
Engineering.6:1937.doi:10.1023/A:1018949113292.,p.19:"Ratherthantreatsoftwareengineeringasasubfieldof
computerscience,Itreatitasanelementoftheset,CivilEngineering,MechanicalEngineering,ChemicalEngineering,
ElectricalEngineering,[]"
38.Wegner,P.(October1315,1976).ResearchparadigmsincomputerscienceProceedingsofthe2ndinternational
ConferenceonSoftwareEngineering.SanFrancisco,California,UnitedStates:IEEEComputerSocietyPress,Los
Alamitos,CA.
39.Denning,P.J.Comer,D.E.Gries,D.Mulder,M.C.Tucker,A.Turner,A.J.Young,P.R.(Jan1989)."Computing
asadiscipline".CommunicationsoftheACM.32:923.doi:10.1145/63238.63239.
40.Eden,A.H.(2007)."ThreeParadigmsofComputerScience"(PDF).MindsandMachines.17(2):135167.
doi:10.1007/s1102300790608.
41.ComputingSciencesAccreditationBoard(May28,1997)."ComputerScienceasaProfession".Archivedfromthe
originalon20080617.Retrieved20100523.
42.CommitteeontheFundamentalsofComputerScience:ChallengesandOpportunities,NationalResearchCouncil(2004).
ComputerScience:ReflectionsontheField,ReflectionsfromtheField.NationalAcademiesPress.ISBN9780309
093019.
43."CSABLeadingComputerEducation".CSAB.20110803.Retrieved20111119.
44.ClayMathematicsInstitute(http://www.claymath.org/millennium/P_vs_NP/)P=NPArchived(https://web.archive.org/w
eb/20131014194456/http://www.claymath.org/millennium/P_vs_NP/)October14,2013,attheWaybackMachine.
45.P.Collins,Graham(October14,2002)."ClaudeE.Shannon:FounderofInformationTheory".ScientificAmerican.
RetrievedDecember12,2014.
46.A.Thisted,Ronald(April7,1997)."ComputerArchitecture"(PDF).TheUniversityofChicago.
47.Wescott,Bob(2013).TheEveryComputerPerformanceBook,Chapter3:Usefullaws.CreateSpace.ISBN1482657759.
48."WhatIsComputation?".buffalo.edu.
49.Meyer,Bertrand(April2009)."Viewpoint:Researchevaluationforcomputerscience".CommunicationsoftheACM.25
(4):3134.doi:10.1145/1498765.1498780.
50.Patterson,David(August1999)."EvaluatingComputerScientistsandEngineersForPromotionandTenure".Computing
ResearchAssociation.
51.Fortnow,Lance(August2009)."Viewpoint:TimeforComputerSciencetoGrowUp".CommunicationsoftheACM.52
(8):3335.doi:10.1145/1536616.1536631.
52."ComputerScience:NotJustanElectiveAnymore".EducationWeek.February25,2014.
53."RunningOnEmpty"(PDF).October2010.
54."HowtoTeachComputationalThinkingStephenWolframBlog".blog.stephenwolfram.com.Retrieved20160916.
55."Aisforalgorithm".TheEconomist.April26,2014.
56."ComputingatSchoolInternationalcomparisons"(PDF).Retrieved20July2015.
57.Scott,MichaelGhinea,Gheorghita(17April2013).EducatingProgrammers:AReflectiononBarrierstoDeliberate
Practice(pdf).Proceedingsofthe2ndHEAConferenceonLearningandTeachinginSTEMDisciplines.HEA.pp.85
90.doi:10.11120/stem.hea.2013.0005.RetrievedMarch25,2016.
58."AddingCodingtotheCurriculum".NewYorkTimes.March23,2014.
59."ITgendergap:Wherearethefemaleprogrammers?".Retrieved20July2015.
60."ITgendergap:Wherearethefemaleprogrammers?".
61."whatgenderisscience"(PDF).Retrieved20July2015.
Furtherreading
Overview
https://en.wikipedia.org/wiki/Computer_science
13/15
18/10/2016
ComputerscienceWikipedia
Tucker,AllenB.(2004).ComputerScienceHandbook(2nded.).ChapmanandHall/CRC.ISBN158488360X.
"Withinmorethan70chapters,everyoneneworsignificantlyrevised,onecanfindanykindofinformationand
referencesaboutcomputerscienceonecanimagine.[]allinall,thereisabsolutenothingaboutComputer
Sciencethatcannotbefoundinthe2.5kilogramencyclopaediawithits110surveyarticles[]."(Christoph
Meinel,ZentralblattMATH)
vanLeeuwen,Jan(1994).HandbookofTheoreticalComputerScience.TheMITPress.ISBN0262720205.
"[]thissetisthemostuniqueandpossiblythemostusefultothe[theoreticalcomputerscience]community,in
supportbothofteachingandresearch[].Thebookscanbeusedbyanyonewantingsimplytogainan
understandingofoneoftheseareas,orbysomeonedesiringtobeinresearchinatopic,orbyinstructorswishing
tofindtimelyinformationonasubjecttheyareteachingoutsidetheirmajorareasofexpertise."(RockyRoss,
SIGACTNews)
Ralston,AnthonyReilly,EdwinD.Hemmendinger,David(2000).EncyclopediaofComputerScience(4thed.).Grove's
Dictionaries.ISBN156159248X.
"Since1976,thishasbeenthedefinitivereferenceworkoncomputer,computing,andcomputerscience.[]
Alphabeticallyarrangedandclassifiedintobroadsubjectareas,theentriescoverhardware,computersystems,
informationanddata,software,themathematicsofcomputing,theoryofcomputation,methodologies,
applications,andcomputingmilieu.Theeditorshavedoneacommendablejobofblendinghistoricalperspective
andpracticalreferenceinformation.Theencyclopediaremainsessentialformostpublicandacademiclibrary
referencecollections."(JoeAccardin,NortheasternIllinoisUniv.,Chicago)
EdwinD.Reilly(2003).MilestonesinComputerScienceandInformationTechnology.GreenwoodPublishingGroup.
ISBN9781573565219.
Selectedliterature
Knuth,DonaldE.(1996).SelectedPapersonComputerScience.CSLIPublications,CambridgeUniversityPress.
Collier,Bruce.Thelittleenginethatcould've:ThecalculatingmachinesofCharlesBabbage.GarlandPublishingInc.
ISBN0824000439.
Cohen,Bernard(2000).HowardAiken,Portraitofacomputerpioneer.TheMITpress.ISBN9780262531795.
Tedre,Matti(2014).TheScienceofComputing:ShapingaDiscipline.CRCPress,Taylor&Francis.
Randell,Brian(1973).TheoriginsofDigitalcomputers,SelectedPapers.SpringerVerlag.ISBN354006169X.
"Coveringaperiodfrom1966to1993,itsinterestliesnotonlyinthecontentofeachofthesepapersstill
timelytodaybutalsointheirbeingputtogethersothatideasexpressedatdifferenttimescomplementeach
othernicely."(N.Bernard,ZentralblattMATH)
Articles
PeterJ.Denning.Iscomputersciencescience?(http://portal.acm.org/citation.cfm?id=1053309&coll=&dl=ACM&CFID
=15151515&CFTOKEN=6184618),CommunicationsoftheACM,April2005.
PeterJ.Denning,Greatprinciplesincomputingcurricula(http://portal.acm.org/citation.cfm?id=971303&dl=ACM&coll
=&CFID=15151515&CFTOKEN=6184618),TechnicalSymposiumonComputerScienceEducation,2004.
Researchevaluationforcomputerscience,InformaticsEuropereport(http://www.eqanie.eu/media/Como%20Conference/
TancaResearch_Assessment_A_new_Initiative_by_Informatics_Europe.pdf).Shorterjournalversion:BertrandMeyer,
ChristineChoppy,JanvanLeeuwenandJorgenStaunstrup,Researchevaluationforcomputerscience,in
CommunicationsoftheACM,vol.52,no.4,pp.3134,April2009.
Curriculumandclassification
AssociationforComputingMachinery.1998ACMComputingClassificationSystem(http://www.acm.org/class/1998/ov
erview.html).1998.
JointTaskForceofAssociationforComputingMachinery(ACM),AssociationforInformationSystems(AIS)and
IEEEComputerSociety(IEEECS).ComputingCurricula2005:TheOverviewReport(http://www.acm.org/education/cu
rric_vols/CC2005March06Final.pdf).September30,2005.
NormanGibbs,AllenTucker."Amodelcurriculumforaliberalartsdegreeincomputerscience".Communicationsofthe
ACM,Volume29Issue3,March1986.
Externallinks
https://en.wikipedia.org/wiki/Computer_science
14/15
18/10/2016
ComputerscienceWikipedia
[1]
Computerscience(https://www.dmoz.org/Computers/Computer_Science/)atDMOZ
ScholarlySocietiesinComputerScience(http://www.lib.uwaterloo.ca/society/compsci_soc.html)
WhatisComputerScience?(https://www.youtube.com/watch?v=fjMUkmCso)
BestPapersAwardsinComputerSciencesince1996(http://jeffhuang.com/best_paper_awards.html)
Photographsofcomputerscientists(http://se.ethz.ch/~meyer/gallery/)byBertrandMeyer
EECS.berkeley.edu(http://www.eecs.berkeley.edu/department/history.shtml)
Bibliographyandacademicsearchengines
CiteSeerx(http://citeseerx.ist.psu.edu/)(article):searchengine,digitallibraryandrepositoryforscientific
andacademicpaperswithafocusoncomputerandinformationscience.
DBLPComputerScienceBibliography(http://dblp.unitrier.de/)(article):computersciencebibliography
websitehostedatUniversittTrier,inGermany.
TheCollectionofComputerScienceBibliographies(http://liinwww.ira.uka.de/bibliography/)(article)
Professionalorganizations
AssociationforComputingMachinery(http://www.acm.org/)
IEEEComputerSociety(http://www.computer.org/)
InformaticsEurope(http://www.informaticseurope.org/)
AAAI(http://www.aaai.org/home.html)
AAASComputerScience(http://membercentral.aaas.org/categories/computerscience)
Misc
ComputerScienceStackExchange(http://cs.stackexchange.com/):acommunityrunquestionandanswer
siteforcomputerscience
Whatiscomputerscience(http://www.cs.bu.edu/AboutCS/WhatIsCS.pdf)
Iscomputersciencescience?(http://www.cs.mtu.edu/~john/jenning.pdf)
ComputerScience(Software)MustbeConsideredasanIndependentDiscipline.(https://www.researchgate.
net/publication/306078165_Computer_Science_Software_Must_be_Considered_as_an_Independent_Discipl
ine_Computer_Science_Software_must_not_be_Treated_as_a_SubDomain_or_Subset_of_Mathematics)
1."ComputerScience".ComputerGK.com.
Retrievedfrom"https://en.wikipedia.org/w/index.php?title=Computer_science&oldid=743831653"
Categories: Electricalengineering Electronicengineering Computerengineering Computerscience
Thispagewaslastmodifiedon11October2016,at14:32.
TextisavailableundertheCreativeCommonsAttributionShareAlikeLicenseadditionaltermsmayapply.
Byusingthissite,youagreetotheTermsofUseandPrivacyPolicy.Wikipediaisaregisteredtrademark
oftheWikimediaFoundation,Inc.,anonprofitorganization.
https://en.wikipedia.org/wiki/Computer_science
15/15