Curs 2010-11

Lògica Computacional (21422)

Titulació/estudi: Grau en Enginyeria en Informàtica 
Curs:  segon
Trimestre: tercer
Nombre de crèdits ECTS: 4 crèdits
Hores de dedicació de l'estudiant: 100 hores
Llengua o llengües de la docència: català, castellà, anglès 
Professor: Rafael Ramírez, Víctor Dalmau 

1. Presentació de l'assignatura

L'assignatura Lògica Computacional és una assignatura obligatòria que s'ofereix durant el grau en enginyeria en informàtica, formant part del segon curs de aquest grau. En l'assignatura s'estudien els aspectes deductius i algorísmics tant de la lògica proposicional com de la lògica de predicats, l'ús de la lògica per especificar, verificar i raonar sobre programes d'ordinador, i per representar problemes computacionals. L'assignatura té un component teòric i un altre pràctic. Dintre del component teòric l'èmfasi està en la comprensió dels conceptes a nivell intuïtiu i de la utilització de llenguatge matemàtic.

L'assignatura està composta de tres activitats principals: classes de teoria, seminaris i laboratoris. En les classes de teoria s'introdueixen els conceptes formals i es mostren exemples de la seva aplicació. En els seminaris els alumnes resolen petits problemes. Cada problema correspon a un dels conceptes introduïts en classe de teoria. En els laboratoris es presenten problemes de més complexitat i de caràcter més computacional perquè els alumnes tinguin l'oportunitat de posar en pràctica els conceptes apresos.

2. Prerequisits per al seguiment de l'itinerari formatiu

Els coneixements previs per al seguiment de l'assignatura són certes nocions de matemàtiques bàsiques adquirides en l'ensenyament secundari obligatori i durant els primers tres cursos dels estudis. En particular, els coneixements previs requerits per a l'assignatura són: 

• Nocions algebraiques bàsiques: funcions, conjunts i operacions elementals sobre conjunts, relacions d'equivalència.
• Nocions bàsiques de lògica matemàtica: relacions, conectors lògics.
• Aritmètica bàsica.
• Capacitat bàsica per a comprendre i escriure expressions matemàtiques a nivell elemental.

3. Competències que s'han d'assolir

L'objectiu fonamental de l'assignatura és que els alumnes adquireixin els aspectes fonamentals relacionats amb els aspectes deductius i algorísmics de la lògica proposicional i de predicats, i la seva aplicació per especificar, verificar i raonar sobre programes d'ordinador.

Competències generals

Competències específiques

Instrumentals 
1. Capacitat de raonar a nivell abstracte 
2. Habilitats cognitives 
3. Sentit comú

Interpersonals 
4. Competència de comunicació

Sistèmiques
5. Capacitat d'identificar la millor metodologia per resoldre un problema.
6. Capacitat de solucionar problemes combinant de manera nova i no trivial elements ja coneguts
7. Capacitat de generar idees

1. Capacitat d'entendre a nivell intuïtiu i formal els diferents aspectes de la lògica proposicional i de predicats: sintaxi, semàntica i la seva aplicació a diferents problemes en informàtica.

2. Capacitat d'aplicar els coneixements adquirits en contextos pràctics.

3. Capacitat d'especificar, verificar i raonar sobre programes d'ordinador i representar problemes computacionals utilitzant mètodes basats en lògica. 

  

4. Continguts

4.1. Blocs de contingut 

• Bloc de contingut 1. Sintaxi i semàntica de lògica proposicional i de predicats.
• Bloc de contingut 2. Programació lògica.
• Bloc de contingut 3. Especificació i verificació formal de programes.

4.2. Organització i concreció dels continguts

Bloc de contingut 1. Sintaxi, semàntica de lògica proposicional i de predicats 

Conceptes

Procediments

Actituds

1. Lògica proposicional: conectors lògics, fórmules, taules de veritat, interpretacions, satisfabilitat i validesa, manipulació de fórmules, taules semàntiques, proves deductives, resolució.

 
2. Lògica de predicats: quantificadors, fórmules, interpretacions, satisfabilitat i validesa, taules semàntiques, proves deductives, resolució.

 

