| 1 | Conceptes bàsics | Temes | 16 |
| |
|
| Hores exposicions teòriques: 6 |
Hores treball pràctic: 2 |
| Hores treball grup: 0 |
Hores treball individual: 8 |
| | |
| Objectius | | |
|
- Repasar el concepte de TAD
- Presentar el concepte de Classes i Objectes (programació orientada a objectes).
- Proporcionar eines per mesurar el cost en temps i espai dels algorismes.
| | |
| Continguts | | |
|
- Concepte de “Tipus
Abstracte de Dades”
- Especificació
del TAD
- Mecanismes per
crear especificacions
- Criteris en la
implementació de TAD's. Programació orientada a objectes.
- Lligam entre
implementació i especificació d'un TAD
- Relació
entre els TADs i la programació orientada a objectes
- Notacions asimptòtiques
- Anàlisi
asimptòtica de l'eficiència temporal d'un algorisme
- Anàlisi
asimptòtica de l'eficiència espacial d'un algorisme
| | |
| Activitats, coneixements, habilitats, aptituds | | |
|
| | |
| Planificació | | |
|
| | |
| Comentaris / Bibliografia | | |
|
| | |
| | | |
| 2 | Estructures Lineals | Temes | 30 |
| |
|
| Hores exposicions teòriques: 10 |
Hores treball pràctic: 5 |
| Hores treball grup: 0 |
Hores treball individual: 15 |
| | |
| Objectius | | |
|
- Repàs del concepte de seqüència
- Mostrar diverses estructures lineals: Piles, cues, llistes, multillistes
- Veure implementacions de les estructures lineals en vector i enllaçada
- Aprendre a utilitzar la memòria dinàmica
- Conèixer l'ordenació per fusió
| | |
| Continguts | | |
|
- Concepte de
seqüència
- Concepte de pila i
de cua
- Implementació
de piles i cues
- Llistes amb punt
d'interès
- Implementació
d'estructures de dades lineals amb punters
- Criteris per
implementar TCD
- Ordenació
per fusió
- Multillistes
| | |
| Activitats, coneixements, habilitats, aptituds | | |
|
| | |
| Planificació | | |
|
| | |
| Comentaris / Bibliografia | | |
|
| | |
| | | |
| 3 | Arbres | Temes | 28 |
| |
|
| Hores exposicions teòriques: 9 |
Hores treball pràctic: 5 |
| Hores treball grup: 0 |
Hores treball individual: 14 |
| | |
| Objectius | | |
|
- Repàs del concepte d'arbre: arbres binaris, arbres generals
- Algorismes per fer recorreguts en preodre, postordre, inordre i per nivells
- Veure diferents aplicacions que tenen els arbres
- Implementació d'arbres: en vector, en vector de punters als fills, punters a primer fill/següent germà
| | |
| Continguts | | |
|
- Concepte d'arbre general
- Especificació
d'arbres generals
- Especificació d'arbres binaris
(m-aris)
- Usos dels
arbresArbres generals
Especificació
d'arbres generals
Especificació d'arbres binaris
(m-aris)
Usos dels
arbres
Recorreguts
d'un arbre
Implementació
d'arbres binaris
Implementació
d'arbres generals
- Recorreguts
d'un arbre
- Implementació
d'arbres binaris
- Implementació
d'arbres generals
| | |
| Activitats, coneixements, habilitats, aptituds | | |
|
| | |
| Planificació | | |
|
| | |
| Comentaris / Bibliografia | | |
|
| | |
| | | |
| 4 | Diccionaris | Temes | 30 |
| |
|
| Hores exposicions teòriques: 10 |
Hores treball pràctic: 5 |
| Hores treball grup: 0 |
Hores treball individual: 15 |
| | |
| Objectius | | |
|
- Especificació del TAD "Diccionari"
- Aplicacions dels diccionaris
- Tècniques d'implementació senzilles:
- Llistes
- Llistes ordenades
- Llistes autorganitzades
- Tècniques d'implementació avançades:
- Arbres binaris de cerca (BST)
- Arbres binaris de cerca balancejats (AVL)
- Taules de dispersió (Hash tables)
- Arbres digitals (Tries)
- Llistes de dreceres (Skip lists)
- Algorismes d'ordenació QuickSort i RadixSort
| | |
| Continguts | | |
|
- Conceptes i especificació
- Usos dels
diccionaris
- Implementació
- Arbres Binaris
de Cerca (Binary Search Trees)
- Arbres Binaris
de Cerca Equilibrats (AVL’s)
- Algorisme
d'ordenació Quicksort
- Taules de
dispersió (hash tables)
- Tries
- Algorisme
d'ordenació Radix Sort
- Llistes de dreceres (Skip Lists)
| | |
| Activitats, coneixements, habilitats, aptituds | | |
|
| | |
| Planificació | | |
|
| | |
| Comentaris / Bibliografia | | |
|
| | |
| | | |
| 5 | Cues de prioritat | Temes | 10 |
| |
|
| Hores exposicions teòriques: 3 |
Hores treball pràctic: 2 |
| Hores treball grup: 0 |
Hores treball individual: 5 |
| | |
| Objectius | | |
|
- Què és una "Cua de prioritat"?
- Conèixer les aplicacions de les cues de prioritat
- Veure la implementació mitjançant turons (Heaps)
- Algorisme d'ordenació HeapSort
| | |
| Continguts | | |
|
- Especificació de TAD "Cua de prioritat"
- Aplicacions de les cues de prioritat
- Implementació mitjançant turons (Heaps)
- Algorisme d'ordenació HeapSort
| | |
| Activitats, coneixements, habilitats, aptituds | | |
|
| | |
| Planificació | | |
|
| | |
| Comentaris / Bibliografia | | |
|
| | |
| | | |
| 6 | Particions | Temes | 8 |
| |
|
| Hores exposicions teòriques: 2 |
Hores treball pràctic: 2 |
| Hores treball grup: 0 |
Hores treball individual: 4 |
| | |
| Objectius | | |
|
- Què és una partició?
- Conèixer aplicacions de les particions
- Veure la implementació amb Merge-Find-Sets (MFSets)
| | |
| Continguts | | |
|
- Especificació
- Implementació amb MFSets
- Quick-find
- Quick-union
- Tècniques
per millorar la Quick-union
| | |
| Activitats, coneixements, habilitats, aptituds | | |
|
| | |
| Planificació | | |
|
| | |
| Comentaris / Bibliografia | | |
|
| | |
| | | |
| 7 | Grafs | Temes | 18 |
| |
|
| Hores exposicions teòriques: 7 |
Hores treball pràctic: 2 |
| Hores treball grup: 0 |
Hores treball individual: 9 |
| | |
| Objectius | | |
|
- Repàs del concepte de graf i definicions
- Veure la implementació amb matrius i llistes d'adjacència
- Recorreguts en profunditat prioritària, en amplada i ordenació topològica
- Algorisme de Kruskal per calcular l'arbre d'expansió mínima
- Algorismes de Dijkstra i Floyd per calcular camins mínims
| | |
| Continguts | | |
|
- Especificació i definicions
- Implementació de grafs
- Matrius
d'adjacència
- Llistes
d'adjacència
- Multillistes d'adjacència
- Algorismes sobre grafs
- Recorregut en profunditat prioritària
- Recorregut en
amplada
- Recorregut en
ordenació topològica
- Arbres
d'expansió mínima: Algorisme de Kruskal
- Camins mínims:
Algorismes de Dijkstra i Floyd
| | |
| Activitats, coneixements, habilitats, aptituds | | |
|
| | |
| Planificació | | |
|
| | |
| Comentaris / Bibliografia | | |
|
| | |
| | | |
| 8 | Laboratori: Sessions | Pràctiques | 41 |
| |
|
| Hores exposicions teòriques: 1 |
Hores treball pràctic: 8 |
| Hores treball grup: 32 |
Hores treball individual: 0 |
| | |
| Objectius | | |
|
Els exercicis pràctics d'aquest mòdul permeten familiaritzar-se amb l'entorn de treball i el llenguatge de programació C++, i d'aquesta manera assolir els coneixements necessaris per més endavant realitzar la pràctica.
Aquestes sessions es realitzen en equips de dos estudiants i el llenguatge de programació és C++.
| | |
| Continguts | | |
|
- Introducció al Llenguatge C++
- Classes i Objectes
- Punters, Referència i pas de paràmetres
- Memòria Dinàmica
- Excepcions i generecitat
- Introducció a la llibreria stàndard STL
- Herència i Polimorfisme
| | |
| Activitats, coneixements, habilitats, aptituds | | |
|
- En aquestes classes el professor exposa una sèrie de conceptes i tècniques
directament vinculats amb la realització de la pràctica i amb el que
són les últimes etapes del desenvolupament del software:
- implementació,
- codificació,
- testing,
- etc.
- L'estudiant realitza els exercicis de programació que se li proposen, consistents fonamentalment en:
- implementació d'una classe
- ús de les taules
- ús de la memòria dinàmica
- les classes genèriques i els errors
- ús de la llibreria estàndard STL
| | |
| Planificació | | |
|
Aquestes sessions es realitzen a les
primeres setmanes de curs, i cada sessió té dues hores de duració.
El seguiment per part de l'alumne d'aquest mòdul es considera
imprescinble per tal de poder continuar amb el següent mòdul, és a dir,
la pràctica.
| | |
| Comentaris / Bibliografia | | |
|
| | |
| | | |
| 9 | Laboratori: Pràctica | Pràctiques | 36 |
| |
|
| Hores exposicions teòriques: 0 |
Hores treball pràctic: 6 |
| Hores treball grup: 30 |
Hores treball individual: 0 |
| | |
| Objectius | | |
|
La pràctica consisteix en la implementació d'un disseny modular. La
tasca de l'estudiant és implementar diferents mòduls del disseny
modular donat a l'enunciat.
La pràctica es realitza en equips de dos estudiants i el llenguatge de programació és C++.
| | |
| Continguts | | |
|
Aquest tipus de sessions
serveixen per controlar el seguiment de la pràctica i tenen lloc a les aules de informàtica. Durant aquestes sessions, els
estudiants tenen l'oportunitat de consultar els seus dubtes sobre la
pràctica, i discutir sobre els progressos del seu treball.
| | |
| Activitats, coneixements, habilitats, aptituds | | |
|
| | |
| Planificació | | |
|
Cada sessió té dues hores de duració.
| | |
| Comentaris / Bibliografia | | |
|
| | |
| | | |