Capacitar o estudante a definir e identificar as linguagens de programação tanto através dos seus elementos léxicos e sintáticos como também através de outros conceitos vinculados às gramáticas formais. Formalizar o conceito de algoritmo, de computabilidade e o problema da decisão. Introduzir o conceito de complexidade computacional.