1. Poder entendre, especificar i manipular fórmules proposicionals. Provar satisfabilitat i validesa de fórmules proposicionals. Aplicar mètodes com taules de veritat, taules semàntiques i resolució en problemàtiques concretes.

2. Poder entendre, especificar i manipular fórmules de lògica de predicats. Provar satisfabilitat i validesa de fórmules. Aplicar mètodes como taules semàntiques i resolució en problemàtiques concretes.

1. Apreciar els diferents tipus de formalismes útils en la lògica i el raonament.


2. Disponibilitat per intentar entendre conceptes que inicialment semblen complexos.

 Bloc de contingut 2. Programació lògica 

Conceptes

Procediments

Actituds

1. Programes com fórmules, substitucions, unificació.

2. Resolució SLD, execució de programes lògics.

1. Entendre la relació entre fórmules en lògica i programes computacionals.

2. Descriure el procés d'execució en programes lògics. Implementar diferents programes lògics per problemàtiques específiques. 

1. Disponibilitat a intentar entendre conceptes que inicialment semblen complexos.

2. Predisposició per adquirir coneixement sòlid de base

Bloc de contingut 3. Especificació i verificació formal de programes 

Conceptes

Procediments

Actituds

1. Semàntica de llenguatges de programació

2. Especificació formal de programes

3. Verificació formal de programes

 

1. Definir la semàntica formal de programes imperatius

2. Especificar formalment la semàntica de programes en problemàtiques concretes.

3. Verificar formalment la correcció de programes concrets.

1. Disponibilitat per intentar entendre conceptes que inicialment semblen complexos.

2. Predisposició per adquirir coneixement sòlid de base

3. Disponibilitat de dedicar el temps necessari a cada concepte

5. Objectius d'aprenentatge

L'objectiu de l'assignatura és estendre aspectes deductius i algorísmics de la lògica proposicional i de predicats, i posar en pràctica el seu ús per especificar, verificar i raonar sobre programes d'ordinador, i per representar problemes computacionals. Així mateix, els estudiants haurien de desenvolupar competències per a entendre les diferències entre els diversos tipus de lògica i identificar el millor formalisme per especificar diferents problemes computacionals.

6. Avaluació

6.1. Criteris generals d'avaluació

En l'avaluació continuada es té en compte cada una de les tres activitats que constitueixen l'assignatura: classes de teoria, laboratoris i seminaris:

T: l'avaluació de la teoria mitjançant un examen final.
L: l'avaluació dels laboratoris amb les pràctiques de programació i examen final de pràctiques.
S: l'avaluació dels seminaris

En l'avaluació continuada, cal aprovar cada una de les tres activitats per separat i la nota final s'obté fent la mitjana ponderada de la següent forma:

Nota Final = 0,6 * T + 0,3 * L + 0,1 * S

L'examen de teoria es realitzarà sobre els continguts desenvolupats a classe de teoria i als seminaris. És un examen escrit i individual que avalua totes les competències desenvolupades al llarg de l'assignatura. Aquesta avaluació és obligatòria i ha de ser qualificada amb com a mínim un 50% per tal de aprovar l'assignatura.

En els laboratoris es realitzen un sèrie de pràctiques que posen a prova la capacitat dels alumnes de aplicar la teoria en forma de programes en un ordinador. Les pràctiques es realitzen en parella, de manera que els alumnes hagin de cooperar i saber comunicar-se per resoldre els problemes. Aquesta avaluació també és obligatòria i ha de ser qualificada com a mínim amb un 50% en la part de pràctiques i 50% en la part d'examen final per tal d'aprovar l'assignatura.

