Las computadoras tienen una larga historia de desarrollo. Cada etapa se describe como una nueva generación y se caracteriza por cambios fundamentales en la tecnología utilizada para operar las computadoras. Las cinco etapas o generaciones son las siguientes:
Las computadoras de primera generación usaban, además de circuitos que incluían tubos de vacío, tambores de almacenamiento de memoria magnética. A menudo tan grandes que ocupaban habitaciones enteras, su funcionamiento era caro y consumían enormes cantidades de electricidad. La resolución de problemas se limitó a uno a la vez. Estas computadoras usaban lenguaje de máquina introducido a través de tarjetas perforadas y la salida llegaba en forma de impresiones.
La segunda generación de computadoras utilizó transistores en lugar de tubos de vacío y la denominada tecnología de núcleo magnético para la memoria. Esto resultó en computadoras más pequeñas, más rápidas y con mayor eficiencia energética. Sin embargo, la información se ingresó utilizando tarjetas perforadas y la salida también se imprimió. El lenguaje de entrada pasó a lenguajes simbólicos. Se desarrollaron las primeras versiones de los lenguajes de programación FORTRAN y COBOL.
Los circuitos integrados anunciaron la llegada de la tercera generación de computadoras y aumentaron drásticamente la eficiencia y la velocidad de las computadoras. Los usuarios ahora interactúan con la computadora a través de teclados y monitores. El sistema operativo permitió la ejecución de muchas aplicaciones diferentes, con una memoria central de monitoreo de programas.
La cuarta generación de computadoras usa microprocesadores. IBM ofreció la primera computadora de uso doméstico en 1981, seguida de cerca por la Macintosh de Apple en 1984. A medida que estos pequeños procesadores se volvían más poderosos, podían conectarse a redes, lo que finalmente condujo a la llegada de Internet. Esta generación vio el desarrollo del mouse, las GUI y los dispositivos portátiles.
La quinta generación, la inteligencia artificial, aún se está desarrollando, aunque ya se están utilizando algunas de las primeras aplicaciones, como el reconocimiento de voz. El objetivo es desarrollar dispositivos capaces de comprender la entrada, el aprendizaje y la autoorganización del lenguaje natural.