Computerprogramma

Een computerprogramma (ook software) is een verzameling instructies die aangeeft wat een computer (de hardware) moet doen. Als een computerprogramma wordt uitgevoerd, leest de computer de instructies uit het programma zoals dat is opgeslagen op een gegevensdrager (bijvoorbeeld uit bestanden op een harde schijf) en voert de programmacode volgens voorschrift uit.
Programmeertalen

Programma's worden in verschillende programmeertalen geschreven (geprogrammeerd). Vaak worden deze programma's door een compiler vertaald naar machinetaal. In andere gevallen wordt het programma uitgevoerd door een interpreter (tolk). Slechts zelden wordt een programma direct in assembler geschreven; dat gebeurt uitsluitend wanneer maximale efficiëntie vereist is.!
Model van computerprogramma's
De Engelse wiskundige Alan Turing beschreef een theoretische machine, de Turingmachine, die een model van het rekenen vormt zoals de computer dat doet. De machine kan worden geconfigureerd met een eindige verzameling mogelijke toestandsovergangen: zo'n configuratie kan worden gezien als het model van een programma. Een verschil is dat in computers het rekenen gebeurt op het ingebouwde geheugen, dat eindig is.
Naast Turingmachines bestaan er nog allerlei andere soorten wiskundige modellen van het rekenen, waarmee uiteenlopende aspecten van het rekenen bestudeerd kunnen worden.
Soorten

Computerprogramma's komen in allerlei soorten en maten voor:
- Het besturingssysteem dat een computer draaiende houdt en de computergebruiker de mogelijkheid biedt om andere programma's te starten, gegevens te bewaren, en naar randapparatuur te sturen (bijvoorbeeld naar een printer om af te drukken)
- Stuurprogramma's, programmatuur die specifieke hardware geschikt maakt voor gebruik op de betreffende computer met besturingssysteem.
- Kantoorsoftwarepakketten:
- Bedrijfssoftware:
- CAD-systeem Computer Aided Design
- PDM-systeem Product Data Management
- ERP-systeem Enterprise Resource Planning
- SCM-systeem Supply Chain Management
- CRM/EMM-systeem Customer Relationship Management / Enterprise Marketing Management
- EDM/ECM-systeem Enterprise Document / Content Management
- HRM-systeem Human Resource Management
- Grafische programmatuur
- Audioprogrammatuur
- Netwerkprogrammatuur (bijvoorbeeld voor Internet)
- Spellen
- Simulaties
- Embedded software