Abans de cada seminari es presentaran problemes als alumnes per tal que ells els resolguin en equips de tres abans de la sessió, com una preparació prèvia al seminari. Aquests problemes corresponen a conceptes o coneixements tractats a classe de teoria. Els alumnes han de lliurar les solucions al començament del seminari, i a més a més es demanarà als alumnes que presentin les seves solucions a la pissarra. En l'avaluació es tindrà en compte la preparació del seminari, la presència en ell i també l'aprofitament. L'avaluació del treball dels seminaris és obligatòria i com s'ha dit, la nota S que s'obtingui ha de ser qualificada com a mínim amb un 50% per tal d'aprovar l'assignatura.

En cas de no aprovar l'assignatura en l'avaluació continuada exposada en els punts anteriors, l'alumne té dret a una convocatòria en el mes de setembre. La nota d'aquesta convocatòria s'obtindrà en un examen dels continguts de les classes de teoria i en la nota L. En cas d'haver suspès L en l'avaluació continuada, es podrà entregar la pràctica sencera de tota l'assignatura i s'avaluarà de nou. Un cop aprovades T i L per separat, la nota de Setembre s'obtindrà com:

Nota Setembre = 0,6*T+0,4*L

6.2. Concreció per competències 

Competències a assolir en l'assignatura

Indicador d'assoliment

Procediment d'avaluació

Temporalització


Competències generals
1. Capacitat de raonar a nivell abstracte
2. Habilitats cognitives
3. Sentit comú
4. Competència de comunicació
5. Capacitat d'identificar la millor metodologia per resoldre un problema.
6. Capacitat de solucionar problemes combinant de manera nova i no trivial elements ja coneguts
7. Capacitat de generar idees

Competències específiques
1. Capacitat d'entendre a nivell intuïtiu i formal els diferents aspectes de la lògica proposicional i de predicats.
2. Capacitat d'entendre aspectes algorísmics de la lògica com llenguatge d'especificació i programació de problemes computacionals, i aplicar aquest coneixement a la resolució de problemes computacionals en contextos pràctics.
3. Capacitat de posar en pràctica l'ús de la lògica de predicats per especificar, verificar i raonar sobre programes d'ordinador. 


1. Capacitat de solucionar problemes abstractes
2. Capacitat de proposar solucions a problemes
3. Capacitat de proposar solucions a problemes
4. Solucions coherents i ben escrites a les pràctiques i seminaris
5. Solucions coherents a les pràctiques i seminaris
6. Solucions coherents a les pràctiques i seminaris
7. Solucions enginyoses a problemes presentats

 
1. Capacitat d'entendre expressions matemàtiques relacionades amb la sintaxi i semàntica de la lògica proposicional i de predicats i d'especificar propietats utilitzant fórmules en lògica.
2. Capacitat d'entendre i elaborar programes lògics per la resolució de problemes computacionals pràctics.
3. Capacitat d'especificar i verificar formalment propietats de programes d'ordinador i determinar la seva correcció.


1. Avaluació de pràctiques, seminaris i de l'examen final
2. Avaluació de pràctiques, seminaris i de l'examen final
3. Avaluació de pràctiques, seminaris i de l'examen final
4. Avaluació de pràctiquesi seminaris 
5. Avaluació de pràctiques i seminaris 
6. Avaluació de pràctiques, seminaris i de l'examen final
7. Avaluació de pràctiques, seminaris i de l'examen final 


1. Avaluació de seminaris i de l'examen final
2. Avaluació de pràctiques, seminaris i de l'examen final
3. Avaluació de seminaris i de l'examen final

 
 1. Tot el trimestre 

 2. Tot el trimestre

 3. Tot el trimestre 

 4. Tot el trimestre

 5. Tot el trimestre 

 6. Tot el trimestre

 7. Tot el trimestre 

 

 1. Tot el trimestre 

 2. Tot el trimestre

 3. Tot el trimestre

 

7. Bibliografia i recursos didàctics

7.1. Bibliografia bàsica (suport paper i electrònic)

Mathematical Logic for Computer Science
Mordechai Ben-Ari
Springer (2003).

7.2. Bibliografia complementària (suport paper i electrònic)

Logic in Computer Science
Michael R.A. Huth, Mark D Ryan
Cambridge University Press (2002)

