Los algoritmos son secuencias de pasos para resolver un problema, expresados en un lenguaje de programación. Deben tener entrada y salida de datos, y un proceso de pasos. Existen diferentes formas de representar algoritmos antes de codificarlos, como diagramas de flujo. Los lenguajes de programación incluyen lenguajes de máquina, ensamblador y de alto nivel como imperativos, estructurados u orientados a objetos. Los datos tienen nombre, tipo y valor, y existen diferentes tipos como numéricos, lógicos y de caracteres.