glossary of computer science computer science history outline glossary category portal vte part of a series onscience formal formal logic mathematics mathematical statistics theoretical computer science game theory decision theory information theory systems theory control theory physical physics classical modern applied theoretical experimental computational mechanics classicalanalyticalcontinuumfluidsolid electromagnetism thermodynamics molecular atomic nuclear particle condensed matter plasma quantum mechanicsintroduction quantum field theory special relativity general relativity string theory chemistry inorganic organic analytical physical acidbase supramolecular solidstate nuclear environmental sustainable green theoretical astrochemistry biochemistry crystallography food chemistry geochemistry materials science photochemistry radiochemistry stereochemistry surface science earth science climatology edaphology environmental science geodesy geographyphysical geology geomorphology geophysics glaciology hydrology limnology meteorology mineralogy oceanography paleoclimatology paleoecology palynology pedology volcanology astronomy astrophysics cosmology galactic astronomy planetary geology planetary science stellar astronomy life biology anatomy astrobiology biochemistry biogeography biological engineering biomechanics biophysics biotechnology botany cell biology conservation biology cryobiology developmental biology ecology ethology evolutionary biologyintroduction geneticsintroduction immunology microbiology molecular anthropology molecular biology nanobiology neuroscience paleontology parasitology physiology quantum biology theoretical biology toxicology zoology social anthropology archaeology criminology demography economics geographyhuman history international relations jurisprudence linguistics pedagogy political science psychology science education sociology applied engineering aerospace agricultural biological biomedical chemical civil computer science engineering electrical fire protection genetic industrial information mechanical military mining nuclear operations research robotics software web healthcare medicine veterinary dentistry midwifery epidemiology pharmacy nursing interdisciplinary applied physics artificial intelligence bioethics bioinformatics biomedical engineering biostatistics cognitive science complex systems computational linguistics cultural studies cybernetics environmental science environmental social science environmental studies ethnic studies evolutionary psychology forensics forestry library science mathematical theoretical biology mathematical physics military science network science neural engineering science studies scientific modelling semiotics sociobiology statistics systems science urban planning web science philosophyhistory basic research citizen science fringe science protoscience pseudoscience freedom policy funding method sociology technoscience glossaries of science and engineering aerospace engineering archaeology architecture artificial intelligence astronomy biology botany calculus chemistry civil engineering clinical research computer science ecology economics electrical and electronics engineering engineering entomology environmental science genetics geography geology machine vision mechanical engineering medicine meteoritics meteorology physics probability and statistics robotics speciation structural engineering outline portal categoryvte most of the terms listed in wikipedia glossaries are already defined and explained within wikipedia itself however glossaries like this one are useful for looking up comparing and reviewing large numbers of terms together you can help enhance this page by adding new terms or writing definitions for existing ones this glossary of computer science terms is a list of definitions about computer science its subdisciplines and related fields a abstract data type abstract method abstraction in software engineering and computer science abstraction is the process of removing physical spatial or temporal details it is also very similar in nature to the process of generalization the abstract conceptobjects which are created by keeping common features or attributes to various concrete objects or systems of study the result of the process of abstraction agent architecture in computer science is a blueprint for software agents and intelligent control systems depicting the arrangement of components the architectures implemented by intelligent agents are referred to as cognitive architectures agentbased model aggregate function agile software development is an approach to software development under which requirements and solutions evolve through the collaborative effort of selforganizing and crossfunctional teams and their customersend users algorithm algorithm design refers to a method or mathematical process for problem solving and engineering algorithms the design of algorithms is part of many solution theories of operation research such as dynamic programming and divideandconquer techniques for designing and implementing algorithm designs are also called algorithm design patterns such as the template method pattern and decorator pattern algorithmic efficiency american standard code for information interchange api application programming interface application programming interface application software array data structure an array data structure or simply an array is a data structure consisting of a collection of elements values or variables each identified by at least one array index or key an array is stored such that the position of each element can be computed from its index tuple by a mathematical formula the simplest type of data structure is a linear array also called onedimensional array artifact artificial intelligence ascii american standard code for information exchange assertion associative array automata theory automated reasoning b bandwidth bayesian programming is a formalism and a methodology for having a technique to specify probabilistic models and solve problems when less than the necessary information is available bayes theorem is the central concept behind this programming approach which states that the probability of something occurring in the future can be inferred by past conditions related to the event benchmark best worst and average case big data is a term used to refer to data sets that are too large or complex for traditional dataprocessing application software to adequately deal with data with many cases rows offer greater statistical power while data with higher complexity more attributes or columns may lead to a higher false discovery rate big o notation binary number binary search algorithm binary tree bioinformatics bit bit rate in telecommunications and computing bit rate bitrate or as a variable r is the number of bits that are conveyed or processed per unit of time blacklist bmp file format boolean data type boolean expression boolean logic byte boot booting c callback central processing unit character cipher class classbased programming classorientation client cleanroom software engineering closure cloud computing code library coding coding theory cognitive science commaseparated values compiler compiler theory computability theory computation computational biology computational chemistry computational complexity theory computational model computational neuroscience computational physics computational science computational steering computer computer architecture computer data storage computer ethics computer graphics computer network computer programming computer science computer scientist computer security computer vision concatenation concurrency continuationpassing style conditional control flow creative commons cryptography csv commaseparated values cyberbullying cyberspace d data center database data mining data science data structure data type debugging declaration digital data digital signal processing discrete event simulation disk storage distributed computing divide and conquer algorithm dns domain name system documentation domain name system doubleprecision floatingpoint format download e edge device encryption event eventdriven programming evolutionary computing executable external documentation exception handling executable module expression external library f faulttolerant computer system feasibility study filename extension filter software floating point arithmetic for loop formal methods formal verification functional programming g game theory garbage in garbage out gigo garbage in garbage out gif graphics interchange format gigabyte global variable graph theory h hard problem hash function hash table heap heap sort humancomputer interaction hyper hypo i ide integrated development environment image processing imperative programming incremental build model information space analysis information visualization inheritance inputoutput insertion sort instruction cycle integer integrated development environment integration testing intellectual property intelligent agent interface internal documentation internet internet bot interpreter invariant iteration j java k l library computing linear search linked list linker list loader logic error logic programming m machine learning machine vision mathematical logic matrix memory merge sort method methodology modem n natural language processing number theory numerical analysis o object object code objectoriented analysis and design object oriented programming opensource software operating system optical fiber p pair programming parallel computing parameter peripheral postcondition precondition primary storage primitive data type priority queue procedural programming program lifecycle phase programming language programming language implementation programming language theory prolog python q quantum computing queue quicksort r r programming language radix recursion reference counting relational database reliability engineering regression testing requirements analysis robotics roundoff error router routing table run time run time error s search algorithm secondary storage selection sort semantics sequence set soft computing software software agent software construction software deployment software design software development software development process software engineering software maintenance software prototyping software requirements specification software testing sorting algorithm source code spiral model stack storage string structured storage subroutine symbolic computation syntax syntax error system console t technical documentation thirdgeneration programming language topdown and bottomup design tree type theory u upload uniform resource locator url uniform resource locator user agent user interface user interface design v variable virtual machine vmodel w wav waveform audio file format waterfall model waveform audio file format web crawler wifi x y z contents top 09 a b c d e f g h i j k l m n o p q r s t u v w x y z see also references external links computer science vtemajor fields of computer sciencenote this template roughly follows the 2012 acm computing classification systemhardware printed circuit board peripheral integrated circuit very large scale integration systems on chip socs energy consumption green computing electronic design automation hardware acceleration computer systemsorganization computer architecture embedded system realtime computing dependability networks network architecture network protocol network components network scheduler network performance evaluation network service software organization interpreter middleware virtual machine operating system software quality software notationsand tools programming paradigm programming language compiler domainspecific language modeling language software framework integrated development environment software configuration management software library software repository software development software development process requirements analysis software design software construction software deployment software maintenance programming team opensource model theory of computation model of computation formal language automata theory computational complexity theory logic semantics algorithms algorithm design analysis of algorithms algorithmic efficiency randomized algorithm computational geometry mathematicsof computing discrete mathematics probability statistics mathematical software information theory mathematical analysis numerical analysis informationsystems database management system information storage systems enterprise information system social information systems geographic information system decision support system process control system multimedia information system data mining digital library computing platform digital marketing world wide web information retrieval security cryptography formal methods security services intrusion detection system hardware security network security information security application security humancomputerinteraction interaction design social computing ubiquitous computing visualization accessibility concurrency concurrent computing parallel computing distributed computing multithreading multiprocessing artificialintelligence natural language processing knowledge representation and reasoning computer vision automated planning and scheduling search methodology control method philosophy of artificial intelligence distributed artificial intelligence machine learning supervised learning unsupervised learning reinforcement learning multitask learning crossvalidation graphics animation rendering image manipulation graphics processing unit mixed reality virtual reality image compression solid modeling appliedcomputing ecommerce enterprise software computational mathematics computational physics computational chemistry computational biology computational social science computational engineering computational healthcare digital art electronic publishing cyberwarfare electronic voting video games word processing operations research educational technology document management book category portal wikiproject commons vtesoftware engineeringfields computer programming requirements engineering software deployment software design software maintenance software testing systems analysis formal methods concepts data modeling enterprise architecture functional specification modeling language orthogonality programming paradigm software software archaeology software architecture software configuration management software development methodology software development process software quality software quality assurance software verification and validation structured analysis orientations agile aspectoriented object orientation ontology service orientation sdlc modelsdevelopmental agile eup executable uml incremental model iterative model prototype model rad up scrum spiral model vmodel waterfall model xp other spice cmmi data model er model function model information model metamodeling object model systems model view model languages idef uml usl sysml softwareengineers victor basili kent beck grady booch fred brooks barry boehm peter chen danese cooper ward cunningham tom demarco edsger w dijkstra delores m etter martin fowler adele goldstine margaret hamilton c a r hoare lois haibt mary jean harrold grace hopper watts humphrey michael a jackson ivar jacobson alan kay nancy leveson stephen j mellor bertrand meyer david parnas trygve reenskaug winston w royce james rumbaugh mary shaw peri tarr elaine weyuker niklaus wirth edward yourdon related fields computer science computer engineering project management risk management systems engineering category commons vteglossaries of science and engineering aerospace engineering archaeology architecture artificial intelligence astronomy biology botany calculus chemistry civil engineering clinical research computer science ecology economics electrical and electronics engineering engineering entomology environmental science genetics geography geology machine vision mathematics mechanical engineering medicine meteorology physics probability and statistics psychiatry robotics speciation structural engineering 