Computing: Difference between revisions
convert to article summary style |
|||
Line 9: | Line 9: | ||
<blockquote>"In a general way, we can define computing to mean any goal-oriented activity requiring, benefiting from, or creating computers. Thus, computing includes designing and building hardware and software systems for a wide range of purposes; processing, structuring, and managing various kinds of information; doing scientific studies using computers; making computer systems behave intelligently; creating and using communications and entertainment media; finding and gathering information relevant to any particular purpose, and so on. The list is virtually endless, and the possibilities are vast."</blockquote> |
<blockquote>"In a general way, we can define computing to mean any goal-oriented activity requiring, benefiting from, or creating computers. Thus, computing includes designing and building hardware and software systems for a wide range of purposes; processing, structuring, and managing various kinds of information; doing scientific studies using computers; making computer systems behave intelligently; creating and using communications and entertainment media; finding and gathering information relevant to any particular purpose, and so on. The list is virtually endless, and the possibilities are vast."</blockquote> |
||
A computer is a [[machine]] that manipulates [[Data (computing)|data]] according to a set of [[Source code|instructions]] called a [[computer program]]. The program has an [[Execution (computing)|executable]] form that the computer can use directly to execute the instructions. The same program in its human-readable [[source code]] form, enables a [[programmer]] to study and develop the [[Algorithm#Formalization|algorithm]]. Because the instructions can be carried out in different types of computers, a single set of source instructions converts to machine instructions according to the [[central processing unit]] type. |
|||
The execution [[process (computing)|process]] carries out the instructions in a computer program. Instructions express the [[computation]]s performed by the computer. They trigger sequences of simple actions on the executing machine. Those actions produce effects according to the [[Formal semantics of programming languages|semantics]] of the instructions. |
|||
[[Computer programming]] in general is the process of writing, testing, debugging, and maintaining the [[source code]] and documentation of [[computer program]]s. This source code is written in a [[programming language]], which is an [[artificial language]] often more restrictive or demanding than [[natural language]]s, but easily translated by the computer. The purpose of programming is to invoke the desired behaviour (customization) from the machine. The process of writing high quality source code requires knowledge of both the application's domain ''and'' the computer science domain. The highest-quality software is thus developed by a team of various domain experts, each person a specialist in some area of development. But the term ''programmer'' may apply to a range of program quality, from [[Hacker (hobbyist)|hacker]] to [[Hacker (programmer subculture)|open source contributor]] to professional. And a single programmer could do most or all of the computer programming needed to generate the [[proof of concept]] to launch a new [[Killer application|"killer" application]]. |
|||
==Definitions== |
==Definitions== |
||
Line 29: | Line 23: | ||
A computer is a machine that reads, stores, manipulates and displays data. The most common example are the various [[personal computers]]. Other common examples include: [[mobile phones]], [[mp3 players]], or [[video game consoles]]. |
A computer is a machine that reads, stores, manipulates and displays data. The most common example are the various [[personal computers]]. Other common examples include: [[mobile phones]], [[mp3 players]], or [[video game consoles]]. |
||
== |
== Computer == |
||
{{Main|Computer}} |
|||
The [[Digital Bibliography & Library Project]], as of July 2007, lists over 910,000 bibliographic entries on computer science and several thousand links to the home pages of [[computer scientist]]s. Common topics include: |
|||
{| |
|||
A computer is a [[machine]] that manipulates [[Data (computing)|data]] according to a set of [[Source code|instructions]] called a [[computer program]]. The program has an [[Execution (computing)|executable]] form that the computer can use directly to execute the instructions. The same program in its human-readable [[source code]] form, enables a [[programmer]] to study and develop the [[Algorithm#Formalization|algorithm]]. Because the instructions can be carried out in different types of computers, a single set of source instructions converts to machine instructions according to the [[central processing unit]] type. |
|||
|- |
|||
| valign=top | |
|||
The execution [[process (computing)|process]] carries out the instructions in a computer program. Instructions express the [[computation]]s performed by the computer. They trigger sequences of simple actions on the executing machine. Those actions produce effects according to the [[Formal semantics of programming languages|semantics]] of the instructions. |
|||
* [[Computer science]] |
|||
* [[Theory of computation]] |
|||
=== Computer software === |
|||
* [[:Category:Computational models|Computational models]] |
|||
{{Main|Software}} |
|||
* [[Scientific computing]] |
|||
| style="width:95px;"| || valign=top | |
|||
Computer software or just "software", is a collection of [[computer program]]s and related [[data]] that provides the instructions for telling a [[computer]] what to do and how to do it. Software refers to one or more computer programs and data held in the storage of the computer for some purposes. In other words, software is a set of ''programs, procedures, algorithms'' and its ''documentation'' concerned with the operation of a data processing system. Program software performs the [[Function (engineering)|function]] of the [[Computer program|program]] it implements, either by directly providing [[instruction (computer science)|instructions]] to the computer hardware or by serving as input to another piece of software. The [[Terminology|term]] was coined to contrast to the old term [[computer hardware|hardware]] (meaning physical devices). In contrast to hardware, software "cannot be touched".<ref>{{cite web |
|||
* [[Metacomputing]] |
|||
| title = Wordreference.com: WordNet 2.0 |
|||
* [[Topological computing]] |
|||
| publisher = Princeton University, Princeton, NJ |
|||
* [[Autonomic Computing]] |
|||
| url = http://www.wordreference.com/definition/software |
|||
|} |
|||
| accessdate = 2007-08-19 }}</ref> Software is also sometimes used in a more narrow sense, meaning [[application software]] only. Sometimes the term includes data that has not traditionally been associated with computers, such as film, tapes, and records.<ref>{{cite web|title=software..(n.d.). |work=Dictionary.com Unabridged (v 1.1)| accessdate =2007-04-13|url= http://dictionary.reference.com/browse/software}}</ref> |
|||
==== Application software ==== |
|||
{{Main|Application software}} |
|||
Application software, also known as an "application" or an "app",<!-- for redirect from [[Software application]]--> is [[computer software]] designed to help the user to perform specific tasks. Examples include [[enterprise software]], [[accounting software]], [[office suite]]s, [[graphics software]] and [[media player (application software)|media player]]s. Many application programs deal principally with [[Document file format|documents]]. Apps may be [[Product bundling|bundled]] with the computer and its system software, or may be published separately. Some users are satisfied with the bundled apps and need never install one. |
|||
Application software is contrasted with [[system software]] and [[middleware]], which manage and integrate a computer's capabilities, but typically do not directly apply them in the performance of tasks that benefit the user. The system software serves the application, which in turn serves the user. |
|||
Similar relationships apply in other fields. For example, a shopping mall does not provide the merchandise a shopper is seeking, but provides space and services for retailers that serve the shopper. A bridge may similarly support rail tracks which support trains, allowing the trains to transport passengers. |
|||
Application software applies the power of a particular [[computing platform]] or system software to a particular purpose. Some apps such as [[Microsoft Office]] are available in versions for several different platforms; others have narrower requirements and are thus called, for example, a [[Geographic information system|Geography]] application for [[Microsoft Windows|Windows]] or an [[Android (operating system)|Android]] application for [[Educational software|education]] or [[Linux gaming]]. Sometimes a new and popular application arises which only runs on one platform, increasing the desirability of that platform. This is called a [[killer application]]. |
|||
== Computer user == |
|||
{{Main|User (computing)|End-user}} |
|||
A user is an agent, either a human agent (end-user) or software agent, who uses a computer or network service. A user often has a user account and is identified by a username (also user name), screen name (also screenname), nickname (also nick), or handle, which is derived from the identical Citizen's Band radio term. |
|||
Users are also widely characterized as the class of people that use a system without complete technical expertise required to understand the system fully.[1] In hacker-related contexts, such users are also divided into lusers and power users. |
|||
In projects in which the actor of the system is another system or a software agent, it is quite possible that there is no end-user for the system. In this case, the end-users for the system would be indirect end-users. |
|||
=== Enthusiast computing === |
|||
{{Main|Enthusiast computing}} |
|||
Enthusiast computing refers to a sub-culture of [[personal computer]] users who focus on extremely high-performance computers. Manufacturers of performance-oriented parts typically include an enthusiast model in their offerings. Enthusiast computers (often referred to as a "box", "build", or "rig" by their owners) commonly feature extravagant cases and high-end components, and are sometimes liquid cooled. |
|||
Although high-end computers may be bought retail in the same manner as the common computer, they are frequently built by their owners. Enthusiasts build their systems in order to produce a computer that will out-perform an opponent's computer, thereby "winning" in a contest; to simply enjoy the best images and effects a new PC game has to offer; or even simply to obtain the best possible performance at a variety of tasks. |
|||
== Computer programming == |
|||
{{Main|Computer programming}} |
|||
Computer programming in general is the process of writing, testing, debugging, and maintaining the [[source code]] and documentation of [[computer program]]s. This source code is written in a [[programming language]], which is an [[artificial language]] often more restrictive or demanding than [[natural language]]s, but easily translated by the computer. The purpose of programming is to invoke the desired behaviour (customization) from the machine. The process of writing high quality source code requires knowledge of both the application's domain ''and'' the computer science domain. The highest-quality software is thus developed by a team of various domain experts, each person a specialist in some area of development. But the term ''programmer'' may apply to a range of program quality, from [[Hacker (hobbyist)|hacker]] to [[Hacker (programmer subculture)|open source contributor]] to professional. And a single programmer could do most or all of the computer programming needed to generate the [[proof of concept]] to launch a new [[Killer application|"killer" application]]. |
|||
=== Computer programmer === |
|||
==Hardware== |
|||
{{Main|Programmer}} |
|||
See [[information processor]] for a high-level block diagram. |
|||
{| |
|||
|- |
|||
| valign=top | |
|||
* [[Computer]] |
|||
* [[History of computing hardware]] |
|||
* [[Personal computer hardware]] |
|||
* [[CPU design]] |
|||
* [[Computer network]] |
|||
A programmer, computer programmer, or coder is a person who writes [[computer software]]. The term ''computer programmer'' can refer to a specialist in one area of [[computer programming]] or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to programming may also be known as a programmer analyst. A programmer's primary computer language ([[C (programming language)|C]], [[C++]], [[Java (programming language)|Java]], [[Lisp (programming language)|Lisp]], [[Python programming language|Python]] etc.) is often prefixed to the above titles, and those who work in a web environment often prefix their titles with ''web''. The term ''programmer'' can be used to refer to a [[software developer]], [[software engineer]], [[computer scientist]], or [[software analyst]]. However, members of these [[profession]]s typically{{Citation needed|date=March 2011}} possess other [[software engineering]] skills, beyond programming; for this reason, the term ''programmer'' is sometimes considered an insulting or derogatory oversimplification of these other professions{{Citation needed|date=March 2011}}. This has sparked much debate amongst developers, analysts, computer scientists, programmers, and outsiders who continue to be puzzled at the subtle differences in the definitions of these occupations.<ref>{{cite news|title=No Programmers |url=http://www.ericsink.com/No_Programmers.html}}</ref><ref>{{cite news|title=Developer versus programmer |url=http://codebetter.com/blogs/raymond.lewallen/archive/2005/02/22/55812.aspx}}</ref><ref>{{cite news|title=Developers AND Programmers |url=http://weblogs.asp.net/miked/archive/2006/10/13/_2200_Developers_2200_-and-_2200_Programmers_2200_.aspx}}</ref><ref>{{cite news|title=Programmer vs. Developer vs. Software Engineer |url=http://discuss.joelonsoftware.com/default.asp?joel.3.112837.37}}</ref><ref>{{cite news|title=Programmer vs. Developer vs. Software Engineer |url=http://www.xtremevbtalk.com/archive/index.php/t-233780.html}}</ref> |
|||
|} |
|||
== Computer science == |
|||
===Instruction-level taxonomies=== |
|||
{{Main|Computer science}} |
|||
After the commoditization of [[random-access memory|memory]], attention turned to optimizing CPU performance at the instruction level. Various methods of speeding up the fetch-execute cycle include: |
|||
* designing [[instruction set architectures]] with simpler, faster instructions: [[RISC]] as opposed to [[Complex instruction set computer|CISC]] |
|||
* [[Superscalar]] instruction execution |
|||
* [[Very long instruction word|VLIW]] architectures, which make parallelism explicit |
|||
Computer science or computing science (abbreviated '''CS''' or '''compsci''') is the [[science|scientific]] and [[mathematics|mathematical]] approach in [[information technology]] and [[computing]].<ref>{{Cite doi|10.1145/63238.63239}} "Computer science and engineering is the systematic study of algorithmic processes-their theory, analysis, design, efficiency, implementation, and application-that describe and transform information."</ref><ref>{{cite conference|author=Wegner, P.|title=Research paradigms in computer science|booktitle=Proceedings of the 2nd international Conference on Software Engineering |location=San Francisco, California, United States| date=October 13–15, 1976|publisher=IEEE Computer Society Press, Los Alamitos, CA|quote=Computer science is the study of information structures}}</ref> A [[computer scientist]] is a person who does work at a professional level in computer science and/or has attained a degree in computer science or a related field. |
|||
==Software== |
|||
{| |
|||
|- |
|||
| valign=top | |
|||
* [[Software engineering]] |
|||
* [[Computer programming]] |
|||
* [[Computer|Computational]] |
|||
* [[Software patent]] |
|||
* [[Firmware]] |
|||
* [[Operating system]]s |
|||
* [[Application software|Application Software]] |
|||
** [[Database]]s |
|||
** [[Geographic information system]] |
|||
** [[Spreadsheet]] |
|||
** [[Word processor]] |
|||
| style="width:60px;"| || valign=top | |
|||
* [[Programming languages]] |
|||
** [[Interpreter (computing)|interpreter]]s |
|||
** [[compiler]]s |
|||
** [[assembler (computer programming)|assembler]]s |
|||
* [[Speech recognition]] |
|||
* [[Speech synthesis]] |
|||
|} |
|||
[[Image:EDSAC (25).jpg|right|thumbnail|Part of an early computer, [[Electronic Delay Storage Automatic Calculator|EDSAC]].]] |
|||
Its subfields can be divided into practical techniques for its implementation and application in [[computer system]]s and purely theoretical areas. Some, such as [[computational complexity theory]], which studies fundamental properties of [[computational problem]]s, are highly abstract, while others, such as [[Computer graphics (computer science)|computer graphics]], emphasize real-world applications. Still others focus on the challenges in implementing computations. For example, [[programming language theory]] studies approaches to description of computations, while the study of [[computer programming]] itself investigates various aspects of the use of [[programming language]]s and [[complex systems]], and [[human-computer interaction]] focuses on the challenges in making computers and computations useful, usable, and universally accessible to [[humans]]. |
|||
==History of computing== |
|||
== History of computing == |
|||
{| |
|||
{{Main|History of computing|Timeline of computing}} |
|||
|- |
|||
| valign=top | |
|||
*[[History of computing hardware]] from the [[tally stick]] to the [[quantum computer]] |
|||
*[[History of computer science]] |
|||
*[[Punched card]] |
|||
*[[Unit record equipment]] |
|||
| style="width:10px;"| || valign=top | |
|||
*[[IBM 700/7000 series]] |
|||
*[[IBM 1400 series]] |
|||
*[[System/360]] |
|||
*[[Early IBM disk storage]] |
|||
|} |
|||
The history of computing is longer than the [[history of computing hardware]] and [[computer|modern computing technology]] and includes the history of methods intended for pen and paper or for chalk and slate, with or without the aid of tables. |
|||
==Business computing== |
|||
{| |
|||
|- |
|||
| valign=top | |
|||
* [[Accounting software]] |
|||
* [[Computer-aided design]] |
|||
* [[Computer-aided manufacturing]] |
|||
* [[Computer-assisted dispatch]] |
|||
* [[Customer relationship management]] |
|||
* [[Data warehouse]] |
|||
* [[Decision support system]] |
|||
* [[Electronic data processing]] |
|||
| style="width:70px;"| || valign=top | |
|||
* [[Enterprise resource planning]] |
|||
* [[Geographic information system]] |
|||
* [[Management information system]] |
|||
* [[Material requirements planning]] |
|||
* [[Strategic enterprise management]] |
|||
* [[Supply chain management]] |
|||
* [[Product Lifecycle Management]] |
|||
* [[Utility Computing]] |
|||
|} |
|||
Computing is intimately tied to the representation of [[number]]s. But long before [[abstraction]]s like ''the number'' arose, there were mathematical concepts to serve the purposes of civilization. These concepts include [[one-to-one correspondence]] (the basis of counting), comparison to a standard (used for measurement), and the ''3-4-5'' right triangle (a device for assuring a ''right angle''). |
|||
==Human factors== |
|||
{| |
|||
|- |
|||
| valign=top | |
|||
* [[Accessible computing]] |
|||
* [[Computer-induced medical problems]] |
|||
* [[Computer user satisfaction]] |
|||
| style="width:70px;"| || valign=top | |
|||
* [[Human-computer interaction]] |
|||
* [[Human-centered computing]] |
|||
|} |
|||
==Computer network== |
|||
===Wired and wireless computer network=== |
|||
[[Image:wireless network.jpg|right|thumb|220px|This [[Laptop|notebook computer]] is connected to a [[Wireless Local Area Network|wireless access point]] using a [[PC card]] wireless card.]] |
|||
Eventually, the concept of numbers became concrete and familiar enough for counting to arise, at times with sing-song mnemonics to teach [[sequence]]s to others. All the known languages have words for at least [[numbers in various languages|"one" and "two"]] (although this is disputed: see [[Piraha language]]), and even some animals like the [[Common Blackbird|blackbird]] can distinguish a surprising number of items.<ref> |
|||
* Types |
|||
[[Konrad Lorenz]], ''[[King Solomon's Ring (nonfiction)|King Solomon's Ring]]'' |
|||
** [[Wide Area Network]] |
|||
</ref> |
|||
** [[Metropolitan Area Network]] |
|||
** City Area Network |
|||
** [[Village Area Network]] |
|||
** [[Local Area Network]] |
|||
*** [[Wireless Local Area Network]] |
|||
* [[Mesh networking]] |
|||
* [[Collaborative workspace]] |
|||
* [[Internet]] |
|||
* [[Network Management]] |
|||
The earliest known tool for use in computation was the [[abacus]], and it was thought to have been invented in [[Babylon]] circa [[2400 BC]]. Its original style of usage was by lines drawn in sand with pebbles. Abaci, of a more modern design, are still used as calculation tools today. This was the first known computer and most advanced system of calculation known to date - preceding Greek methods by 2,000 years. |
|||
===Computing technology based wireless networking (CbWN)=== |
|||
The main goal of CbWN is to optimize the system performance of the flexible wireless network. |
|||
== Computer network == |
|||
* [[Source coding]] |
|||
{{Main|Computer network}} |
|||
** [[Codebook]] design for side information based transmission techniques such as [[Precoding]] |
|||
** Wyner-Ziv coding for [[cooperative wireless communications]] |
|||
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information.<ref>{{citation |url=http://www.atis.org/glossary/definition.aspx?id=6555 |title=Computer network definition |accessdate=2011-11-12}}</ref> Where at least one process in one device is able to send/receive data to/from at least one process residing in a remote device, then the two devices are said to be in a network. |
|||
* [[Security]] |
|||
** [[Dirty paper coding (DPC)|Dirty paper coding]] for cooperative multiple antenna or user precoding |
|||
Networks may be classified according to a wide variety of characteristics such as the medium used to transport the data, [[communications protocol]] used, scale, [[Network topology|topology]], and organizational scope. |
|||
* [[Intelligence]] |
|||
** [[Game theory]] for wireless networking |
|||
** [[Cognitive radio|Cognitive communications]] |
|||
** Flexible sectorization, [[Beamforming]] and [[Space-division multiple access|SDMA]] |
|||
[[Communications protocol]]s define the rules and data formats for exchanging information in a computer network, and provide the basis for [[computer network programming|network programming]]. Well-known communications protocols are [[Ethernet]], a hardware and [[Link Layer]] standard that is ubiquitous in [[local area network]]s, and the [[Internet Protocol Suite]], which defines a set of protocols for internetworking, i.e. for data communication between multiple networks, as well as host-to-host data transfer, and application-specific data transmission formats. |
|||
* [[Software]] |
|||
** [[Software-defined radio|Software defined radio (SDR)]] |
|||
** Programmable air-interface |
|||
** Downloadable algorithm: e.g., downloadable codebook for [[Precoding]] |
|||
Computer networking is sometimes considered a sub-discipline of [[electrical engineering]], [[telecommunications]], [[computer science]], [[information technology]] or [[computer engineering]], since it relies upon the theoretical and practical application of these disciplines. |
|||
==Computer security== |
|||
* [[Cryptology]] – [[cryptography]] – [[information theory]] |
|||
* [[Software cracking|Cracking]] – [[demon dialing]] – [[Hacker (computer security)|Hacking]] – [[war dialing]] – [[war driving]] |
|||
* [[Social engineering (computer security)|Social engineering]] – [[Dumpster diving]] |
|||
* [[Physical security]] – [[Black bag job]] |
|||
* [[Computer insecurity]] |
|||
* [[Computer surveillance]] |
|||
* [[Defensive programming]] |
|||
* [[Malware]] |
|||
* [[Security engineering]] |
|||
== |
=== Internet ==== |
||
{{Main|Internet}} |
|||
===Numeric data=== |
|||
* [[integral data type]]s – bit, byte, etc. |
|||
* [[real data type]]s: |
|||
** [[Floating point]] ([[Single precision]], [[Double precision]], etc.) |
|||
** [[fixed-point arithmetic|Fixed point]] |
|||
** [[Rational number]] |
|||
* [[Decimal]] |
|||
** [[Binary-coded decimal]] (BCD) |
|||
** [[Excess-3]] BCD (XS-3) |
|||
** [[bi-quinary coded decimal|Biquinary-coded decimal]] |
|||
* representation: [[Binary numeral system|Binary]] – [[Octal]] – [[Decimal]] – [[Hexadecimal]] (hex) |
|||
*[[Computer mathematics]] – [[Computer numbering formats]] – |
|||
The Internet is a global system of interconnected [[computer network]]s that use the standard [[Internet protocol suite]] (TCP/IP) to serve billions of users worldwide. It is a ''network of networks'' that consists of millions of private, public, academic, business, and government networks, of local to global scope, that are linked by a broad array of electronic, wireless and optical networking technologies. The Internet carries an extensive range of [[information]] resources and services, such as the inter-linked [[hypertext]] documents of the [[World Wide Web]] (WWW) and the [[information infrastructure|infrastructure]] to support [[email]]. |
|||
===Character data=== |
|||
* storage: [[Character (computing)|Character]] – [[string (computer science)|String]] – [[plain text|P]][[lain Iwakura|lain]][[plain text|text]] |
|||
** representation: [[ASCII]] – [[Unicode]] – Multibyte – [[EBCDIC]] (Widecharacter, Multicharacter) – [[Fieldata]] – [[Baudot code|Baudot]] |
|||
== Computer industry == |
|||
===Other data topics=== |
|||
{{Main|Computer industry}} |
|||
{| |
|||
|- |
|||
| valign=top | |
|||
*[[Data compression]] |
|||
*[[Digital signal processing]] |
|||
*[[Image processing]] |
|||
| style="width:70px;"| || valign=top | |
|||
*[[Data management]] |
|||
*[[Routing]] |
|||
*[[Data Protection Act]] |
|||
|} |
|||
==Classes of computers== |
|||
[[Image:AKAT-1.JPG|thumb|upright|Polish [[analog computer]] [[AKAT-1]]]] |
|||
There are several terms which describe classes, or categories, of computers: |
|||
{| |
|||
|- |
|||
| valign=top | |
|||
* [[Analog computer]] |
|||
* [[Calculator]] |
|||
* [[Desktop computer]] |
|||
* [[Desktop replacement computer]] |
|||
* [[Digital computer]] |
|||
* [[Embedded computer]] |
|||
* [[Home computer]] |
|||
* [[Laptop]] |
|||
* [[Mainframe computer|Mainframe]] |
|||
* [[Minicomputer]] |
|||
* [[Microcomputer]] |
|||
| style="width:40px;"| || valign=top | |
|||
* [[Personal computer]] |
|||
* [[Portable computer]] |
|||
* [[Personal digital assistant]] (aka PDA, or [[Handheld computer]]) |
|||
* [[Programmable logic controller]] or PLC |
|||
* [[Server (computing)|Server]] |
|||
* [[Smartphone]] |
|||
* [[Supercomputer]] |
|||
* [[Tablet computer]] |
|||
* [[Video game console]] |
|||
* [[Workstation]] |
|||
|} |
|||
The computer industry is made up of all of the businesses involved in developing [[computer software]], designing [[computer hardware]] and [[computer networking]] infrastructures, the manufacture of [[computer]] components and the provision of [[information technology]] services. |
|||
==Companies – current== |
|||
{| |
|||
|- |
|||
| valign=top | |
|||
* [[Apple Inc.|Apple]] |
|||
* [[Asus]] |
|||
* [[Avaya]] |
|||
* [[Dell, Inc.|Dell]] |
|||
* [[Fujitsu]] |
|||
* [[Gateway Computers]] |
|||
* [[Groupe Bull]] |
|||
* [[Hindustan Computers|HCL]] |
|||
* [[Hewlett-Packard]] |
|||
* [[Hitachi, Ltd.]] |
|||
* [[Intel Corporation]] |
|||
| style="width:70px;"| || valign=top | |
|||
* [[International Business Machines|IBM]] |
|||
* [[Lenovo]] |
|||
* [[Microsoft]] |
|||
* [[NEC Corporation]] |
|||
* [[Novell, Inc.|Novell]] |
|||
* [[Panasonic]] |
|||
* [[Red Hat]] |
|||
* [[Silicon Graphics]] |
|||
* [[Sun Microsystems]] |
|||
* [[Unisys]] |
|||
|} |
|||
==Companies – historic== |
|||
{| |
|||
|- |
|||
| valign=top | |
|||
* [[Acorn Computers Ltd|Acorn]], bought by [[Olivetti]] |
|||
* [[Amdahl Corporation]], bought by [[Fujitsu]] |
|||
* [[Bendix Corporation]] |
|||
* [[Burroughs Corporation]], merged with [[Sperry Corporation|Sperry]] to become [[Unisys]] |
|||
* [[Compaq]], bought by [[Hewlett-Packard]] |
|||
* [[Control Data]] |
|||
* [[Cray]] |
|||
* [[Data General]] |
|||
* [[Digital Equipment Corporation]], bought by [[Compaq]], later bought by [[Hewlett-Packard]] |
|||
* [[Digital Research]] – produced system software for early [[Intel]] microprocessor-based computers |
|||
* [[English Electric Company]] |
|||
* [[Ferranti]] |
|||
* [[General Electric]], computer division bought by [[Honeywell]], then [[Groupe Bull|Bull]] |
|||
* [[Honeywell]], computer division bought by [[Groupe Bull|Bull]] |
|||
* [[International Computers Limited|ICL]] |
|||
* [[Leo Computers|Leo]] |
|||
* [[Lisp Machines, Inc.]] |
|||
* [[Marconi Company|Marconi]] |
|||
* [[Micro Instrumentation and Telemetry Systems]] produced the first widely sold microcomputer system (kit and assembled) |
|||
| style="width:10px;"| || valign=top | |
|||
* [[Nixdorf Computer AG|Nixdorf Computer]], bought by [[Siemens AG|Siemens]] |
|||
* [[Norsk Data]] |
|||
* [[Olivetti]] |
|||
* [[Osborne Computer Corporation|Osborne]] |
|||
* [[Packard Bell]] |
|||
* [[PERQ]] |
|||
* [[Prime Computer]] |
|||
* [[Raytheon]] |
|||
* [[Royal McBee]] |
|||
* [[RCA]] |
|||
* [[Scientific Data Systems]], sold to [[Xerox]] |
|||
* [[Siemens AG|Siemens]] |
|||
* [[Sinclair Research Ltd|Sinclair Research]], created the [[Sinclair ZX Spectrum]], [[Sinclair ZX80|ZX80]] and [[Sinclair ZX81|ZX81]] |
|||
* [[SWTPC|Southweat Technical products Corporation]] produced microcomputers systems (kit and assembled), peripherals, and software based on [[Motorola]] [[Motorola 6800|6800]] and [[Motorola 6809|6809]] microcomputer chips |
|||
* [[Sperry Corporation|Sperry]], which bought [[UNIVAC]], and later merged with [[Burroughs Corporation|Burroughs]] to become [[Unisys]] |
|||
* [[Symbolics]] |
|||
* [[UNIVAC]] |
|||
* [[Varian Data Machines]], a division of [[Varian Associates]] which was bought by [[Sperry Corporation|Sperry]] |
|||
* [[Wang Laboratories|Wang]] |
|||
|} |
|||
==Organizations== |
|||
[[File:Computer Lab at GGI 3.JPG|thumb|A computer Lab]] |
|||
===Professional=== |
|||
{{div col|colwidth=30em}} |
|||
* [[Association for Computing Machinery]] (ACM) |
|||
* [http://www.asc.org.uk/ Association for Survey Computing] (ASC) |
|||
* [[British Computer Society]] (BCS) |
|||
* [[Canadian Information Processing Society]] (CIPS) |
|||
* [[Computer Measurement Group]] (CMG) |
|||
* [[Institute of Electrical and Electronics Engineers]] (IEEE), in particular the [[IEEE Computer Society]] |
|||
* [[Institution of Electrical Engineers]] |
|||
* [[International Electrotechnical Commission]] (IEC) |
|||
{{div col end}} |
|||
=== |
=== Software industry === |
||
{{Main|Software industry}} |
|||
''See also: [[Standardization]] and [[Standards organization]]'' |
|||
{{div col|colwidth=30em}} |
|||
* [[International Electrotechnical Commission]] (IEC) |
|||
* [[International Organization for Standardization]] (ISO) |
|||
* [[IEEE|Institute of Electrical and Electronics Engineers]] (IEEE) |
|||
* [[Internet Engineering Task Force]] (IETF) |
|||
* [[World Wide Web Consortium]] (W3C) |
|||
{{div col end}} |
|||
The software industry includes businesses for [[software development|development]], [[software maintenance|maintenance]] and [[software publisher|publication]] of [[software]] that are using any business model. The industry also includes software [[Service (economics)|service]]s, such as [[training]], [[software documentation|documentation]], and [[consultancy|consulting]]. |
|||
===Open standards=== |
|||
''See also [[Open standard]]'' |
|||
* [[Apdex|Apdex Alliance]] – ''Application Performance Index'' |
|||
* [[Application Response Measurement]] (ARM) |
|||
==See also== |
==See also== |
Revision as of 12:47, 10 March 2012
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology. Computer science (or computing science) is the study and the science of the theoretical foundations of information and computation and their implementation and application in computer systems.
Computing Curricula 2005[1] defined "computing" as:
"In a general way, we can define computing to mean any goal-oriented activity requiring, benefiting from, or creating computers. Thus, computing includes designing and building hardware and software systems for a wide range of purposes; processing, structuring, and managing various kinds of information; doing scientific studies using computers; making computer systems behave intelligently; creating and using communications and entertainment media; finding and gathering information relevant to any particular purpose, and so on. The list is virtually endless, and the possibilities are vast."
Definitions
The term "computing" has sometimes been narrowly defined, as in a 1989 ACM report on Computing as a Discipline[2]:
The discipline of computing is the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application. The fundamental question underlying all computing is "What can be (efficiently) automated?"
Computing Curricula 2005[1] also recognizes that the meaning of "computing" depends on the context:
Computing also has other meanings that are more specific, based on the context in which the term is used. For example, an information systems specialist will view computing somewhat differently from a software engineer. Regardless of the context, doing computing well can be complicated and difficult. Because society needs people to do computing well, we must think of computing not only as a profession but also as a discipline.
The term "computing" is also synonymous with counting and calculating. In earlier times, it was used in reference to mechanical computing machines.
A computer is a machine that reads, stores, manipulates and displays data. The most common example are the various personal computers. Other common examples include: mobile phones, mp3 players, or video game consoles.
Computer
A computer is a machine that manipulates data according to a set of instructions called a computer program. The program has an executable form that the computer can use directly to execute the instructions. The same program in its human-readable source code form, enables a programmer to study and develop the algorithm. Because the instructions can be carried out in different types of computers, a single set of source instructions converts to machine instructions according to the central processing unit type.
The execution process carries out the instructions in a computer program. Instructions express the computations performed by the computer. They trigger sequences of simple actions on the executing machine. Those actions produce effects according to the semantics of the instructions.
Computer software
Computer software or just "software", is a collection of computer programs and related data that provides the instructions for telling a computer what to do and how to do it. Software refers to one or more computer programs and data held in the storage of the computer for some purposes. In other words, software is a set of programs, procedures, algorithms and its documentation concerned with the operation of a data processing system. Program software performs the function of the program it implements, either by directly providing instructions to the computer hardware or by serving as input to another piece of software. The term was coined to contrast to the old term hardware (meaning physical devices). In contrast to hardware, software "cannot be touched".[3] Software is also sometimes used in a more narrow sense, meaning application software only. Sometimes the term includes data that has not traditionally been associated with computers, such as film, tapes, and records.[4]
Application software
Application software, also known as an "application" or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with documents. Apps may be bundled with the computer and its system software, or may be published separately. Some users are satisfied with the bundled apps and need never install one.
Application software is contrasted with system software and middleware, which manage and integrate a computer's capabilities, but typically do not directly apply them in the performance of tasks that benefit the user. The system software serves the application, which in turn serves the user.
Similar relationships apply in other fields. For example, a shopping mall does not provide the merchandise a shopper is seeking, but provides space and services for retailers that serve the shopper. A bridge may similarly support rail tracks which support trains, allowing the trains to transport passengers.
Application software applies the power of a particular computing platform or system software to a particular purpose. Some apps such as Microsoft Office are available in versions for several different platforms; others have narrower requirements and are thus called, for example, a Geography application for Windows or an Android application for education or Linux gaming. Sometimes a new and popular application arises which only runs on one platform, increasing the desirability of that platform. This is called a killer application.
Computer user
A user is an agent, either a human agent (end-user) or software agent, who uses a computer or network service. A user often has a user account and is identified by a username (also user name), screen name (also screenname), nickname (also nick), or handle, which is derived from the identical Citizen's Band radio term.
Users are also widely characterized as the class of people that use a system without complete technical expertise required to understand the system fully.[1] In hacker-related contexts, such users are also divided into lusers and power users.
In projects in which the actor of the system is another system or a software agent, it is quite possible that there is no end-user for the system. In this case, the end-users for the system would be indirect end-users.
Enthusiast computing
Enthusiast computing refers to a sub-culture of personal computer users who focus on extremely high-performance computers. Manufacturers of performance-oriented parts typically include an enthusiast model in their offerings. Enthusiast computers (often referred to as a "box", "build", or "rig" by their owners) commonly feature extravagant cases and high-end components, and are sometimes liquid cooled.
Although high-end computers may be bought retail in the same manner as the common computer, they are frequently built by their owners. Enthusiasts build their systems in order to produce a computer that will out-perform an opponent's computer, thereby "winning" in a contest; to simply enjoy the best images and effects a new PC game has to offer; or even simply to obtain the best possible performance at a variety of tasks.
Computer programming
Computer programming in general is the process of writing, testing, debugging, and maintaining the source code and documentation of computer programs. This source code is written in a programming language, which is an artificial language often more restrictive or demanding than natural languages, but easily translated by the computer. The purpose of programming is to invoke the desired behaviour (customization) from the machine. The process of writing high quality source code requires knowledge of both the application's domain and the computer science domain. The highest-quality software is thus developed by a team of various domain experts, each person a specialist in some area of development. But the term programmer may apply to a range of program quality, from hacker to open source contributor to professional. And a single programmer could do most or all of the computer programming needed to generate the proof of concept to launch a new "killer" application.
Computer programmer
A programmer, computer programmer, or coder is a person who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to programming may also be known as a programmer analyst. A programmer's primary computer language (C, C++, Java, Lisp, Python etc.) is often prefixed to the above titles, and those who work in a web environment often prefix their titles with web. The term programmer can be used to refer to a software developer, software engineer, computer scientist, or software analyst. However, members of these professions typically[citation needed] possess other software engineering skills, beyond programming; for this reason, the term programmer is sometimes considered an insulting or derogatory oversimplification of these other professions[citation needed]. This has sparked much debate amongst developers, analysts, computer scientists, programmers, and outsiders who continue to be puzzled at the subtle differences in the definitions of these occupations.[5][6][7][8][9]
Computer science
Computer science or computing science (abbreviated CS or compsci) is the scientific and mathematical approach in information technology and computing.[10][11] A computer scientist is a person who does work at a professional level in computer science and/or has attained a degree in computer science or a related field.
Its subfields can be divided into practical techniques for its implementation and application in computer systems and purely theoretical areas. Some, such as computational complexity theory, which studies fundamental properties of computational problems, are highly abstract, while others, such as computer graphics, emphasize real-world applications. Still others focus on the challenges in implementing computations. For example, programming language theory studies approaches to description of computations, while the study of computer programming itself investigates various aspects of the use of programming languages and complex systems, and human-computer interaction focuses on the challenges in making computers and computations useful, usable, and universally accessible to humans.
History of computing
The history of computing is longer than the history of computing hardware and modern computing technology and includes the history of methods intended for pen and paper or for chalk and slate, with or without the aid of tables.
Computing is intimately tied to the representation of numbers. But long before abstractions like the number arose, there were mathematical concepts to serve the purposes of civilization. These concepts include one-to-one correspondence (the basis of counting), comparison to a standard (used for measurement), and the 3-4-5 right triangle (a device for assuring a right angle).
Eventually, the concept of numbers became concrete and familiar enough for counting to arise, at times with sing-song mnemonics to teach sequences to others. All the known languages have words for at least "one" and "two" (although this is disputed: see Piraha language), and even some animals like the blackbird can distinguish a surprising number of items.[12]
The earliest known tool for use in computation was the abacus, and it was thought to have been invented in Babylon circa 2400 BC. Its original style of usage was by lines drawn in sand with pebbles. Abaci, of a more modern design, are still used as calculation tools today. This was the first known computer and most advanced system of calculation known to date - preceding Greek methods by 2,000 years.
Computer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information.[13] Where at least one process in one device is able to send/receive data to/from at least one process residing in a remote device, then the two devices are said to be in a network.
Networks may be classified according to a wide variety of characteristics such as the medium used to transport the data, communications protocol used, scale, topology, and organizational scope.
Communications protocols define the rules and data formats for exchanging information in a computer network, and provide the basis for network programming. Well-known communications protocols are Ethernet, a hardware and Link Layer standard that is ubiquitous in local area networks, and the Internet Protocol Suite, which defines a set of protocols for internetworking, i.e. for data communication between multiple networks, as well as host-to-host data transfer, and application-specific data transmission formats.
Computer networking is sometimes considered a sub-discipline of electrical engineering, telecommunications, computer science, information technology or computer engineering, since it relies upon the theoretical and practical application of these disciplines.
Internet =
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite (TCP/IP) to serve billions of users worldwide. It is a network of networks that consists of millions of private, public, academic, business, and government networks, of local to global scope, that are linked by a broad array of electronic, wireless and optical networking technologies. The Internet carries an extensive range of information resources and services, such as the inter-linked hypertext documents of the World Wide Web (WWW) and the infrastructure to support email.
Computer industry
The computer industry is made up of all of the businesses involved in developing computer software, designing computer hardware and computer networking infrastructures, the manufacture of computer components and the provision of information technology services.
Software industry
The software industry includes businesses for development, maintenance and publication of software that are using any business model. The industry also includes software services, such as training, documentation, and consulting.
See also
{{{inline}}}
References
- ^ a b The Joint Task Force for Computing Curricula 2005. Computing Curricula 2005: The Overview Report (pdf)
- ^ Computing as a Discipline (pdf)
- ^ "Wordreference.com: WordNet 2.0". Princeton University, Princeton, NJ. Retrieved 2007-08-19.
- ^ "software..(n.d.)". Dictionary.com Unabridged (v 1.1). Retrieved 2007-04-13.
- ^ "No Programmers".
- ^ "Developer versus programmer".
- ^ "Developers AND Programmers".
- ^ "Programmer vs. Developer vs. Software Engineer".
- ^ "Programmer vs. Developer vs. Software Engineer".
- ^ Attention: This template ({{cite doi}}) is deprecated. To cite the publication identified by doi:10.1145/63238.63239, please use {{cite journal}} (if it was published in a bona fide academic journal, otherwise {{cite report}} with
|doi=10.1145/63238.63239
instead. "Computer science and engineering is the systematic study of algorithmic processes-their theory, analysis, design, efficiency, implementation, and application-that describe and transform information." - ^ Wegner, P. (October 13–15, 1976). "Research paradigms in computer science". Proceedings of the 2nd international Conference on Software Engineering. San Francisco, California, United States: IEEE Computer Society Press, Los Alamitos, CA.
Computer science is the study of information structures
{{cite conference}}
: Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help) - ^ Konrad Lorenz, King Solomon's Ring
- ^ Computer network definition, retrieved 2011-11-12
External links
http://foldoc.org/contents.html Free on-line dictionary of computing
http://pubs.doc.ic.ac.uk/ open-access repository of publications - Department of Computing - Imperial College London