El paradigma de programació orientat a objectes és un dels pilars del desenvolupament de software modern. L?assignatura té com a objectiu introduir i consolidar els principis fonamentals d?aquest paradigma, tot utilitzant un llenguatge de programació actual i àmpliament utilitzat en entorns reals.
S?incideix especialment en la fase de disseny de programari i en la capacitat de modelar sistemes utilitzant UML de manera eficaç. Es pressuposa que l?alumnat ja disposa d?uns coneixements sòlids del paradigma imperatiu/procedimental que li permetin comprendre el funcionament d?un nou llenguatge orientat a objectes.
Finalment, atès que una part significativa del desenvolupament de software es realitza en equips, l?assignatura també fomenta competències bàsiques de treball col·laboratiu i ús d?entorns de desenvolupament professionals.
Professors Titulars
Coneixements bàsics de programació imperativa i procedimental (variables, estructures de control, funcions i tractament bàsic de dades). Es recomana haver cursat Fonaments de la programació.
Els alumnes adquireixen els coneixements i habilitats següents:
1. Comprendre els fonaments de la programació orientada a objectes i aplicar-los mitjançant un llenguatge de programació actual.
2. Dissenyar i estructurar aplicacions de software a partir d?especificacions concretes, utilitzant UML i principis de disseny bàsics.
3. Fer servir de manera adequada un entorn de desenvolupament integrat (IDE) i aplicar bones pràctiques de programació.
4. Desenvolupar solucions en equip, integrant metodologies de treball col·laboratiu en projectes de programari.
1. Introducció i fonaments de la programació orientada a objectes.
2. Anàlisi, disseny i implementació orientada a objectes.
3. Herència, polimorfisme, classes abstractes i interfícies.
4. Disseny modular i tipus abstractes de dades.
5. Memòria dinàmica i gestió d?objectes.
6. Estructures de dades lineals aplicades al desenvolupament.
7. Gestió d?excepcions en aplicacions orientades a objectes.
8. Introducció als patrons de disseny.
9. Introducció a la concurrència i programació multifil.
10. Eines i tècniques de modelatge: introducció a UML i diagrama de classes.
11. Ús d?entorns de desenvolupament (IDE) i eines habituals del cicle de programació.
La metodologia docent combina l?exposició teòrica amb activitats pràctiques orientades a reforçar els conceptes treballats. Les classes magistrals presenten els fonaments de la POO i del disseny en UML, mentre que els exercicis guiats i les pràctiques permeten aplicar-los de manera progressiva.
L?assignatura s?organitza en dues fases:
- Primera fase: adquisició dels conceptes bàsics del paradigma orientat a objectes mitjançant exercicis i pràctiques guiades.
- Segona fase: desenvolupament d?un projecte aplicat, on l?alumnat integra i consolida els coneixements mitjançant una metodologia d?aprenentatge basada en projectes.
Es fomenta la participació activa, el pensament crític i la col·laboració entre alumnes, reproduint processos habituals del desenvolupament de software real.
L'avaluació combina activitats d?avaluació contínua, exercicis pràctics i una prova final escrita. També es realitza un projecte pràctic on s'apliquen els continguts principals de l'assignatura.
- Projecte (40%): Desenvolupament d'un projecte en grup durant les darreres setmanes de l'assignatura.
- Exercicis (30%): Exercicis d?avaluació continuada realitzats durant el semestre, abans de l'inici del projecte.
- Examen (10%): Prova final sobre els continguts apresos i el projecte.
- Portafoli (5%): Document elaborat al final del semestre que recull les tasques més rellevants realitzades.
- Autoavaluació (5%): Avaluació peer-to-peer al final del projecte.
- Presentació oral (5%): Entrevista final realitzada pel professorat als grups. La nota serà individual.
- Participació (5%): Participació activa de l'alumne al llarg del semestre.
Es valorarà l'assoliment dels continguts de POO i UML, la qualitat del codi i del projecte, l'aplicació de principis de disseny, la capacitat de resoldre exercicis teòrics i pràctics, i la qualitat de la documentació lliurada.
- Deitel & Deitel. Java: How to Program. Pearson.
- Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software (capítols introductoris).
- Documents i apunts proporcionats pel professorat.
Materials addicionals, tutorials, exercicis extres i exemples de codi proporcionats a la plataforma virtual de l?assignatura.