|
Crèdit 6: programació avançada.
|
|
a) Durada: 150 hores.
b) Objectius terminals.
Desenvolupar codis font de programes amb estructures
de dades dinàmiques i amb recursivitat.
Desenvolupar codis font de programes amb objectes,
en llenguatge de programació orientats o no orientats a
objecte, segons la sintaxi i a partir dels algorismes dissenyats.
Obtenir els codis objecte i executable a partir dels
codis font i objecte, respectivament.
Desenvolupar algorismes recursius per la resolució
de problemes.
Definir les estructures de dades dinàmiques
necessàries per a la resolució de problemes amb
programació estructurada i modular.
Definir els objectes necessaris per a la resolució
de problemes amb un llenguatge de programació orientat
a objecte.
Depurar els mòduls de programació desenvolupats,
segons els criteris d'eficàcia i eficiència.
Controlar la qualitat del programa desenvolupat,
a partir de les especificacions establertes en el disseny, i de
les prestacions esperades per l'usuari.
Verificar el funcionament dels mòduls de l'aplicació,
les integracions i els enllaços.
Elaborar la guia d'usuari i la documentació
completa de les fases de disseny, codificació, traducció,
enllaç, depuració i verificació de programes,
de forma estructurada i clara.
Determinar les causes i les formes de resolució
de les incidències aparegudes en les fases de codificació,
traducció, enllaç i depuració de programes,
segons el manual de referència.
Comprovar l'eficàcia i l'eficiència
de les prestacions i dels rendiments del programa elaborat.
c) Continguts de fets, conceptes i sistemes conceptuals.
1. Programació amb estructures de dades dinàmiques:
Dades compostes internes dinàmiques: piles,
cues, llistes, arbres.
Algorismes de tractament de piles: inserció
i eliminació.
Algorismes de tractament de cues: inserció
i eliminació.
Algorismes de tractament de llistes: recorregut,
inserció, recerca i eliminació.
Algorismes de tractame d'arbres: recorreguts preordre,
inordre i postordre, recerca, inserció, eliminació,
aplicació en els fitxers indexats.
2. Introducció a la programació recursiva:
Recursivitat: directa i indirecta.
3. Introducció a la programació orientada
a objectes:
Conceptes generals: anàlisi orientat a objectes
(AOO), disseny orientat a objectes (DOO), programació orientada
a objectes (POO).
Avantatges de la utilització de la POO: uniformitat,
comprensió, flexibilitat, estabilitat i reutilització.
4. Objectes:
Definició i característiques.
Identitat i objecte.
Classe: atributs, operacions, representació
gràfica.
Encapsulament i ocultació: llibreries.
Relacions entre objectes.
Herència: simple i múltiple.
Membres virtuals. Polimorfisme.
Comunicació entre objectes: objectius, missatges,
estat, clientela i herència.
5. Implementació de les propietats en POO:
Llenguatges orientats a objectes: característiques,
situació actual i avaluació.
Implementació en llenguatge que suporti la
POO.
Implementació en llenguatge que no suporta
la POO.
6. Sistemes gestors de bases de dades orientades
a objectes (SGBDOO):
Arrels. Limitacions de les bases de dades relacionals.
Arquitectura. Problemes. LLenguatges declaratius.
Restriccions/disparadors. Client/servidor. Versions.
Modificació de l'esquema. Concurrència.
Situació actual. Coexistència entre
POO i SBGD relacionals.
El llenguatge SQL i els SGBDOO.
d) Continguts de procediments.
1. Implementació d'estructures de dades dinàmiques:
Identificació de les estructures de dades.
Determinació de l'algoritme de tractament
segons l'estructura de dades.
Disseny de l'algoritme.
2. Definició d'una classe:
Assignació de nom.
Definició dels atributs.
Definició de les operacions.
Representació gràfica.
3. Definició del sistema de classes:
Definició de la classe base.
Definició de les subclasses.
Assignació de les relacions entre classes.
Representació gràfica del sistema.
Depuració del sistema.
4. Implementació del sistema de classes en
un llenguatge que no suporta POO:
Trasllat dels objectes (atributs i operacions) a
estructures de dades.
Traspàs dels arguments a les operacions.
Emmagatzematge d'objectes a la memòria.
Programació de l'herència.
Programació del polimorfisme.
5. Desenvolupament de programes amb estructures de
dades dinàmiques i/o amb recursivitat:
Anàlisi del problema que cal resoldre.
Descomposició modular.
Disseny de l'algorisme per cada mòdul.
Codificació dels algorismes.
Traducció dels mòduls.
Muntatge del programa.
Verificació del programa.
Documentació del programa.
6. Desenvolupament de programes amb utilització
d'objectes en llenguatges que suporta POO:
Anàlisi del problema que cal resoldre.
Definició del sistema de classes.
Descomposició modular.
Disseny de l'algorisme per a cada mòdul.
Implementació del sistema de classes amb les
instruccions específiques.
Codificació dels algorismes.
Traducció dels mòduls.
Muntatge del programa.
Verificació del programa.
Documentació del programa.
7. Desenvolupament de programes amb utilització
d'objectes en llenguatges que no suporta POO:
Anàlisi del problema que cal resoldre.
Definició del sistema de classes.
Descomposició modular.
Disseny de l'algorisme per a cada mòdul.
Implementació del sistema de classes en llenguatge
que no suporta POO.
Codificació dels algorismes.
Traducció dels mòduls.
Muntatge del programa.
Verificació del programa.
Documentació del programa.
e) Continguts d'actituds.
1. Sistematització del procés de resolució
de problemes:
Presa de decisions a l'hora d'implementar estructures
de dades dinàmiques, algorismes recursius i una programació
orientada a objectes en llenguatges que no la suportin.
2. Sistematització de la comprovació
de resultats:
Correcció sistemàtica dels errors detectats
en la definició de les estructures de dades dinàmiques,
dels algorismes recursius i de les classes i les relacions entre
elles.
3. Optimació del treball:
Eficàcia en elaborar, adaptar i provar programes.
4. Ordre i mètode de treball:
Ordenació i seqüència de les accions
a l'hora d'editar, traduir, muntar, executar i verificar programes.
5. Participació i cooperació en el
treball d'equip:
Col·laboració amb els altres programadors,
si és el cas, a l'hora de dissenyar i efectuar canvis en
la programació.
6. Execució independent del treball:
Autosuficiència per mantenir-se informat de
les innovacions, tendències i tecnologies en llenguatges
de programació orientada a objectes.
Rigurositat en la programació, l'adaptació
i la provatura de programes.
7. Confiança en si mateix:
Seguretat a l'hora de programar, adaptar i provar
programes.
8. Creativitat:
Motivació pel disseny de programes amb l'ús
d'estructures de dades dinàmiques, algorismes recursius
i/o la programació orientada a objectes.
9. Obertura a l'àmbit professional i a la
seva evolució:
Interès pels avenços tecnològics
en la programació orientada a objectes.
10. Adaptació a noves situacions:
Resposta a noves situacions davant de la utilització
de les tècniques de programació orientada a objectes.
11. Progrés i promoció dins de la professió:
Constància i esforç per aprendre les
tècniques de programació orientada a objectes
12. Valoració de resultats:
Argumentació del resultat obtingut en el programa
elaborat.
|