Responsable: | (-) |
Altres: | (-) |
Crèdits | Dept. | Tipus | Requisits |
---|---|---|---|
7.5 (6.0 ECTS) | CS |
|
PRAP
- Pre-requisit per la EI , ETIG PRED - Pre-requisit per la EI , ETIG PS - Pre-requisit per la ETIS |
Responsable: | (-) |
Altres: | (-) |
Proveir l'alumne de les tècniques algorísmiques bàsiques que permeten abordar el desenvolupament de programes correctes i eficients per a resoldre problemes no trivials. Les tècniques bàsiques esmentades inclouen coneixements teòrics i pràctics, habilitats, experiències i sentit crític, totes elles fonamentades en teories i tècniques sòlides, comprovades i ben establertes.
Hores estimades de:
T | P | L | Alt | L Ext. | Est | A Ext. |
Teoria | Problemes | Laboratori | Altres activitats | Laboratori extern | Estudi | Altres hores fora d'horari fixat |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
3,0 | 2,0 | 0 | 0 | 0 | 5,0 | 0 | 10,0 | |||
Mergesort
Quicksort Karatsuba Strassen Altres exemples |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
7,0 | 8,0 | 0 | 0 | 0 | 15,0 | 0 | 30,0 | |||
Heaps
Heapsort Cues de prioritat esteses Taules de dispersió Arbres binaris de cerca Arbres binaris de cerca balancejats |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
3,0 | 2,0 | 0 | 0 | 0 | 7,0 | 0 | 12,0 | |||
Representacions
Recorreguts Algorismes bàsics |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
5,0 | 5,0 | 0 | 0 | 0 | 12,0 | 0 | 22,0 | |||
Principis dels algorismes voraços
Arbres d'expansió mínims: Kruskal, Prim Camins mínims: Dijkstra Codis prefixes òptims: Huffman Altres exemples |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
5,0 | 5,0 | 0 | 0 | 0 | 12,0 | 0 | 22,0 | |||
Principis dels algorismes de cerca exhaustiva
Marxa enrera (backtracking) i Ramificació i poda (branch and bound) Exemples Nocions de complexitat |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
5,0 | 5,0 | 0 | 0 | 0 | 12,0 | 0 | 22,0 | |||
Principis dels algorismes de programació dinàmica
Principi d'optimalitat Solucions recursives, amb memoització i iteratives Camins mínims: Floyd Distància de edició Altres exemples |
Total per tipus | T | P | L | Alt | L Ext. | Est | A Ext. | Total |
33,0 | 32,0 | 0 | 0 | 0 | 73,0 | 0 | 138,0 | |
Hores addicionals dedicades a l'avaluació | 9,0 | |||||||
Total hores de treball per l'estudiant | 147,0 |
El temari s'exposa de forma molt pràtica, a través de la presentació de molts exemples.
Les classes introdueixen la teoria i els exemples d'aplicació de manera més o menys paral·lela.
Les cinc hores setmanals en promig de l'assignatura es fan en dos blocs de 2 hores cada setmana i un bloc de 2 hores en setmanes alternes.
L'avaluació constarà d'un examen parcial, un
examen davant d'ordinador, un examen final i un
treball pràctic voluntari.
L'examen parcial (P) és una prova escrita on entra
la matèria dels temes 1 a 4.
L'examen davant d'ordinador (M) és una prova
consistent a resoldre dos problemes sobre la
matèria dels temes 2, 4, 5 i 6 davant de
l'ordinador i utilizant el sistema del Jutge.
L'examen final (F) és una prova escrita on entra
tota la matèria de l'assignatura.
El treball pràctic voluntari (V) consisteix en la
implementació d'un jugador per a un joc.
La nota de l'assignatura es calcula així:
NOTA = min(10, max(25% P + 25% M + 50% F, 100% F) + 20% V )
La temporització és la següent:
L'examen parcial es fa a mitjans de curs, l'examen
davant d'ordinador cap a final de curs i l'examen
final un cop acabat el curs. El treball voluntari
s'ha de lliurar cap a final de curs.
El mecanisme de l'examen davant de màquina és el
següent:
Davant de l'ordinador, els estudiants reben dos
problemes. Un problema es defineix amb un
enunciat, un o més jocs de proves públics i,
potser, cert codi ja implementat. Quan un estudi
vulgui lliurar la seva solució per algun dels
problemes, l'envia a un jutge automàtic que, en
poc segons, li retornarà el veredicte sobre el
comportament del seu programa. L'estudiant pot
reenviar fins a 10 solucions per al mateix
problema. Els professors corregiran el darrer
enviament realitzat per cada problema.
El mecanisme del treball pràctic voluntari és el
següent:
Després del parcial, es lliurarà l'enunciat del
treball pràctic voluntari, que consistirà en la
descripció d'un joc. Els estudiants que vulguin
portar a terme el treball pràctic voluntari hauran
de programar un jugador per aquest joc (és a dir,
implementar una estratègia per intentar guanyar el
joc). Juntament amb l'enunciat, els professors
també lliuraran el codi d'un jugador molt senzill:
el "tonto".
A finals de curs, hi haurà un enfrontament públic
a través d'un sistema de rondes que inclourà tots
els jugadors lliurats pels estudiants i el tonto.
D'aquest enfrontament es deduirà una classificació
i es nomenarà un campió.
La nota del treball pràctic voluntari es calcula
automàticament a partir de la posició a la
classificació, de forma lineal i garantint que el
campió tingui un 10 i que tots els participants
que guanyin al tonto tinguin un nota mínima de 5.
Els jugadors que no guanyin al tonto tindran una
nota de 0.
El lliurament del treball pràctic voluntari
implica acceptar que, si es comprova que hi ha
hagut frau en la seva realització, es restaran els
seus punts (enlloc de sumar-los) als de
l'assignatura.
Domini de les tècniques de programació imperativa basada en objectes:
- pas de paràmetres,
- classes,
- objectes,
- mètodes,
- punters,
- memòria dinàmica,
- genericitat,
- ús de classes estàndard.
Conèixer bé almenys un llenguatge imperatiu orientat a objectes, preferentment C++.
Recursivitat.
Concepte de TAD.
TAD seqüencials:
- piles,
- cues,
- llistes amb punt d'interès,
- llistes amb iteradors.
Ús i implementació interna dels TAD seqüencials.
TAD arboris:
- arbre binari,
- arbre n-ari,
- arbre general,
- recorreguts.
Ús i implementació interna dels TAD arboris.
Coneixements matemàtics sobre grafs, sumatoris, límits. Matemàtica discreta. Capacitat per seguir i proposar raonaments matemàtics.
Alguns coneixements rudimentaris d'estadística i probabilitats: espai de probabilitat, esdeveniments, funcions de distribució, variable aleatòria, esperança.