Programming in Logic
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Science |
Instance: 2022/2023 - 2S ![Requerida a integração com o Moodle Ícone do Moodle](/fcup/pt/imagens/MoodleIcon)
Cycles of Study/Courses
Teaching language
Suitable for English-speaking students
Objectives
- Provide students with fundamental concepts of logic programming
- Develop in students Prolog programming skills
- Explain the relationship between logic programming and mathematical logic
- Foster in students the motivation for logic programming
- Introduce students to applications of logic programming practices
- Involve students in practical projects lin ogic programming
- To relate Logic Programming with other disciplines of the course
Learning outcomes and competences
After completing the course, students should be able to:
- Identify what kinds of problems logic programming should or can be applied
- Understand the limitations of logical languages and their implementations
- Know how to develop relatively complex programs
- Know how to solve complex problems using logi programming
- Be very familiar with the syntax and semantics of the Prolog language
- To be able to make a connection between Logic Programming and other curricular units in the course
Working method
Presencial
Pre-requirements (prior knowledge) and co-requirements (common knowledge)
Computational logic.
Program
Introduction to logic programming and Prolog language
- The expressive power of Prolog. Knowledge representation.
How logic programming works
- Unification, Substitution, Proof, SLD Resolution, Backtracking.Negation by failure.
Prolog Programming
- Integer arithmetic with Prolog using terms. Lists in Prolog. Cut, negation as failure, cut-fail.
Advanced Prolog
- Difference lists and incomplete structures. Second Order Predicates. Second Order Programming. Implementation. Constraint Logic Programming.
Mandatory literature
Sterling Leon;
The art of prolog. ISBN: 0-262-19250-0
C. J. Hogger;
Essentials of logic programming. ISBN: 0-19-853832-4
Complementary Bibliography
Ivan Bratko;
Prolog programming for artificial intelligence. ISBN: 978-0-201-14224-2 pbk
John Wylie Lloyd;
Foundations of logic programming. ISBN: 978-3-540-18199-6
Teaching methods and learning activities
- Theoretical classes with group discussions.
- Lab classes with theoretical and programming tasks, where students have the opportunity to discuss problems and solutions in group and with the lecturer.
- Group assignments to be done partly in lab classes and partly in student's own time.
Software
SWI Prolog
keywords
Physical sciences > Computer science > Cybernetics > Artificial intelligence
Physical sciences > Computer science > Programming
Physical sciences > Mathematics > Mathematical logic
Evaluation Type
Distributed evaluation without final exam
Assessment Components
designation |
Weight (%) |
Trabalho prático ou de projeto |
20,00 |
Teste |
80,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
designation |
Time (hours) |
Estudo autónomo |
76,00 |
Frequência das aulas |
56,00 |
Elaboração de projeto |
30,00 |
Total: |
162,00 |
Eligibility for exams
Grade above zero in the continuous evaluation component
Calculation formula of final grade
Final Grade = 0.4*T1 + 0.4*T2 + 0.2*TR
T1 = Test 1
T2 = Test 2
TR = Project
Internship work/project
It consists of theoretical and practical activity. Students must deliver implementation and an explanatory report. If time permits, they will make the presentation of their projects.
Special assessment (TE, DA, ...)
Assessment in the special season is made with a test in the classroom or in a computer lab.
Classification improvement
Only the theoretical tests can be subject to appeal in the seasons made available to each student.