-
Apresentação
Apresentação
Usar a lógica e a teoria de conjuntos para modelar dados e sistemas. Conhecer os fundamentos teóricos da computação, o conceito formal de algoritmo e a existência de problemas indecidíveis. Conhecer as classes de linguagens formais, os modelos computacionais associadas e a sua relação mútua. Entender o princípio da universalidade da máquina de Turing. Modelar estados de sistemas com conjuntos e lógica de 1º ordem. Distinguir conjuntos contáveis de não contáveis. Modelar sistemas com autómatos finitos (DFA e NFA). Construir um autómato dada uma expressão regular e o inverso. Construir um DFA equivalente a um NFA. Definir linguagens independentes de contexto com gramáticas. Construir analisadores LL e LR.
-
Disciplina do curso
Disciplina do curso
-
Grau | Semestres | ECTS
Grau | Semestres | ECTS
Licenciado | Semestral | 6
-
Ano | Natureza | Lingua
Ano | Natureza | Lingua
2 | Obrigatório | Português
-
Código
Código
ULHT6638-339
-
Pré-requisitos e co-requisitos
Pré-requisitos e co-requisitos
Não aplicável
-
Estágio Profissional
Estágio Profissional
Não
-
Conteúdos Programáticos
Conteúdos Programáticos
Descrição dos conteúdos Modelação com Conjuntos e Lógica Revisão de conjuntos, funções, relações e lógica de 1ª ordem aplicadas à modelação de sistemas. Autómatos e Linguagens Formais Estudo de DFA, NFA, expressões regulares, gramáticas livres de contexto e autómatos de pilha. Computabilidade Máquinas de Turing, problemas decidíveis e indecidíveis, Tese de Church-Turing e reduções. Complexidade Classes P, NP, NP-completude e análise da dificuldade de problemas computacionais.
-
Objetivos
Objetivos
Nesta unidade curricular, os estudantes adquirem conhecimentos sobre os principais modelos computacionais — autómatos finitos, gramáticas livres de contexto e máquinas de Turing — e as suas relações com linguagens formais. Desenvolvem aptidões para modelar problemas com lógica e teoria de conjuntos, construir autómatos e analisadores sintáticos, e aplicar conceitos de computabilidade e complexidade, como indecidibilidade e classes P e NP. No final, serão capazes de analisar problemas computacionais com base em modelos formais, compreendendo os limites e potencialidades da computação.
-
Metodologias de ensino e avaliação
Metodologias de ensino e avaliação
São utilizadas metodologias inovadoras que integram ferramentas interativas no processo de aprendizagem, como um editor de máquinas de estados e a implementação de uma máquina de estados em JavaScript. Estas abordagens permitem aos estudantes experimentar, simular e validar modelos formais, promovendo uma aprendizagem ativa e a ligação entre teoria e prática.
-
Bibliografia principal
Bibliografia principal
Wayne Goddard, "Introducing the Theory of Computation", 1st Edition, Jones & Bartlett Publishers, 2010, ISBN: 9789380108254
-
Horário de Atendimento
Horário de Atendimento
-
Mobilidade
Mobilidade
Não