The word *computer* can be defined in many ways and can also take many different meanings; a somewhat common definition may be this: computer is a machine that automatically performs mathematical computations. We can also see it as a machine for processing [information](information.md), manipulating symbols or, very generally, as any tool that helps computation, in which case one's fingers or even a [mathematical](math.md) formula itself can be considered a computer. Here we are of course mostly concerned with electronic [digital](digital.md) computers.
Electronic digital computer turned out to be one of the greatest [technological](tech.md) inventions in [history](history.md) for many reasons -- firstly computers allowed creation of many other things which previously required too complex calculations, such as highly complex planes, space rockets and undreamed of factories (and, of course, yet more powerful computers which is why we've seen the exponential growth in computer power), secondly they offered extremely advanced work tools like [robots](robotics.md), virtual 3D visualizations, [artificial intelligence](ai.md) and physics simulators, and they also gave us high quality, cheap [multimedia](multimedia.md) and entertainment like [games](game.md) -- with computers anyone can shoot video, record music, carry around hundreds of movies in his pocket or fly a virtual plane. Most important however is probably the fact that computers enabled the [Internet](internet.md) -- by this they forever changed the world.
- by **[hardware](hw.md) technology**: [electronic](electronics.md) ("lightning in sand"), [mechanical](mechanical.md), [quantum](quantum.md), biological etc.
- by **purpose**: special purpose vs general purpose, [personal](pc.md), [server](server.md), [calculator](calculator.md), [embedded](embedded.md), [workstation](workstation.md), [supercomputers](supercomputer.md), [gaming](game.md) computer etc.
- by the theoretical **[model of computation](model_of_computation.md)** it is based on: [Turing machine](turing_machine.md), [lambda calculus](lambda_calculus.md) etc.
- by **computational power**: how difficult problems the computer is able to solve, i.e. where in the [Chomsky hierarchy](chomsky_hierarchy.md) it stands (typically we want [Turing complete](turing_completeness.md) computers)
- by **other criteria**: price, reliability, durability etc.
*On the left typical personal computer, with case, monitor, keyboard, mouse and speakers; on the right a pocket mechanical calculator of the Curta type.*
**The power of computers is limited**, [Alan Turing](turing.md) mathematically proved that there exist problems that can never be completely solved by any [algorithm](algorithm.md), i.e. there are problems a computer (including our [brain](brain.md)) will never be able to solve (even if solution exists). This is related to the fact that the power of mathematics itself is limited in a similar way (see [Godel's theorems](incompleteness_theorems.md)). Turing also invented the theoretical model of a computer called the [Turing machine](turing_machine.md). Besides the mentioned theoretical limitation, many solvable problems may take too long to compute, at least with computers we currently know (see [computational complexity](computational_complexity.md) and [P vs NP](p_vs_np.md)).
Computers we normally talk about in daily conversations are [electronic](electronics.md) [digital](digital.md) mostly personal computers such as [desktops](desktop.md) and [laptops](laptop.md), possibly also [cell phones](phone.md), [tablets](tablet.md) etc.
Such a computer consists of some kind of [case](case.md) (chassis), internal [hardware](hardware.md) plus [peripheral devices](peripheral.md) that serve for [input and output](io.md) -- these are for example a [keyboard](keyboard.md) and [mouse](mouse.md) (input devices), a [monitor](monitor.md) (output device) or [harddisk](hdd.md) (input/output device). The internals of the computer normally include:
- **[motherboard](motherboard.md)**: The main electronic circuit of the computer into which other components are plugged and which creates the network and interfaces that interconnect them (a [chipset](chipset.md)). It contains slots for expansion cards as well as connectors for external devices, e.g. [USB](usb.md). In a small memory on the board there is the most basic software ([firmware](firmware.md)), such as [BIOS](bios.md), to e.g. enable installation of other software. The board also carries the [clock](clock.md) generator for synchronization of all hardware, heat sensors etc.
- **[CPU](cpu.md)** (central processing unit): Core of the computer, the chip plugged into motherboard that performs general calculations and which runs [programs](program.md), i.e. [software](sw.md).
- **[RAM](ram.md)/working memory/main memory**: Lower capacity volatile (temporary, erased when powered off) working memory of the computer, plugged into motherboard. It is used as a "pen and paper" by the CPU when performing calculations.
- **[disk](disk.md)**: [Non-volatile](volatile.md) (persisting when powered off) large capacity memory for storing [files](file.md) and other [data](data.md), connected to the motherboard via some kind of [bus](bus.md). Different types of disks exist, most commonly [hard disks](hdd.md) and [SSDs](ssd.md).
- **expansion cards ([GPU](gpu.md), sound card, network card, ...)**: Additional hardware cards plugged into motherboard for either enabling or accelerating specific functionality (e.g. GPU for graphics etc.).
- **[PSU](psu.md)** (power supply unit): Converts the input electrical power from the plug to the electrical power needed by the computer.