Logic and its Applications
Edmund Burke, Eric Foxley
Prentice Hall (1996)

7.3. Material docent de l'assignatura

Web de l'assignatura
Apunts
Col·lecció d'exercicis (amb solució)
Enunciats de les pràctiques

7.4. Materials i eines de suport

SWI-Prolog self-extracting .EXE (3.75mb)
Prolog Introductory Tutorial

 

8. Metodologia

Enfocament metodològic de l'assignatura
El procés habitual d'aprenentatge comença amb una sessió de teoria en la que es presenten certs fonaments teòrico-pràctics. Aquesta activitat es realitza amb tot el grup d'estudiants. L'estudiant haurà de complementar aquesta activitat amb una lectura detinguda dels seus propis apunts i el material addicional que el professor hagi proporcionat. Per exemple, una sessió de teoria de 2 hores, convenientment aprofitades, requerirà un treball addicional fora de l'aula d'1 hora per part de l'estudiant.

Posteriorment es realitzaran algunes sessions d'exercicis, en les quals l'estudiant posa en pràctica els conceptes i tècniques presentades a la sessió de teoria, mitjançant la resolució de petits problemes. Per als primers exercicis de la sessió es proporcionaran les solucions, però per la resta no. L'objectiu és que consolidi els fonaments per tal que posteriorment pugui resoldre problemes de major complexitat. Per aquesta activitat el grup es divideix en quatre i es realitza en quatre grups petits d'estudiants.

El següent pas en el procés d'aprenentatge és la sessió de pràctiques. En ella es proposen uns problemes de mida més gran que requereixen integrar diferents conceptes i tècniques. Les pràctiques són incrementals, cada una afegint a la pràctica anterior. Aquesta activitat es realitza per parelles, en grups d'uns 20 estudiants, i es pressuposa que continua fora de l'aula.

L'últim pas en el procés d'aprenentatge de cada bloc de continguts és el de la resolució d'uns exercicis d'autoavaluació, mitjançant els quals l'alumne pot comprovar si ha adquirit les competències que posteriorment s'avaluaran a l'examen final.

 

9. Programació d'activitats 

Setmana

Activitat a l'aula

agrupament / tipus d'activitat

Activitat fora de l'aula 

agrupament / tipus d'activitat

Setmana 1

Sessió 1 Teoría: introducción + logica proposicional
Sessió 1 Teoria: lógica proposicional

Preparacion de problemas del seminario

Setmana 2

Sessió 1 Seminario: lógica proposicional
Sessió 2 Seminario: lógica proposicional
Sessió 3 Seminario: lógica proposicional

Preparacion de problemas del seminario

Setmana 3

Sessió 1 Teoria: lógica  de predicados
Sessió 1 Seminario: lógica  predicados
Sessió 2 Seminario: lógica  predicados

Preparacion de problemas del seminario

Setmana 4

Sessió 3 Seminario: lógica  predicados
Sessió 1 Teoria: lógica  de predicados + resolución

Preparacion de problemas del seminario

Setmana 5

Sessió 1 Seminario: resolución
Sessió 2 Seminario: resolución
Sessió 3 Seminario: resolución

Preparacion de problemas del seminario

Setmana 6

Sessió 1 Teoria: Programación lógica
Sessió 1 Lab: Programación lógica
Sessió 2 Lab: Programación lógica

Realizar práctica

Setmana 7

Sessió 1 Teoria: Programación lógica + semántica de programas
Sessió 1 Lab: Programación lógica + sem
Sessió 2 Lab: Programación lógica + sem

Realizar práctica

Setmana 8

Sessió 1 Teoria: Especificación de programas
Sessió 1 Lab: Especificación
Sessió 2 Lab: Especificación

Realizar práctica

Setmana 9

Sessió 1 Teoria: Verificacion de programas
Sessió 1 Lab: Verificacion
Sessió 2 Lab: Verificacion

Realizar práctica

Setmana 10

Sessió 1 Lab: lógica y AI
Sessió 2 Lab: lógica y AI
Sessió 3 revision del curso

Realizar práctica