Curs 2014-15
Fonaments de la Programació
Titulació: | Codi: | Tipus: |
Grau en Enginyeria Informàtica | 21406 | Obligatòria 1r curs |
Grau en Enginyeria Telemàtica | 21297 | Obligatòria 1r curs |
Grau en Enginyeria en Sistemes Audiovisuals | 21595 | Obligatòria 1r curs |
Crèdits ECTS: | 8 | Dedicació: | 200 hores | Trimestre: | 2n i 3r |
Departament: | Dept. de Tecnologies de la Informació i les Comunicacions |
Coordinador: | Sergi Jordà |
Professorat: | Sergio Giraldo, Sergi Jordà, Hector Palacios, Jordi Ysard Puigbo, Dolors Sala, Juan Sánchez, Javier Segovia, David Soto, Zacharias Vamvakousis i Vicky Vouloutsi.
|
Idioma: | Català i Castellà |
Horari: | |
Campus: | Campus de la Comunicació - Poblenou |
Fonaments de la Programació està integrada en un bloc d'assignatures sobre algorísmica i programació que es duen a terme en el primer i segon curs dels estudis de Grau en Enginyeria en Informàtica, Grau en Enginyeria Telemàtica i Grau en Enginyeria de Sistemes Audiovisuals. Per a aquesta primera assignatura del bloc es pressuposa que els estudiants no tenen coneixements previs sobre algorísmica i programació. En ella s'estableixen les bases de la algorísmica, de les estructures de dades i de la programació en el llenguatge C. En les assignatures Programació Orientada a Objectes i Estructures de Dades i Algorismes (primer trimestre del segon curs) s'aprofundirà en les competències aquí adquirides, de manera que al final del primer trimestre de segon curs l' estudiant ha de ser capaç de desenvolupar programes de grandària considerable amb les estructures de dades adequades, tant en forma imperativa com orientada a objectes. Així mateix, és important destacar que les bases adquirides en Fonaments de la Programació són imprescindibles per poder implementar la part pràctica de nombroses assignatures al llarg dels estudis.
Les activitats d'aprenentatge s'han dividit fonamentalment en funció de la seva tipologia en diverses categories:
L'objectiu fonamental d'aquesta assignatura és que els alumnes adquireixin les bases de la algorísmica i estructures de dades, així com que siguin capaços de desenvolupar fluidament programes de mida mitjana utilitzant el llenguatge C.
En aquest capítol es detalla què és el que s'espera que els estudiants hagin après en acabar l'assignatura. En primer lloc, les competències generals fan referència a habilitats no directament relacionades amb la programació en si, sinó a l'àmbit professional d'un enginyer. Les competències específiques són les referides a aspectes propis de l'assignatura.
Competències generals
Instrumentals
CG1: Capacitat de síntesi
L'estudiant ha de ser capaç d'escriure solucions amb els elements essencials, de forma simple, elegant i el més eficient possible.
CG2: Capacitat d'anàlisi
L'estudiant ha de ser capaç de, a partir d'un problema concret, analitzar-lo i proposar solucions adequades a aquest problema.
Sistèmiques
CG3: Capacitat per aplicar el coneixement a la pràctica
L'estudiant ha de ser capaç d'aplicar els coneixements adquirits per resoldre problemes concrets, triant la tècnica que millor s'ajusti a cada cas.
CG4: Interès per la qualitat
L'estudiant ha de ser capaç de que el seu codi sigui, a més d'eficient, fàcil de llegir i mantenir. Així mateix és important que es documenti correctament, tant dins del propi codi com en una memòria.
Competències específiques
CE1: Capacitat per treballar amb eines de programació
L'estudiant ha de ser capaç de treballar amb les eines bàsiques per a la programació: un compilador i un debugado. A més ha de ser capaç de treballar amb un editor de programació i un entorn de desenvolupament integrat. Aquesta competència és primordial per al correcte desenvolupament de les altres.
CE2: Domini dels tipus de dades estàtiques bàsiques i compostos
L'estudiant ha de ser capaç de distingir els diferents tipus de dades estàtiques bàsics i compostos i de decidir el tipus adequat per a cada situació concreta.
CE3: Domini de les estructures de control
L'estudiant ha de ser capaç de distingir les diferents estructures de control compostos i de decidir les més adequades per a resoldre problemes concrets.
CE4: Capacitat de resolució de problemes mitjançant disseny descendent i domini de la utilització de funcions i llibreries
L'estudiant ha de ser capaç de resoldre problemes d'una complexitat considerable utilitzant les tècniques del disseny descendent. En particular, l'estudiant ha de comprendre el funcionament de les crides a funcions i passos de paràmetres, ha de dominar l'ús i creació de llibreries, i ha de ser capaç de dividir un problema en les unitats adequades.
CE5: Domini dels tipus de dades dinàmics i de la gestió dinàmica de memòria
L'estudiant ha de comprendre el mecanisme de gestió de memòria, així com l'ús de punters i control dinàmic d'estructures de dades . S'inclou també el maneig de fitxers de text.
CE6: Documentació i estructuració de codi
L'estudiant ha d'adquirir l'hàbit d'estructurar i documentar el codi de forma adequada amb la finalitat de facilitar la seva posterior lectura.
CE7: Capacitat de lectura (ràpida) de codi en C
L'estudiant ha de ser capaç de comprendre codi escrit per altres programadors, de forma relativament ràpida.
CE8: Domini dels elements fonamentals d'algorísmia
L'estudiant ha de conèixer i ser capaç d'aplicar de forma adequada els conceptes fonamentals de la algorísmia, com ara la recursivitat i els algorismes de cerca i ordenació.
Cadascuna suposa un 50 % de la nota final, i cal aprovar ambdues parts per superar l'assignatura.
Fonaments teoricopràctics
Hi haurà dues proves escrites, una a meitat de l'assignatura (al final del segon trimestre) i una altra al final de la assignatura (i del tercer trimestre). La primera suposa un 25% de la nota i es centra en la teoria i el bloc d'exercicis realitzats durant el segon trimestre. La segona prova escrita suposa el 75 % restant i abasta qüestions teoricopràctiques de tot el conjunt de l'assignatura.
A les sessions de seminaris els professors aniran revisant el treball dels estudiants al llarg del trimestre, i demanaran el lliurament d'un exercici al final de cada sessió. En funció d'aquestes revisions i lliuraments, es podrà pujar (però mai baixar) la nota final de la part de fonaments teoricopràctics fins a 1.5 punts. Per aprovar aquesta part, la nota teòrica final (resultant dels dos blocs) abans de sumar els punts de seminaris, haurà de ser, però, superior o igual a 4 (i superior o igual a 5, després de sumar-hi els punts de seminaris).
A més, s'han programat diverses activitats d'autoavaluació, una al final de cada unitat didàctica, amb l'objectiu que l'estudiant vagi valorant el seu propi progrés. Aquestes activitats consten d'una sèrie de preguntes test de resposta múltiple, d'un nivell similar a les de les proves escrites. Aquestes activitats d'autoavaluació no incideixen en la nota.
Pràctiques
La nota d'aquesta part s'obté a partir de tres pràctiques lliurables, distribuïdes al llarg de l'assignatura. Cadascuna d'aquestes pràctiques té el mateix pes en la nota (és a dir, cada pràctica avaluable té un pes d'un 33.3 % en el total de la nota de pràctiques). Pel que fa a la nota de les pràctiques lliurables, a part de la valoració global, els professors podran revisar el progrés en el treball dels estudiants, al llarg de les sessions de pràctiques. En el cas que algun grup no fes aquesta revisió, o que aquesta no fos satisfactòria, haurà de fer una defensa de la seva pràctica amb posterioritat al seu lliurament.
A part de les pràctiques lliurables, altres sessions pràctiques serviran als estudiants per avaluar el seu propi progrés. Aquestes activitats no incideixen en la nota.
Recuperació de Juliol
La part de fonaments teoricopràctics és recuperable, però la part de pràctiques no és recuperable. Per tant:
- en cas de suspendre al juny la part de fonaments teoricopràctics i aprovar la part de pràctiques, l'estudiant tindrà l'opció de recuperar al juliol la part de fonaments teoricopràctics mitjançant la realització d'una prova escrita (del mateix tipus que la prova escrita final).
- en cas de suspendre al juny la part de pràctiques, no serà possible recuperar l'assignatura.
2 . Concreció
Primera pràctica avaluable
S'avaluarà la resolució d'una pràctica en la qual l'estudiant podrà mostrar el grau d'assimilació dels conceptes i competències adquirits durant el primer terç de l'assignatura. En particular s'avaluaran les competències CE2, CE3 i certs aspectes de la CE4 i la CE6 (estructuració de codi comentat). La pràctica consistirà en la resolució d'un problema, incloent la seva anàlisi i la programació d'una solució adequada en llenguatge C. L'estudiant haurà de decidir les estructures de dades estàtiques així com el flux d'operacions de la solució i realitzar un senzill disseny descendent. Així mateix es valoraran les quatre competències generals definides.
Segona pràctica avaluable
S'avaluarà la resolució d'una pràctica en la qual l'estudiant podrà mostrar el grau d'assimilació dels conceptes i competències adquirits durant els dos primers terços de l'assignatura, i especialment durant el segon. En particular s'avaluaran les competències CE2, CE3, CE4, CE5 i CE6. La pràctica consistirà en la resolució d'un problema considerablement complex, incloent la seva anàlisi, l'elecció de les estructures de dades (estàtiques i dinàmiques) adequades, el disseny descendent, la programació d'una solució adequada en llenguatge C (seguint les recomanacions de bones pràctiques) i la seva correcta documentació en una memòria en què també es justificaran les decisions adoptades. Així mateix es valoraran les quatre competències generals definides.
Tercera pràctica avaluable
S'avaluarà la resolució d'una pràctica en la qual l'estudiant podrà mostrar el grau d'assimilació dels conceptes i competències adquirits durant tota l'assignatura. En particular s'avaluaran les competències CE2, CE3, CE4, CE5, CE6 i CE8.
La pràctica consistirà en la resolució d'un problema considerablement complex, incloent la seva anàlisi, l'elecció de les estructures de dades (estàtiques i dinàmiques) adequades, el disseny descendent, la programació d'una solució adequada en llenguatge C (seguint les recomanacions de bones pràctiques) i la seva correcta documentació en una memòria en què també es justificaran les decisions adoptades i on s'inclourà una part d'anàlisi de la complexitat algorísmica. Així mateix es valoraran les quatre competències generals definides.
Prova escrita parcial
S'avaluarà la comprensió i aplicació dels conceptes i tècniques adquirits durant la primera meitat de l'assignatura (corresponent al segon trimestre). En concret s'avaluaran les competències CE2, CE3, CE4, CE5 i especialment la CE7. El mètode d'avaluació consisteix en una prova escrita tipus test d'al voltant de 20 preguntes amb 4 opcions per cada pregunta amb només una resposta vàlida. Les preguntes estaran extretes (amb lleugeres modificacions) de les propostes per a les sessions d'exercicis i de les activitats d'autoavaluació. L'avaluació tindrà lloc durant el període d'exàmens del segon trimestre.
Prova escrita final
S'avaluarà la comprensió i aplicació dels conceptes adquirits al llarg de tota l'assignatura en petits programes. En concret s'avaluaran les competències CE2, CE3, CE4, CE5, CE7 i CE8. El mètode d'avaluació consisteix en una prova escrita tipus test de prop de 30 preguntes amb 4 opcions per cada pregunta amb només una resposta vàlida. L'avaluació tindrà lloc durant el període d'exàmens del tercer trimestre.
Bloc 1: Introducció i conceptes generals
Conceptes | Procediments |
---|---|
- Breu història de la programació i els seus llenguatges i paradigmes |
|
Bloc 2: Tipus de dades bàsiques
Conceptes | Procediments |
---|---|
|
- Declaració de constants i variables dels diferents tipus |
Bloc 3: Expressions, sentencies i estructures de control
Conceptes | Procediments |
---|---|
- Formació d'expressions • Assignacions |
- Avaluació d'expressions
|
Bloc 4: La descomposició funcional i el disseny descendent
Conceptes | Procediments |
---|---|
- Disseny descendent |
- Descomposició de problemes en subproblemes
- Resolució de petits problemes definint funcions de forma adequada
|
Bloc 5: Tipus de dades compostos estàtics
Conceptes | Procediments |
---|---|
- Arrays unidimensionals |
- Resolució de petits problemes sobre les operacions típiques amb cada un dels tipus de dades |
Bloc 6: Declaració de tipus propis
Conceptes | Procediments |
---|---|
- Els tipus de les estructures |
- Resolució de petits problemes de definició de tipus de dades pròpies |
Bloc 7: Els punters i la gestió dinàmica de memòria
Conceptes | Procediments |
---|---|
- Declaració de punters |
- Resolució de petits problemes sobre les operacions típiques amb punters
|
Bloc 8: La descomposició funcional i el disseny descendent (segona part)
Conceptes | Procediments |
---|---|
- Pas de paràmetres per referència |
|
Bloc 9: Fitxers de text
Conceptes | Procediments |
---|---|
- El tipus fitxer (FILE) |
- Resolució de petits problemes sobre les operacions típiques amb fitxers de text
|
Bloc 10: Estil i bones pràctiques
Conceptes | Procediments |
---|---|
- Estil, llegibilitat i ofuscació |
- Resolució de problemes de detecció d'errors i millora d'estil
|
Bloc 11: La descomposició funcional i el disseny descendent (tercera part)
Conceptes | Procediments |
---|---|
- Programació de llibreries |
- Resolució de problemes de creació i ús de llibreries |
Bloc 12: Algoritmes de cerca i ordenació
Conceptes | Procediments |
---|---|
|
- Resolució de problemes sobre algorismes de cerca i ordenació |
Bloc 13: Recursivitat
Conceptes | Procediments |
---|---|
- Concepte de recursivitat |
- Resolució de problemes mitjançant definició de funcions recursives |
Bloc 14: Gestió avançada de memòria
Conceptes | Procediments |
---|---|
- Punters a punters |
- Resolució de problemes de gestió avançada de memòria |
El procés habitual d'aprenentatge en una unitat didàctica comença amb una sessió de teoria en què es presenten certs fonaments teoricopràctics. Aquesta activitat es realitza en un gran grup d'estudiants. L'estudiant haurà posteriorment completar aquesta activitat amb una lectura detinguda dels apunts. Per exemple, una sessió típica de teoria de 2 hores de durada, convenientment aprofitades, necessitarà un treball personal fora de l'aula d'1 hora.
A continuació es porta a terme una o diverses sessions de seminaris i / o pràctiques. A les sessions de seminaris l'estudiant posa en pràctica els conceptes i tècniques presentats en la sessió de teoria , mitjançant la implementació de programes per solucionar petits problemes. L'objectiu és que l'estudiant consolidi els fonaments per a posteriorment poder dur a terme problemes més grans. Aquesta activitat es realitza individualment , en un grup d'uns 15 estudiants . Cada activitat d'aquest tipus està programada amb una durada de 4 hores, de les quals 2 es realitzen amb suport del professor. Els primers exercicis de la sessió , per als quals s'ofereixen les solucions , s'han de resoldre abans d'arribar a l'aula. El professor pot sol·licitar el lliurament d'un dels exercicis plantejats al final de cada sessió.
A les sessions de pràctiques es proposen uns problemes més grans, especialment en les 3 pràctiques avaluables, que requereixen un disseny previ de la solució a implementar i que integren diferents conceptes i tècniques. En l'última pràctica es reuneixen totes les competències específiques que l'estudiant ha d'adquirir en aquesta assignatura. Cada activitat d'aquest tipus es realitza per parelles, en un grup d'uns 30 estudiants, i s'ha de continuar fora de l'aula.
A cada sessió de seminaris i de pràctiques es dedica un temps per discutir els principals problemes que s'han presentat a la sessió anterior.
L'últim pas de la unitat didàctica és el de la resolució d'uns exercicis d'autoavaluació mitjançant els quals l'estudiant pot comprovar si ha adquirit les competències que posteriorment s'avaluaran mitjançant els exàmens parcial i final.
1 . Unitats didàctiques
Unitat didàctica 1: Primers passos : introducció, tipus de dades bàsiques i estructures de control
Blocs de contingut |
Activitats d'aprenentatge | |||
---|---|---|---|---|
1: Introducció i conceptes generals |
Sessions de Teoria | Sessions de Seminaris | Sessions de Pràctiques | Autoavaluació |
T1, T2, T3 i T4 | S1 i S2 | P1 |
A1 |
Dedicació total Unitat Didàctica 1: 21 hores (12 a l'aula, 9 fora)
Detall de les activitats:
Sessió de teoria T1. 3 hores ( 2 a l'aula , 1 fora ): breu història de la programació i explicant els models de compilació i interpretació.
Sessions de teoria T2, T3 i T4. 9 hores (per cada sessió 2 a l'aula, 1 fora): explicació dels tipus de dades bàsiques i principals exemples d'utilització.
Explicació de la formació d'expressions i sentències bàsiques amb els principals exemples de la seva utilització. Estructures de control condicionals i iteratives i principals exemples de la seva utilització .
Sessions de seminaris S1 i S2. 8 hores (4 a l'aula, 4 fora): exercicis sobre formació d'expressions i estructures de control condicionals i iteratives.
Sessió de pràctiques P1. 3 hores (2 a l'aula , 1 fora): s'explicarà com instal·lar el compilador, i com editar, compilar i executar un programa. Es donarà als alumnes petits programes amb errors perquè s'habituïn als típics missatges d'error del compilador.
Autoavaluació A1. 1 hora (fora de l'aula): resolució d'exercicis d'autoavaluació sobre formació d'expressions i estructures de control.
Unitat didàctica 2: Funcions i disseny descendent
Blocs de contingut |
Activitats d'aprenentatge | |||
---|---|---|---|---|
4: La descomposició funcional i el disseny descendent |
Sessions de Teoria |
Sessions de Seminaris |
Sessions de Pràctiques |
Autoavaluació |
T5 | S3 |
A2 |
Dedicació total Unitat Didàctica 2: 8 hores (4 a l'aula, 4 fora)
Detall de les activitats :
Sessió de teoria T5. 3 hores (2 a l'aula , 1 fora): explicació de les bases del disseny descendent així com la definició de funcions i el mecanisme de trucada i pas de paràmetres per valor , amb exemples d'utilització .
Sessió de seminaris S3. 4 hores (2 a l'aula , 2 fora): exercicis sobre disseny descendent i pas de paràmetres per valor.
Autoavaluació A2. 1 hora (fora de l'aula): Resolució d'exercicis d'autoavaluació sobre funcions i pas de paràmetres per valor.
Unitat didàctica 3: Tipus de dades compostos estàtics i declaració de tipus
Blocs de contingut |
Activitats d'aprenentatge | |||
---|---|---|---|---|
5: Tipus de dades compostos Autoavaluació estàtics |
Sessions de Teoria | Sessions de Seminaris | Sessions de Pràctiques |
Autoavaluació |
T6 i T7 | S4 | P2 i P3 | A3 |
Dedicació total Unitat Didàctica 3: 29 hores (10 a l'aula, 19 fora)
Detall de les activitats:
Sessions de teoria T6 i T7. 6 hores (per cada sessió 2 a l'aula, 1 fora ): explicació dels tipus de dades compostos (arrays , cadenes i estructures) amb exemples d'utilització. Explicació de la definició de tipus de dades pròpies per part del programador, amb exemples d'utilització.
Sessió de seminaris S4. 4 hores (2 a l'aula, 2 fora): exercicis sobre tipus de dada compostos.
Sessions de pràctiques P2 i P3 (primera pràctica avaluable). 18 hores (per cada sessió, 2 a l'aula, 7 fora): l'estudiant ha de resoldre (programant en C) uns problemes mitjans, utilitzant arrays, cadenes i estructures, i en alguns casos definint els seus propis tipus. Inclou la confecció d'una memòria explicativa del treball.
Autoavaluació A3. 1 hora (fora de l'aula): Resolució d'exercicis d'autoavaluació sobre tipus de dades compostos.
Unitat didàctica 4: Punters i pas de paràmetres per referència
Blocs de contingut |
Activitats d'aprenentatge | |||
---|---|---|---|---|
7: Els punters i la gestióndinámica de memòria |
Sessions de Teoria | Sessions de Seminaris | Sessions de Pràctiques | Autoavaluació |
T8 i T9 | S5 | P4 |
A4 |
Dedicació total Unitat Didàctica 4: 18 hores (8 a l'aula, 10 fora)
Detall de les activitats :
Sessions de teoria T8 i T9 . 8 hores (per cada sessió 2 a l'aula, 2 fora) : explicació del funcionament dels punters amb exemples de utilización.Explicación del pas de paràmetres per referència amb exemples d'utilització . Explicació de les regles de visibilitat .
Sessió de seminaris S5 . 4 hores (2 a l'aula , 2 fora): exercicis sobre punters i pas de paràmetres per referència .
Sessió de pràctiques P4 . 5 hores (2 a l'aula , 3 fora): l'estudiant ha de resoldre (programant en C) uns petits problemes , utilitzant punters i pas de paràmetres per referència .
Autoavaluació A4. 1 hora (fora de l'aula): Resolució d'exercicis d'autoavaluació sobre punters i pas de paràmetres per referència .
Unitat didàctica 5: Fitxers de text
Blocs de contingut |
Activitats d'aprenentatge | |||
---|---|---|---|---|
9: Fitxers de text |
Sessions de Teoria | Sessions de Seminaris | Sessions de Pràctiques | Autoavaluació |
T10 |
S6 |
A5 |
Dedicació total Unitat Didàctica 5: 8 hores (4 a l'aula, 4 fora)
Detall de les activitats :
Sessió de teoria T10 . 3 hores ( 2 a l'aula , 1 fora ) : explicació dels fitxers de text i exemples d'utilització .
Sessió de seminaris S6 . 4 hores ( 2 a l'aula , 2 fora) : Exercicis sobre fitxers de text .
Autoavaluació A5 . 1 hora ( fora de l'aula ) : Resolució d'exercicis d'autoavaluació sobre fitxers .
Unitat didàctica 6: Bones pràctiques i programació de llibreries
Blocs de contingut |
Activitats d'aprenentatge | |||
---|---|---|---|---|
|
Sessions de Teoria | Sessions de Seminaris | Sessions de Pràctiques | Autoavaluació |
T11 | P5, P6, P7 i P8 |
A6 |
Dedicació total Unitat Didàctica 6: 33 hores (12 a l'aula, 21 fora)
Detall de les activitats:
Sessió de teoria T11. 3 hores (2 a l'aula, 1 fora): Explicació de les tècniques d'anàlisi i depuració de codi. Explicació del procés de creació de llibreries i segmentació del codi en diversos fitxers. Repàs de les regles de visibilitat.
Sessió de pràctiques P5. 4 hores (2 a l'aula, 2 fora): es començarà a utilitzar un entorn de desenvolupament integrat i s'explicarà com debugar un programa utilitzant l'entorn de desenvolupament. Els estudiants debugarán diversos programes.
Sessió de pràctiques P6. 4 hores (2 a l'aula, 2 fora): s'explicarà com crear un programa compost de diversos mòduls (o fitxers) utilitzant un entorn de desenvolupament integrat. Els estudiants crearan un programa dividit en diversos mòduls.
Sessions de pràctiques P7 i P8 (segona pràctica avaluable ). 18 hores (per cada sessió, 2 a l'aula, 7 fora): l'estudiant ha de resoldre (programant en C) un problema de mida considerable que integri punters, pas de paràmetres per referència, fitxers de text i segmentació del codi en diversos fitxers. La solució ha de programar seguint les recomanacions de bones pràctiques. Inclou la confecció d'una memòria explicativa del treball.
Autoavaluació A6. 1 hora (fora de l'aula): Resolució d'exercicis d'autoavaluació sobre estil, bones pràctiques, i segmentació del codi en mòduls o fitxers.
Unitat didàctica 7: Recerca, ordenació i recursivitat
Blocs de contingut |
Activitats d'aprenentatge | |||
---|---|---|---|---|
12: Algorismes de cerca i ordenació |
Sessions de Teoria | Sessions de Seminaris | Sessions de Pràctiques | Autoavaluació |
T12, T13, T14 i T15 | S7 i S8 |
A7 |
Dedicació total Unitat Didàctica 7: 24 hores 12 a l'aula, 12 fora)
Detall de les activitats:
Sessió de teoria T12. 3 hores (2 a l'aula, 1 fora): explicació dels algorismes de cerca lineal i binària , així com dels algoritmes bàsics d'ordenació (bombolla, inserció i selecció).
Sessions de teoria T13 , T14 i T15. 12 hores (T13 2 a l'aula, 2 fora; T14 2 a l'aula, 3 fora; T15 2 a l'aula i 1 fora): explicació del concepte de recursivitat. Explicació de les bases dels algorismes recursius i els seus avantatges i inconvenients. Explicació dels diferents tipus de recursivitat. Explicació de la transformació d'algorismes recursius a algorismes iteratius. Discussió de diversos exemples concrets d'algorismes recursius (incloent els d'ordenació avançada).
Sessió de seminaris S7. 4 hores (2 a l'aula, 2 fora): Exercicis sobre algorismes de cerca, algorismes d'ordenació i algorismes recursius.
Sessió de seminaris S8. 4 hores (2 a l'aula, 2 fora): Exercicis sobre algorismes recursius.
Autoavaluació A7. 1 hora (fora de l'aula): Resolució d'exercicis d'autoavaluació sobre algorismes de cerca, algorismes d'ordenació i recursivitat.
Unitat didàctica 8: Gestió avançada de memòria
Blocs de contingut |
Activitats d'aprenentatge | |||
---|---|---|---|---|
14: Gestió avançada de memòria |
Sessions de Teoria | Sessions de Seminaris | Sessions de Pràctiques | Autoavaluació |
T16, T17 i T18 |
P9 i P10 | A8 |
Dedicació total Unitat Didàctica 8: 29 hores (10 a l'aula, 19 fora)
Detall de les activitats:
Sessions de teoria T16 i T17 . 7 hores (T16 2 a l'aula, 2 fora; T17 2 a l'aula, 1 fora): explicació dels mecanismes i tècniques per a la gestió avançada de memòria (punters a punters, arrays de punters, punters a funcions, redimensionament de memòria). Discussió d'exemples concrets que il·lustren la gestió avançada de memòria.
Sessió de teoria T18. 3 hores (2 a l'aula, 1 fora): repàs general i resolució de dubtes.
Sessions de pràctiques P9 i P10 (tercera pràctica avaluable). 18 hores (per cada sessió, 2 a l'aula, 7 fora): l'estudiant ha de resoldre (programant en C) un problema de mida considerable que integri tots els conceptes i tècniques de l'assignatura (incloent algorismes recursius i gestió avançada de memòria). La solució ha de programar seguint les recomanacions de bones pràctiques. Inclou la confecció d'una memòria explicativa del treball.
Autoavaluació A8. 1 hora (fora de l'aula): Resolució d'exercicis d'autoavaluació sobre gestió avançada de memòria .
Nota: a més de les hores de treball previstes i indicades en la descripció de les unitats didàctiques , es reserven 10 hores (8.5 +1.5) per preparar i realitzar la prova escrita parcial, i 20 (17.5 +2.5) hores per a la prova escrita final.
Dedicació total de l'assignatura: 200 hores (76 a l'aula, 124 fora)
Programació d'activitats
Hores de dedicació dels alumnes
|
Activitats a l'aula |
Hores fora de l'aula | |||
---|---|---|---|---|---|
|
Activitat |
Grup gran |
Grup mitjà |
Grup petit |
|
Unitat didàctica 1 |
T1 |
2 |
1 |
||
T2 |
2 |
1 |
|||
P1 |
2 |
1 |
|||
T3 |
2 |
1 |
|||
S1 |
2 |
1 |
|||
A1 |
1 |
||||
Unitat didàctica 2 |
T4 |
2 |
|||
S2 |
2 |
||||
A2 |
1 |
||||
Unitat didàctica 3 | T5 | 2 | 1 | ||
S3 | 2 | 2 | |||
T6 | 2 | 1 | |||
P2 | 2 | 7 | |||
P3 | 2 | 7 | |||
A3 | 1 | ||||
Unitat didàctica 4 | T7 | 2 | 2 | ||
S4 | 2 | 2 | |||
T8 | 2 | 2 | |||
P4 | 2 | 3 | |||
A4 |
|
|
|
1 |
|
Unitat didàctica 5 | T9 | 2 | 2 | ||
S5 | 2 | 2 | |||
A5 | 1 | ||||
Unitat didàctica 6 | T10 | 2 | 1 | ||
P5 | 2 | 2 | |||
T11 | 2 | 1 | |||
P6 | 2 | 2 | |||
P7 | 2 | 7 | |||
P8 | 2 | 7 | |||
A6 | 1 | ||||
Unitat didàctica 7 | T12 | 2 | 1 | ||
T13 | 2 | 2 | |||
T14 | 2 | 3 | |||
S6 | 2 | 2 | |||
T15 | 2 | 1 | |||
S7 | 2 | 1 | |||
A7 | 1 | ||||
Unitat didàctica 8 | T16 | 2 | 2 | ||
T17 | 2 | 1 | |||
S8 | 2 | 2 | |||
P9 | 2 | 7 |
Fonts d'informació per a l'aprenentatge . Bibliografia bàsica
• Toni Navarrete Terrasa. Introducció a la programació amb llenguatge C.
• Jesús Bisbal Riera . Manual d' algorísmica : Recursivitat , complexitat i disseny d' algorismes . Editorial UOC . ISBN : 978-84-9788-570-6
• Brian W. Kernighan, Dennis M. Ritchie: El llenguatge de programació C.Segunda edició. Prentice - Hall. ISBN : 968-880-205-0
Fonts d'informació per a l'aprenentatge . Bibliografia complementària
Altres llibres sobre C:
• Herbert Schildt: C Manual de referència. Mc Graw Hill . 84-481-0335-1
• James L. Antonakos , Kenneth C. Mansfield Jr : Programació estructurada en C. Prentice - Hall. ISBN: 84-89660-23-9
• Marc A. Peña, José M. Cela: Introducció a la programació en C.Edicions UPF. ISBN : 84-8301-429-7
• Luis Joyanes, Ignacio Zahonero: Programació en C. Mc Graw Hill. ISBN : 84-481-3013-8
• Félix García, Jesús Carretero, Javier Fernández, Alejandro Calderón: El llenguatge de programació C. Diseñoo i implementació de programas.Prentice - Hall . ISBN: 84-205-3178-2
• P.J. Plauger, Jim Brodie: C Estàndard. Guia de referència ràpida per a programadors. Anaya. ISBN: 84-7614-264-1
Altres llibres "clàssics" sobre algorísmia (més avançats):
• Alfred V. Aho, Jeffrey D. Ullman, John I. Hopcroft: Estructures de dades i algorismes. Addison Wesley, 1988. ISBN : 968-444-345-5
• Niklaus Wirth: Algorismes + estructures de dades= programes. Edicions delCastillo, 1980. ISBN: 84-219-0172-9
• Niklaus Wirth: Algorísmia i estructures de dades. Prentice Hall, 1987. ISBN: 968-880-113-5
• D.E. Knuth: L'art de programar ordinadors (3 Volums) . Editoria Reverté.ISBN : 84-291-2661-9
• Terrence W. Pratt, Marvin V. Zelkowitz : Llenguatges de programació. Disseny i implementació. Prentice Hall , 3a edicte. , 1997. ISBN: 970-17-0046-5
• G. Brassard, P. Bratley: Fonaments d'algorísmia . Prentice - Hall. ISBN : 84-89660 -00- X
Recursos didàctics. Material docent de l'assignatura
A l'aula Moodle de l'assignatura ( a l'Aula Global ) es penjarà el material docent de l'assignatura. En particular es penjaran: o Apunts o Enunciats per a les sessions de seminari o Enunciats per a les sessions de pràctiques o Exercicis d'autoavaluació