Un calculator este un echipament capabil de a procesa informatii si de a efectua calcule complexe la viteze ce depasesc cu mult posibilitatile creierului uman. Calculatoarele proceseaza datele prin intermediul unor seturi de instructiuni denumite programe. Calculatoarele s-au schimbat de-a lungul timpului; si-au crescut viteza, puterea si eficienta. Aceste schimbari au dus la includerea calculatoarelor in generatii functie de specificul lor.
Generatia I (1951-1959) - folosea sute de tuburi electronice, benzi magnetice pentru memorie externa si cartele perforate pentru intrarea datelor iar operatorii umani aveau rolul de a aseza o serie de comutatoare pe pozitiile 0 sau 1 conform schemelor cerute de program. Se folosea limbajul masina si de asamblare in programarea lor. Ca exemplu, din aceasta categorie este calculatorul UNIVAC I.
Generatia II. (1959-1965) - este caracteristica prin folosirea tranzistoarelor si elementelor semiconductoare pentru realizarea logicii calculatorului, memorie interna pe miezuri magnetice, banda magnetica dar si discul magnetic care este introdus ca memorie externa. Cartelele magnetice ca suport pentru datele de intrare, cartele perforate si hartie cu suport pentru datele de iesire, incep sa fie folosite limbaje de nivel inalt in programele lor _FORTRAN, COBOL, BASIC - operatorii manevrau cartelele perforate. Ca exemplu, poate fi folosit calculatorul Honeywell 200.
Generatia III. (1965-1971) - foloseste circuitele integrate ca elemente logice, se impune folosirea discului magnetic ca memorie externa, monitoare si tastaturi pentru intrarea si iesirea datelor, primele sisteme de operare complete care reduc la minimum interventia operatorilor umani , se introduce conceptul de "familie de calculatoare" ce permite adaptarea mai usoara a unui calculator la necesitatile beneficiarului prin extinderea si actualizarea echipamentului si softului. Exemplu tipic este IBM System 360.