1. INTRODUCCIÓ ALS LLENGUATGES DE PROGRAMACIÓ I ALS SEUS PARADIGMES: què és un llenguatge de programació; història, evolució, paradigmes i criteris de disseny dels llenguatges de programació.
2. CONCEPTES BÀSICS DE LA TRADUCCIÓ DE LLENGUATGES:
anàlisi lèxica, sintàctica i semàntica i generació de codi.
3. PARADIGMA DE LA PROGRAMACIÓ LÒGICA: el model de còmput subjacent de la lògica de primer ordre, unificació i resolució. PROLOG.
4. PARADIGMA DE PROGRAMACIÓ FUNCIONAL: el model de còmput subjacent del lambda-càlcul, ordres de reducció i formes normals, inferència de tipus. HASKELL.
5. PARADIGMA IMPERATIU: noció d'estat, àmbits de visibilitat, pas de paràmetres i models de memòria. Semàntica.
6. PROGRAMACIÓ AMB RESTRICCIONS: models i instàncies, variables decisionals i dominis, restriccions elementals i restriccions globals. Solucions via cerca i propagació. Solucions via reducció. MINIZINC.
7. PROGRAMACIÓ CONCURRENT: el model subjacent conegut com a "actors model". SCALA.
El lliurament de les 4 pràctiques és obligatori i s'ha de tenir una nota de cada pràctica de 4 com a mínim.
L'exàmen constarà de dues parts, teoria i laboratori i s'ha de tenir una nota superior a 3 a cada part, i una nota total de l'exàmen superior a 4,5.
Si es satisfan les premises anteriors s'obtindrà una nota final d'acord amb els percentatges especificats: 50%teoria_examen + 20%laboratori_examen + 10%prolog+10*haskell+5%restriccions + 5%concurrent.
Si no es satisfan la nota final serà el mínim entre 4 i la nota ponderada.
Es proposaran exercicis voluntaris durant el curs que podran ajudar a millorar la nota final en cas que s'hagi aprovat.
Criteris específics de la nota «No Presentat»:
La nota de No Presentat serà quan no s'hagi presentat cap pràctica ni s'hagi presentat a l'exàmen.