2004-2005

Enginyeria en Informàtica (3371)


Programació I (12406) 


Descripció i objectius

En aquesta assignatura es fa una introducció als conceptes bàsics de l'algorísmica i les estructures de dades, amb una important component pràctica, que es durà a terme amb el llenguatge de progamació C.

Objectiu

Que l'alumne comprengui els fonaments de l'algorísmica i les estructures de dades i aprengui a resoldre problemes bàsics. També ha de ser capaç d'implementar les solucions en el llenguatge de programació C i s'ha de familiaritzar amb un entorn de desenvolupament.

Temari

Tema 1: Introducció i conceptes generals

(1 hora teòrica)

Tema 2: Els tipus de dades bàsics

(1 hora teòrica)

Tema 3: Expressions, sentències i estructures de control

(4:00 hores teòriques) 

Tema 4: Tipus de dades composts estàtics: arrays, strings i structs

(4:30 hores teòriques) 

Tema 5: Punters

(1:30 hores teòriques) 

Tema 6: El disseny descendent i la programació estructurada

(6:00 hores teòriques) 

Tema 7: Declaracions de tipus

(1:30 hores teòriques) 

Tema 8: Introducció als tipus abstractes de dades

(6:00) 

Tema 9: Fitxers seqüencials

(4:30 hores teòriques) 

Pràctiques

Les primeres sessions de pràctiques es dediquen a petits exercicis sobre la base de les estructures de dades i de control. A mitjans del trimestre s'ha de lliurar una pràctica centrada en el recorregut de matrius. La pràctica final té apartats referits a tots els conceptes vists a teoria. El llenguatge de programació que s'utilitza és C. Es poden utilitzar dos compiladors: Visual C (només amb codi C estàndard) i gcc.

Mètode d'avaluació

L'assignatura consta de dues parts, pràctica i teoria, cada una comptant el 50% de la nota final, tot i que cal aprovar les dues parts per superar l'assignatura. A més, és obligatori haver aprovat la pràctica per poder ser avaluat en la part de teoria. La part teòrica s'avalua amb un examen, que pot també contenir preguntes relacionades amb la pràctica. La participació ens els exercicis que es plantegen a classe també pot fer pujar aquesta nota fins a 0,5 punts. Per altra banda, la part pràctica consta de diversos lliuraments al llarg del trimestre i una defensa final. Segons el rendiment a les sessions de pràctiques, els professors podran decidir que certs alumnes no hagin de passar per aquesta defensa. Per a aquells que no hagin aprovat la part pràctica a la convocatòria del desembre, es proposarà un nou enunciat per al setembre. En cas d'aprovar la pràctica però no la teoria, la nota de pràctica es guarda fins al setembre. No en cas contrari, ja que la teoria no seria avaluada amb la pràctica suspesa.

Bibliografia

Bibliografia bàsica:
BRIAN W. KERNIGHAN, DENNIS M. RITCHIE: El lenguaje de programación C. Segunda edición. Prentice-Hall. ISBN: 968-880-205-0

Altres llibres sobre C:
HERBERT SCHILDT: C Manual de referencia. Mc Graw Hill. 84-481-0335-1
JAMES L. ANTONAKOS, KENNETH C. MANSFIELD Jr.: Programación estructurada en C. Prentice-Hall. ISBN: 84-89660-23-9
LUIS JOYANES, IGNACIO ZAHONERO: Programación en C. Mc Graw Hill. ISBN: 84-481-3013-8
FÉLIX GARCÍA, JESÚS CARRETERO, JAVIER FERNÁNDEZ, ALEJANDOR CALDERÓN: El lenguaje de programación C. Diseño e implementación de programas. Prentice-Hall. ISBN: 84-205-3178-2
P.J. PLAUGER, JIM BRODIE: C Estándar. Guía de referencia rápida para programadores. Anaya. ISBN: 84-7614-264-1

Altres clàssics sobre algorísmica (més avançats):
ALFRED V. AHO, JEFFREY D. ULLMAN, JOHN E. HOPCROFT: Estructuras de datos y algoritmos. Addison Wesley, 1988. ISBN: 968-444-345-5
NIKKLAUS WIRTH: Algoritmos + estructuras de datos = programas. Ediciones del Castillo, 1980. ISBN: 84-219-0172-9
NIKKLAUS WIRTH: Algoritmia y estructuras de datos. Prentice Hall, 1987. ISBN: 968-880-113-5
D.E. KNUTH: El arte de programar ordenadores (3 volums). Editoria Reverté. ISBN: 84-291-2661-9
TERRENCE W. PRATT, MARVIN V. ZELKOWITZ: Lenguajes de programación. Diseño e implementación. Prentice Hall, 3ª edic., 1997. ISBN: 970-17-0046-5
G. BRASSARD, P. BRATLEY: Fundamentos de algoritmia. Prentice-Hall. ISBN: 84-89660-00-X

Darrera actualització 24-11-2010
© Universitat Pompeu Fabra, Barcelona