Go to:
Esta página em português Ajuda Autenticar-se
You are in:: Start > CC3012

Programming in Logic

Code: CC3012     Acronym: CC3012     Level: 300

Classification Keyword
OFICIAL Computer Science

Instance: 2019/2020 - 1S Ícone do Moodle

Active? Yes
Web Page: https://moodle.up.pt/course/view.php?id=594
Responsible unit: Department of Computer Science
Course/CS Responsible: First Degree in Computer Science

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
L:B 0 study plan from 2016/17 3 - 6 56 162
L:CC 23 Plano de estudos a partir de 2014 2 - 6 56 162
L:F 0 study plan from 2017/18 2 - 6 56 162
L:G 0 study plan from 2017/18 2 - 6 56 162
L:M 6 Plano estudos a partir do ano letivo 2016/17 2 - 6 56 162
L:Q 0 study plan from 2016/17 3 - 6 56 162
MI:ERS 19 Plano Oficial desde ano letivo 2014 2 - 6 56 162

Teaching Staff - Responsibilities

Teacher Responsibility
Alípio Mário Guedes Jorge

Teaching - Hours

Theoretical classes: 2,00
Laboratory Practice: 2,00
Type Teacher Classes Hour
Theoretical classes Totals 1 2,00
Alípio Mário Guedes Jorge 2,00
Laboratory Practice Totals 2 4,00
Alípio Mário Guedes Jorge 2,00

Teaching language

Suitable for English-speaking students


- 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


Pre-requirements (prior knowledge) and co-requirements (common knowledge)

Previous knowledge of mathematical logic and artificial intelligence may help, but these are not required.


Introduction to logic programming and Prolog language
- The expressive power of Prolog. Knowledge representation.

How logic programming works
- Unification, Substitution, Proof, SLD Resolution, Backtracking.

Prolog Programming
- Integer arithmetic with Prolog using terms. Lists in Prolog. Cut, negation as failure, cut-fail.

- Symbolic manipulation. Operators. Problem solving as search. Heuristics. Best first. Hill Climbing. DCG notation. Language processing. Minimax algorithm for adversarial games.

Advanced Prolog
- Difference lists and incomplete structures. Second Order Predicates. Second Order Programming.

Mandatory literature

Sterling Leon; The art of prolog. ISBN: 0-262-19250-0
Bratko Ivan 1946-; Prolog programming for artificial intelligence. ISBN: 978-0-201-14224-2 pbk

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.

Using Moodle for intermediate tests and lists of exercises.


SWI Prolog


Physical sciences > Computer science > Cybernetics > Artificial intelligence
Physical sciences > Computer science > Programming

Evaluation Type

Distributed evaluation with final exam

Assessment Components

designation Weight (%)
Exame 60,00
Trabalho prático ou de projeto 40,00
Total: 100,00

Amount of time allocated to each course unit

designation Time (hours)
Estudo autónomo 106,00
Frequência das aulas 56,00
Total: 162,00

Eligibility for exams

Grade above zero in the continuous evaluation component

Calculation formula of final grade

Final Grade = 0.6*EF + 0.4*AC

EF = Final Exam
AC = Continuous Evaluation, including assignments and tests.

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 final exam can be subject to appeal in the seasons made available to each student.
Recommend this page Top
Copyright 1996-2019 © Faculdade de Ciências da Universidade do Porto  I Terms and Conditions  I Acessibility  I Index A-Z  I Guest Book
Page created on: 2019-09-20 at 17:52:39