Fornecer ao aluno noção formal de algoritmo, computabilidade e do problema de decisão. Apresentar ferramentas que auxiliem na solução de problemas com o auxílio do computador. Habilitar o aluno na tarefa de definir linguagens de programação (sua sintaxe e semântica), por meio dos conceitos relativos às gramáticas formais.