Universitat de Girona

Programa de l'assignatura

Curs 2002-03

3105IG0002 ALGORÍSMICA I


Objectius Programa provisional  

Partint de la idea que a Metodologia i Tecnologia de la Programació s'han après les tècniques bàsiques per a la programació a petita escala, l'objectiu d'aquesta assignatura és inculcar que la modularitat és la clau per escriure bons programes a més gran escala. L'assignatura pretén:

- capacitar l'alumne per a la resolució de problemes de mitjana envergadura mitjançant tècniques de disseny modular, i
- augmentar la seva capacitat de raonar amb rigor respecte a la correcció dels programes dissenyats.

A partir d'aquestes dues vessants l'alumne haurà de ser capaç de produir programes de qualitat, fiables i fàcils de mantenir, en el context de la programació imperativa orientada a objectes.
 
Prerrequisits  

obligatoris: cap
recomanats: Metodologia i Tecnologia de la Programació
 
Contingut (Programa)  

1. Disseny modular orientat a objectes Conceptes bàsics
  • Descomposició i abstracció
  • Tipus d'abstracció
  • Indepèndencia de la representació
  • Mòduls vs. Classes
Disseny d'aplicacions
  • Mòduls. Definició, implementació i utilització.
  • Descomposició i abstracció funcional
  • Descomposició i abstracció de dades
  • Construcció de tipus
  • Herència
    • Herència vs. Subtipatge
    • Bons i mals usos de l'herència
    • Composició vs. Construcció
    • Herència múltiple
  • Exemples de disseny d'aplicacions
  • Patrons de disseny
2.Especificació i raonament formal
  • Especificació equacional de mòduls
  • Lògica de primer ordre
  • Invariant de la representació i funció d'abstracció
  • Especificació formal d'operacions. Precondicions i postcondicions
  • Derivació/verificació formal d'algorismes
    • Semàntica axiomàtica
    • Principi d'inducció
    • Disseny recursiu
    • Construcció de programes per generalització
    • Composició iterativa i invariants
    • Disseny iteratiu
    • Transformació recursiu-iteratiu
 
Bibliografia  


1.Barbara Liskov and John Guttag: Program development in Java: Abstraction, Specification, and Object-Oriented Design. Addison-Wesley, 2000.
2 J.L. Balcázar: Programación Metódica. McGraw-Hill, 1993.
3 R. Peña: Diseño de Programas: Formalismo y Abstracción. Prentice-Hall, 1993.
 
Mètodes docents  

Classes de teoria (2h/setmana) Classes de laboratori (2h/setmana)
 
Tipus d'exàmens i avaluacions  

L'avaluació consta de les següents parts (entre parèntesi s'indica el percentatge de cada part sobre la nota final):

1. Treballs pràctics
(a) Problemes i pràctiques de laboratori individuals (15%)
(b) Pràctica en equip (15%)

2. Exàmens
(a) Examen de la pràctica en equip (10%)
(b) Examen de teoria/problemes (60%)

Observacions:
Els treballs pràctics són obligatòris: han d'estar presentats i acceptats per tal d'aprovar l'assignatura, independentment de la resta de notes.
Si la nota x de l'examen de la pràctica en equip és inferior a 5, aleshores es dividirà la nota de la pràctica en equip per 5/x.

Cal un 3.5 com a mínim de l'examen de teoria/problemes per aprovar l'assignatura.
Es guarden notes d'examen i de treballs pràctics per a la 2a convocatòria. Es poden tornar a entregar treballs pràctics en 2a convocatòria de cara a millorar la nota.
 
Informació addicional  

Disseny, implementació i (re-)utilització de software sota la perspectiva del disseny modular orientat a objectes. S'utilitzarà el llenguatge Java per a la construcció dels programes.
 
Llengua de les classes