Oprogramowanie
Podstawowe rodzaje oprogramowania to system BIOS, system operacyjny, programy użytkowe i programy narzędziowe (tzw. sterowniki). BIOS jest programem zapisanym w specjalnej trwałej pamięci umieszczonej na płycie głównej każdego komputera. Zawiera zestaw podstawowych procedur służących do uruchomienia komputera. System operacyjny jest z reguły zapisany na dysku magnetycznym, choć w miniaturowych komputerach naręcznych lub terminalach najczęściej przechowywany w trwałej pamięci półprzewodnikowej. Jego podstawowym zadaniem jest obsługa funkcji umożliwiających współpracę elementów komputera i oprogramowania użytkowego w szczególności zaś obsługa funkcji pozwalających na komunikację użytkownika z komputerem. W przypadku sieciowych systemów operacyjnych oprogramowanie służy również do obsługi wymiany informacji z innymi komputerami. Aplikacja (program użytkowy) jest oprogramowaniem napisanym w celu realizacji określonych zadań. Tego typu programy nadają komputerom sens użytkowy i otwierają możliwości praktycznych zastosowań. Liczba różnego typu aplikacji jest obecnie ogromna. Są to zarówno oprogramowania do obsługi dużych korporacyjnych baz danych, programy do zarządzania procesami produkcyjnymi lub wspomagania projektowania, jak i programy do komunikacji przez Internet, programy biurowe (edytory tekstów, arkusze kalkulacyjne, terminarze), edukacyjne lub gry komputerowe. W procesie tworzenia oprogramowania ważną rolę odgrywają języki programowania - można tu wyróżnić tzw. języki niskiego poziomu, które wykorzystują podstawowe zestawy rozkazów wykonywanych przez procesor oraz języki wysokiego poziomu (np. C++, Java), które oferują inny, zadaniowy a nie sprzętowy zestaw poleceń i funkcji. Tłumaczenie na podstawowe rozkazy procesora odbywa się później automatycznie przy pomocy specjalnego oprogramowania. Te ostatnie są najczęściej dostępne jako rozbudowane zestawy programów wyposażone w moduły do pisania programu, kontroli jego poprawności oraz kompilacji tzn. tworzenia wynikowego kodu binarnego (rozkazy procesora zapisane jako ciąg zer i jedynek). Dla programistów ważnym elementem są też tzw. biblioteki funkcji API. Są to zestawy programów do sterowania i wymiany informacji z innymi aplikacjami lub sprzętem z reguły udostępniane przez jego producentów.