Większość współczesnych komputerów opartych jest na tzw. architekturze von Neumanna, tj. składa się z trzech podstawowych elementów:
* procesora ? podzielonego na część arytmetyczno-logiczną czyli układu, który faktycznie wykonuje wszystkie konieczne obliczenia oraz część sterującą,
* pamięci RAM ? (od ang. Random Access Memory) czyli układy scalone, które przechowują program i dane oraz bieżące wyniki obliczeń procesora i stale wymienia dane z procesorem,
* urządzeń wejścia/wyjścia ? które służą do komunikowania się komputera z otoczeniem.
Jakkolwiek istnieją mechaniczne urządzenia liczące, które potrafią realizować całkiem złożone programy, zazwyczaj nie zalicza się ich do komputerów. Warto jednak pamiętać, że prawzorem komputera była maszyna Turinga, którą można by wykonać w całości z części mechanicznych, a pierwsze maszyny ułatwiające obliczenia były znane w starożytności, np. abakus z 440 p.n.e..
Współcześnie komputery najczęściej dzieli się na:
* komputery osobiste (”PC”, z ang. personal computer) ? o rozmiarach umożliwiających ich umieszczenie na biurku,
* komputery domowe ? poprzedniki komputerów osobistych,
* komputery mainframe ? często o większych rozmiarach, których zastosowaniem jest przetwarzanie dużych ilości danych,
* superkomputery ? największe komputery o dużej mocy obliczeniowej, wykorzystywane do czasochłonnych obliczeń naukowych i symulacji skomplikowanych systemów.
To co zdecydowanie odróżnia obecne komputery od wszystkich innych maszyn jest możliwość ich programowania, czyli wprowadzenia do pamięci komputera listy instrukcji, które mogą być wykonane w innym czasie.
W większości przypadków komendy które komputer wykonuje, są bardzo proste – dodawanie dwóch liczb, przeniesienie danych z jednego miejsca w inne, wyświetlenie komunikatu itd. Instrukcje te odczytywane są z pamięci komputera i zazwyczaj wykonywane są w tej samej kolejności, co w pamięci.
Komputer od tradycyjnego kalkulatora odróżnia zdolność wykonywania wielokrotnie, automatycznie powtarzanych obliczeń, wg algorytmicznego wzorca zwanego programem, gdy tymczasem kalkulator może zwykle wykonywać tylko pojedyncze działania.