Titulació | Tipus | Curs |
---|---|---|
2503758 Enginyeria de Dades | OB | 2 |
Podeu consultar aquesta informació al final del document.
L'assignatura no té cap prerequisit oficial. De totes formes, s'assumeix que l'alumnat ha cursat les assignatures prèvies de Fonaments de programació i Programació Avançada, així com Grafs, Topologia i Geometria Discreta. Per tant, sap utilitzar les estructures bàsiques i avançades de la programació, Orientació a objectes i el concepte de graf amb els diferents mètodes de recorregut sobre ells.
Aquesta assignatura forma part de la matèria Representació de les Dades i s’ha de veure com la continuació lògica de l’assignatura Programació Avançada i la continuació pràctica de l’assignatura de Matemàtica Discreta. L’objectiu bàsic és aprofundir en les estructures de dades bàsiques introduïdes a Fonaments de programació junt amb les nocions de programació orientada a objectes introduïdes a Programació Avançada i ampliar-les amb altres estructures de dades més complexes així com algorismes eficients per recorre-les. S’introduirà el concepte d’algorisme recursiu amb algorismes recursius simples i més complexos com els relacionats amb recorreguts d'arbres i grafs
D’aquesta forma, els objectius formatius que es proposen per a l’assignatura són els següents:
0. Introducció
Objectius i presentació de l’assignatura. Repàs de Programació avançada.
1. Estructures de dades linieals. Llistes, cues, piles.
Representació i manipulació d’estructures de dades dinàmiques: repàs de llistes, introducció a les piles i cues.
2. Estructures de dades no lineals. Hash
Tècniques de “Hashing”. Llistes hash. Funcions hash. Com s’implementen en python. Diccionaris.
3. Recursivitat i Algorismes d’ordenació
Introducció als algorismes recursius. Mètode de la bombolla, QuickSort, MergeSort. Recursivitat. Càlcul complexitat.
4. Estructures de dades no lineals. Grafs
Representacions i recorreguts. BFS, DFS, Resolució de problemes amb grafs.
5. Estructures de dades no lineals. Arbres.
Definició i representació d'un arbre. Recorreguts d'arbres. Binary Heaps.
Títol | Hores | ECTS | Resultats d'aprenentatge |
---|---|---|---|
Tipus: Dirigides | |||
Classes presencials | 48 | 1,92 | 4, 3, 2, 1, 5 |
Treball autònom | 93 | 3,72 | 4, 3, 2, 1, 5 |
La metodologia docent de l’assignatura parteix del principi que diu que “programar és l’única forma d’aprendre a programar” i, per tant, estarà centrada principalment en el treball pràctic de l’alumnat. Les sessions presencials de classe s'organitzaran per introduir els continguts teòrics de l'assignatura, des d'una perspectiva molt pràctica a partir d'exemples i d'exercicis i problemes de programació que s'hauran de resoldre a classe directament amb l'ordinador. L'objectiu principal de l'assignatura és que l’alumnat sàpiga resoldre un problema donat, de manera eficient, utilitzant estructures de dades complexes, si cal. Per aquesta raó l'aprenentatge es centrarà en acompanyar a l’alumnat en la seva tasca de resolució de problemes a partir d'uns conceptes teòrics estudiats prèviament de manera autònoma. Es farà servir principalment el llenguatge de programació python.
Per una altra banda, es realitzarà un projecte de programació que s'haurà d'anar desenvolupant de forma principalment autònoma durant tot els curs (amb seguiment i control per part del professor en sessions puntuals) i que suposarà integrar de forma pràctica gairebé tots els conceptes i eines de programació introduïts a les sessions presencials en la resolució d'un problema real complex. A més a més, es proposarà un conjunt d'exercicis que s'hauran de resoldre de forma individual al llarg del curs (alguns dels quals es resoldranidiscutiran a les sessions presencials) que han de servir per comprendre, integrar i aplicar els conceptes desenvolupats a les sessions presencials. A les activitats del curs (sessions presencials, problemes i pràctiques) es farà servir principalment el llenguatge de programació Python.
A nivell presencial, les sessions de classe s'organitzaran en quatre hores setmanals i es faran en una aula amb ordinadors per facilitar el treball pràctic de l’alumnat. S'encoratja que l’alumnat porti el seu propi portàtil a classe si en disposa d'un. A les sessions presencials s'aniran introduint els conceptes que es detallen al temari de l'assignatura. En alguns casos, es podran posar a disposició de l’alumnat vídeos explicatius o altre material complementari que l’alumnat haurà de visionar abans de la sessió de classe. Les sessions de classe tindran un enfoc força pràctic amb exemples i exercicis que es plantejaran als alumnes per facilitar la comprensió i aprenentatge dels conceptes explicats. Aquests exercicis es realitzaran i discutiran durant la sessió i serviran per anar introduint els continguts de l'assignatura i veure'n la seva aplicació pràctica.
l’alumnat haurà de completar les classes presencials amb el treball personal autònom en la realització dels exercicis que es vagin proposant i que han de servir per acabar d'entendre els continguts de l'assignatura. Cal tenir present que el temari de l'assignatura té una continuïtat lògica al llarg del curs, de manera que per poder seguir correctament una classe cal haver assimilat el que s'ha explicat a les sessions anteriors. Alguns d'aquests exercicis s'hauran de lliurar de forma individual com a part de l'avaluació de l'assignatura.
A més a més, l’alumnat haurà de fer en grups de 2 un projecte de programació que es desenvoluparà de forma autònoma durant tot el curs fora de les sessions presencials. El projecte de programació permetrà abordar un problema de programació d'una certa complexitat que integri la majoria dels conceptes explicats durant el curs. Durantel curs, es dedicaran algunes sessions presencials al control, seguiment i avaluació del treball fet per l'alumne en el projecte de programació.
La gestió de la docència de l'assignatura es farà a través de Caronte (http://caronte.uab.cat/), i de campus virtual (https://cv.uab.cat/) .
Nota: es reservaran 15 minuts d'una classe, dins del calendari establert pel centre/titulació, per a la complementació per part de l'alumnat de les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura/mòdul.
Títol | Pes | Hores | ECTS | Resultats d'aprenentatge |
---|---|---|---|---|
Primer Parcial | 20% Nota final | 2 | 0,08 | 4, 3 |
Problemes | 20% Nota final | 0 | 0 | 4, 3, 2, 1 |
Projecte | 40% Nota final | 2 | 0,08 | 4, 3, 2, 1, 5 |
Recuperació Final | 40% Nota final | 3 | 0,12 | 4, 3 |
Segon Parcial | 20% Nota final | 2 | 0,08 | 4, 3 |
L’avaluació de l’assignatura tindrà en compte tres tipus d’activitats d’avaluació: lliurament de problemes, avaluació individual i projecte de programació. La nota final de l’assignatura s’obté combinant l’avaluació d’aquestes 3 activitats de la manera següent:
Nota Final = (0.2 * Avaluació Problemes) + (0.4 * Projecte) + (0.4 * Avaluació Individual)
No es necessari aconseguir una nota mínima en aquesta activitat per poder aprovar l'assignatura.
Els exercicis que es lliurin fora de termini o que tinguin una avaluació de suspès es podran recuperar i tornar a lliurar en qualsevol moment del curs abans de la data de l'examen final de l'assignatura, amb una reducció sobre la nota del 20%. Els problemes estaran ponderats segons el pes del tema al conjunt de l’assignatura, i el nombre de problemes que s’hagin de lliurar per cada tema.
S'haurà d'aconseguir una nota mínima de 4 en cadascun dels dos parcials i una nota promig mínima de 5 per poder aprovar l'assignatura .
La nota final serà la mitja dels dos parcials: Avaluació Individual = (0.5 * Parcial1) + (0.5 * Parcial2)
Projecte = (0.2 * Avaluació seguiment projecte) + (0.3 * Entrega Parcial 1) + (0.5 * Entrega Final)
No avaluable: Un alumne es considerarà no avaluable (NA) si no fa com a mínim el 50% dels lliuraments d'exercicis i no fa cap de les proves d’avaluació següents: parcial 1, parcial 2, prova final de recuperació, lliurament final de la pràctica.
Suspesos: Si el càlcul de la nota final és igual o superior a 5però no s’arriba al mínim exigit en alguna de les activitats d’avaluació, la nota final serà suspès i es posarà un 4.5 a la nota de l'expedient de l’alumne.
Convalidacions: No es convalidaran projectes d'anys anteriors.
MH: Es donaran tantes matrícules com es puguin dins de la normativa de la universitat, començant per les notes més altes i sempre i quan la nota mínima sigui un 9.
Revisions: Per a cada activitat d’avaluació, s’indicarà un lloc, data i hora de revisió en la que l'estudiant podrà revisar l’activitat amb el professor. En aquest context, es podran fer reclamacions sobre la nota de l’activitat, que seran avaluades pel professorat responsable de l’assignatura. Si l'estudiant no es presenta a aquesta revisió, no es revisarà posteriorment aquesta activitat.
Nota important sobre còpies i plagis:
Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, i d'acord amb la normativa acadèmica vigent, les irregularitats comeses per un estudiant que puguin conduir a una variació de la qualificació es qualificaran amb un zero (0). Les activitats d'avaluació qualificades d'aquesta forma i per aquest procediment no seran recuperables. Si és necessari superar qualsevol d'aquestes activitats d'avaluació per aprovar l'assignatura, aquesta assignatura quedarà suspesa directament, sense oportunitat de recuperar-la en el mateix curs. Aquestes irregularitats inclouen, entre d'altres:
En aquests casos, la nota numèrica de l'expedient serà el valor menor entre 3.0 i la mitjana ponderada de les notes (i per tant no serà possible l'aprovat per compensació).
En l'avaluació dels lliuraments de problemes i pràctiques s’utilitzaran eines de detecció de còpia del codi del programa.
Nota sobre la planificació de les activitats d'avaluació:
Les dates d'avaluació continuada i lliurament de treballs es publicaran al principi de curs i poden estar subjectes a canvis de programació per motius d'adaptació a possibles incidències. Sempre s'informarà a Caronte sobre aquests canvis ja que s'entén que aquesta és la plataforma habitual d'intercanvi d'informació entre professors i estudiants.
Avaluació única:
Aquesta assignatura no preveu el sistema d'avaluació única.
Problem solving with algorithms and data Structures using Python. Bradley N. Miller and David L. Ranum. Franklin, Beedle and associates, 2005.
Python Programming: an introduction to computer science. John Zelle. Franklin,Beedle and associates, 2004.
Data Structures and Algorithms in python. Michael T. Googrich, Roberto Tamassia, Michael H. Goldwasser. Ed. Wiley. 2013
https://www.geeksforgeeks.org/python-programming-language/?ref=ghm
Spyder (Anaconda)
Nom | Grup | Idioma | Semestre | Torn |
---|---|---|---|---|
(PAUL) Pràctiques d'aula | 81 | Català | primer quadrimestre | matí-mixt |
(PAUL) Pràctiques d'aula | 82 | Català | primer quadrimestre | matí-mixt |