El propósito de este curso es desarrollar las bases teoricas de la
computación mediante la descripción y estudio de ciertos
modelos matemáticos de la noción de cómputo. Los conceptos
fundamentales son tres: lenguaje, gramática y autómata.
Los dos primeros ya han sido estudiados en los cursos de
matemáticas discretas y análisis lógico, pero aquí
los estudiaremos con un enfoque más general y riguroso. Un autómata es una
máquina abstracta que sirve como modelo matemático de una computadora
o algoritmo. El objetivo general del curso es estudiar a profundidad
distintas clases de lenguajes, gramáticas y autómatas haciendo énfasis tanto
en los conceptos abstractos de cómputo y poder
computacional, como también en las aplicaciones principalmente en la
definición e implementación de lenguajes de
programación. Adicionalmente el curso proporciona los fundamentos para
diversas áreas de las ciencias de la computación como son: algoritmos,
complejidad, computabilidad, bioinformatica, compiladores,
procesamiento de lenguajes, etc..