A pesar de que los algoritmos han sido diseñados y escritos por lo menos desde el tiempo de Euclides; es que tan sólo en los últimos cincuenta años (desde el desarrollo de la computadora digital) los métodos de expresar algoritmos han sido objeto de un extenso estudio. En la actualidad existen distintos paradigmas de programación, cientos de lenguajes de programación en uso activo, muchos más en existencia y aún más por ser diseñados. El propósto de este curso es el dar una introducción a los principios del estudio de la programación, y brindar los fundamentos básicos en este tópico. Al brindar un estudio exhaustivo de los principios del diseño de los lenguajes de programación es que este curso pretende convertir al estudiante en un mejor programador. Adicionalmente este curso es útil si se necesita tomar la decisión acerca de que lenguaje de programación usar para un proyecto, o si alguna vez necesita diseñar su propio lenguaje.