Objectiu: Millorar la capacitat de l'estudiant per raonar amb rigor respecte a la correctesa i eficiència dels programes (incloent-hi programes recursius) i orientar aquesta capacitat a facilitar la construcció de programes correctes i eficients. Aprendre a relacionar les estructures recursives amb el disseny de programes iteratius. Introducció al concepte de TAD i a la seva utilització. Aprendre a resoldre problemes més complexos en tamany mitjançant tècniques de disseny modular. Programa:
Part I: Ús de mètodes formals. 1.- Especificació formal d'accions i funcions: Introducció. Assercions, quantificadors, substitucions. Especificació Pre/Post. Semàntica Axiomàtica. Derivació d'instruccions. Ús de tipus estructurats. 2.- Justificació i derivació formal d'algorismes: Principi d'inducció. Anàlisi i construcció de programes recursius. Construcció de programes per generalització. Composició iterativa i invariants. Disseny iteratiu. Part II: Disseny modular. 1.- Mòduls: Descomposició de problemes complexos. Reusabilitat. Modularitat. Especificació de mòduls (dades i operacions). Enriquiments. Ús i implementació de mòduls. 2.- Modularitat mitjançant Orientació a Objectes: Classes, objectes i mètodes. Objectes i variables. Ús de classes. 3.- Disseny de mòduls: Descomposició per dades. Construcció de tipus. Descomposició funcional. OO: disseny de classes. |