Anar al contingut (clic a Intro)
UdG Home UdG Home
Tancar
Menú

Estudia

Dades generals

Curs acadèmic:
2007
Descripció:
Programació i computació. Llenguatges de programació: anàlisi lèxica, sintàctica i semàntica. Diferents paradigmes de programació: Programació imperativa, programació orientada a objectes, programació funcional, programació lògica i programació amb llenguatges "d'script".
Crèdits:
6
Idioma principal de les classes:
Català
S’utilitza oralment la llengua anglesa en l'assignatura:
Gens (0%)
S’utilitzen documents en llengua anglesa:
Indistintament (50%)

Grups

Grup A

Durada:
Semestral, 2n semestre
Professorat:
Mateu Villaret Auselle

Competències

  • Ser capaç d'analitzar, dissenyar i implementar un algorisme i la seva estructura de dades.

Altres Competències

  • Donar a l'alumne una visió amplia del que és un llenguatge de programació i de les diferencies existents entre els diferents paradigmes de programació. Familiaritzar a l'estudiant amb els diferents paradigmes de programació tant de forma aplicada amb pràctiques i exemples concrets de llenguatges, com de forma teòrica amb aspectes fonamentals dels seus models de còmput.

Continguts

1. - Presentació, Llenguatges de Programació -

          1.1. Què és un Llenguatge de Programació

          1.2. Possibles Classificacions

          1.3. Paradigmes

                    1.3.1. Imperatiu

                    1.3.2. Funcional

                    1.3.3. Lògic

                    1.3.4. Altres

          1.4. Història i evolució

          1.5. Definició del Llenguatge

                    1.5.1. Lèxic

                    1.5.2. Sintàctic

                    1.5.3. Semàntic

          1.6. Traducció per a l'execució

                    1.6.1. Compilació

                    1.6.2. Interpretació

2. - Paradigma Funcional -

          2.1. Introducció

          2.2. Model de Còmput: lambda-càlcul simple no tipat

                    2.2.1. lambda-termes

                    2.2.2. substitució

                    2.2.3. lambda-teoria

          2.3. lambda-definibilitat

          2.4. lambda-càlcul tipat

          2.5. inferència de tipus

          2.6. Haskell

          2.7. Propietats de programes funcionals

3. - Paradigma Lògic -

          3.1. Introducció

          3.2. Model de Còmput: lògica de primer ordre

                    3.2.1. Fórmules lògiques

                    3.2.2. Unificació

                    3.2.3. Resolució, SLD-resolució

          3.3. Prolog

          3.4. Programació lògica amb Restriccions

4. - Paradigma Imperatiu -

          4.1. Introducció

          4.2. Model de Còmput: Màquines de Turing/Arquitectura Von Newman

                    4.2.1. Estat

                    4.2.2. Expressions i instruccions

                    4.2.3. Tipus d'expressions, notacions

                    4.2.4. Assignació i control de flux

          4.3. Abstracció de control

                    4.3.1. Accions i Funcions

          4.4. Pas de paràmetres

          4.5. Abstracció de dades

                    4.5.1. TAD

                    4.5.2. OOP

          4.6. C, JAVA, ...

          4.7. Propietats de programes imperatius

Activitats

Tipus d’activitat Hores amb professor Hores sense professor Total
Altres 0 15,00 15,00
Elaboració individual de treballs 0 30,00 30,00
Sessió participativa 30,00 20,00 50,00
Sessió pràctica 30,00 20,00 50,00
Total 60,00 85,00 145

Bibliografia

  • John C. Mitchell (2003). Concepts in Programming Languages. Cambridge University Press.
  • Ruiz, Gutiérrez, Guerrero, Gallardo (2004). Razonando con Haskell. Thomson.
  • Sterling and Shapiro (1994). The Art of Prolog (2). MIT Press.

Avaluació i qualificació

Activitats d'avaluació:

Descripció de l'activitat Avaluació de l'activitat %

Qualificació

La nota final de l'assignatura s'obtindrà a parts iguals de
teoria i de pràctica, essent obligatori per a aprobar:

- tenir una nota >= 4,5 tant en teoria com en pràctiques
- haver superat l'avaluació pràctica


Teoria:
la nota de teoria s'obtindrà bàsicament d'un exàmen final, tot i que es podrà recolzar també en "petits exercicis" proposats d'una sessió per l'altra, i també amb el seguiment que es faci de l'assignatura per part de l'alumne i que el professor controlarà mitjançant la participació a classe.

Pràctiques:
la nota de pràctiques s'obtindrà bàsicament mitjançant l'elaboració de pràctiques en els llenguages explicats a laboratori que seran: Haskell i Prolog. També, segons disponibilitat, es podrà fer un exàmen pràctic amb l'ordinador que complementaria la nota.

Observacions

L'assignatura preten:
- dotar a l'alumne d'èines alternatives de programació
- permetre conèixer a l'alumne els principals aspectes a tenir en compte a l'hora de triar un llenguatge per a resoldre un problema
- oferir alguns conceptes teòrics fonamentals per a un bon programador

Per tant es valorarà la capacitat d'abstracció i comprensió per a l'aspecte teòric de l'assignatura i l'enginy i creativitat per a l'aspecte pràctic.

Assignatures recomanades

  • Algorísmica I
  • Introducció a la lògica
  • Introducció a les estructures de dades
  • Metodologia i tecnologia de la programació

Escull quins tipus de galetes acceptes que el web de la Universitat de Girona pugui guardar en el teu navegador.

Les imprescindibles per facilitar la vostra connexió. No hi ha opció d'inhabilitar-les, atès que són les necessàries pel funcionament del lloc web.

Permeten recordar les vostres opcions (per exemple llengua o regió des de la qual accediu), per tal de proporcionar-vos serveis avançats.

Proporcionen informació estadística i permeten millorar els serveis. Utilitzem cookies de Google Analytics que podeu desactivar instal·lant-vos aquest plugin.

Per a oferir continguts publicitaris relacionats amb els interessos de l'usuari, bé directament, bé per mitjà de tercers (“adservers”). Cal activar-les si vols veure els vídeos de Youtube incrustats en el web de la Universitat de Girona.