Skip to main content

ISLA IPGT 18748

Computational Logic

Artificial Intelligence
  • ApresentaçãoPresentation
    The Computational Logic curricular unit introduces the main concepts of logic applied to computing, combining knowledge representation, logical reasoning, algorithms and problem solving. The unit follows a theoretical and practical approach, initially using Prolog to explore facts, rules, predicates, queries, unification, recursion, backtracking, proof trees and inference mechanisms. Python is then used as a complementary language to make algorithms explicit, implement data structures, compare search strategies and test solutions. Recursive structures, trees, graphs, grammars and expert systems are also addressed, promoting the ability to represent knowledge, infer conclusions and develop computational solutions grounded in logic.
  • ProgramaProgramme
    Introduction: problem solving, algorithms, knowledge representation and programming paradigms; the role of Prolog and Python. Logic Programming in Prolog: logic/declarative paradigm; facts, predicates, terms, clauses, queries, variables, unification, substitutions, rules, proof/search trees, SLD resolution, search strategies, backtracking and control predicates. Examples: knowledge bases, family relations and prerequisites. Prolog System: input/output, arithmetic, comparison, lists, recursion, predefined predicates, proof systems and inference machines. Recursive structures: lists, trees and graphs in Prolog and Python; search, cycle control, depth-first and breadth-first strategies. Grammars and languages: formal grammars, recognition, DCG in Prolog and simple parsers in Python. Expert systems: architecture, knowledge base, inference engine, explanation, limitations and Prolog/Python comparison.
  • ObjectivosObjectives
    This curricular unit introduces the main concepts of Computational Logic, relating them to algorithms and problem-solving techniques. First, students work with logic programming in Prolog, representing knowledge through facts, predicates and rules, while exploring unification, resolution, recursion, backtracking and proof/search trees. In a second phase, Python is used to make algorithms explicit, test solutions, compare search strategies and implement data structures and rule-based systems. By the end of the unit, students should understand the foundations of programming logic, apply Prolog syntax and semantics, develop declarative solutions, translate logical problems into Python, compare paradigms, apply logic to Artificial Intelligence and expert systems, and analyse the efficiency and limitations of Prolog and Python.
  • BibliografiaBibliography
    Fais, R. M. Lógica Computacional. Artigos e exercícios sobre lógica computacional. Clube de Autores, 2020. Ben-Ari, M. Mathematical Logic for Computer Science. Springer, 3rd edition, 2012. Huth, M., & Ryan, M. Logic in Computer Science: Modelling and Reasoning about Systems. Cambridge University Press, 2004. Barwise, J., & Etchemendy, J. Language, Proof and Logic. CSLI Publications, 2nd edition, 2011.  
  • MetodologiaMethodology
    Innovative learning technologies will be used, including interactive Prolog and Python programming environments, digital platforms supporting practical activities, generative Artificial Intelligence tools, algorithm visualisation systems and automated feedback mechanisms. These technologies will enable students to explore concepts, test solutions, analyse results and promote more active, autonomous and problem-solving-oriented learning.
  • LínguaLanguage
    Português
  • TipoType
    Semestral
  • ECTS
    6
  • NaturezaNature
    Mandatory
  • EstágioInternship
    Não
  • AvaliaçãoEvaluation

    Descrição dos instrumentos de avaliação (individuais e de grupo) ¿ testes, trabalhos práticos, relatórios, projetos... respetivas datas de entrega/apresentação... e ponderação na nota final.

    Descrição

    Data limite

    Ponderação

    Prova de avaliação

    14-01-2027

    60%

    Trabalho prático de avaliação

    07-01-2027

    30%

    Assiduidade e participação - minimo 70% de presenças.

    ----

    10%

    Avaliação Especial

    Os estudantes com estatuto especial reconhecido podem requerer o regime especial de avaliação previsto no Regulamento Geral de Avaliação, mantendo-se os objetivos, competências e nível de exigência da unidade curricular, sem prejuízo das adaptações aplicáveis.