Computació i Programació

Anuncio
ENGINYERIA AERONÀUTICA
COMPUTACIÓ I
PROGRAMACIÓ
Guia de l’assignatura
ENGINYERIA AERONÀUTICA
30008 Computació i Programació. Guia de l’assignatura
Aprovada en C.A.A de data 8/06/05
Modificada en CAA de data 27/06/08
1
Crèdits: 6 ( 3 teoria + 3 pràctiques)
Crèdits ECTS: 4,8
Tipus Obligatòria
Coordinador: Fatos Xhafa (fatos@lsi.upc.edu)
Altres Professors: Marta Gatius i Vila (gatius@lsi.upc.es), Josefina López (jlopez@lsi.upc.edu),
Alfons Valverde (alfons@lsi.upc.edu), Oscar Romero (oromero@lsi.upc.edu), Ivan Bruque
(ibruque@lsi.upc.edu), Àngela Martín (amartin@lsi.upc.edu)
Departament: Llenguatges i Sistemes Informàtics
Presentació
Coneixements previs
Coneixements bàsics de matemàtiques corresponents al nivell exigit en les proves d'accés a la
universitat.
Relació amb altres assignatures
En aquesta assignatura es presenten mètodes bàsics de disseny d'algorismes i fonaments de la
programació necessaris per a moltes altres assignatures del Pla d'Estudis, com són: Automàtica i
control, Càlcul d'estructures: mètode dels elements finits, Projecte final de carrera, Sistemes elèctrics i
electrònics, Sistemes de navegació i Tecnologia aeroespacial.
Objectius generals
L'objectiu d'aquesta assignatura és presentar una introducció al disseny d'algorismes i a la
programació. En la part teòrica de l'assignatura s'introdueix un llenguatge algorítmic a través del com
es tracta de desenvolupar la capacitat d'entendre i construir algorismes. Aquest llenguatge algorítmic
s'utilitza també per a presentar conceptes bàsics de programació, com tipus de dades, expressions,
instruccions, així com tècniques bàsiques d'abstracció de procediments i dades. Tots aquests
conceptes s'il·lustren a través d'exemples d'algorismes senzills de recerca, recorregut, ordenació,
filtrat i càlcul numèric.
En la part pràctica de l'assignatura s'apliquen els continguts de programació estudiats en la part de
teoria a exercicis concrets de programació en el llenguatge C. S'introdueixen els fonaments de la
programació en aquest llenguatge, i es presenten algunes tècniques importants d'abstracció que
faciliten la comprensió, utilització i construcció de programes de mitjana envergadura.
En aquesta assignatura és considera important que els estudiants apliquin els conceptes de
reutilització i minimització del consum de recursos en els seus projectes informàtics, contribuint
d’aquesta manera al desenvolupament sostenible
1
ENGINYERIA AERONÀUTICA
30008 Computació i Programació. Guia de l’assignatura
Aprovada en C.A.A de data 8/06/05
Modificada en CAA de data 27/06/08
2
Temari
Mòdul 1. Conceptes Bàsics
Tema 1. Introducció
(1 hora)
Tema 2. Tipus de dades bàsiques, variables, constants i expressions
(4 hores)
Tema 3. Instruccions bàsiques: assignació, entrada, sortida i control
(7 hores)
Mòdul 2. Abstracció de Procediments
Tema 1. Accions i funcions: definició, paràmetres i cridada
(8 hores)
Tema 2. Seqüències: recerca i recorregut
(8 hores)
Tema 3. Disseny descendent
(8 hores)
Mòdul 3. Abstracció de Dades
Tema 1. Vectors i matrius: definició i operacions associades
(8 hores)
Tema 2. Algorismes d'ordenació
(8 hores)
Tema 3. Estructures: definició i exemples
(8 hores)
Objectius específics dels mòduls
„
Mòdul 1. Conceptes Bàsics
L'objectiu d'aquest mòdul és presentar els conceptes bàsics de la programació. En primer lloc es
descriuen les eines bàsiques que ofereixen els llenguatges de programació per a la representació de
la informació: els tipus de dades bàsiques, i els conceptes de variable, constant i expressió. A
continuació s'introdueixen les instruccions bàsiques que ofereixen els llenguatges de programació per
a obtenir, manipular i presentar a l'usuari aquesta informació: instruccions d'entrada i sortida,
instrucció d'assignació i instruccions de control. Així mateix es pretén que l'alumne sigui capaç
d'utilitzar tots aquests conceptes construint algorismes i programes senzills en el llenguatge de
programació C
„
Mòdul 2. Abstracció de Procediments
L'objectiu d'aquest mòdul és la introducció de tècniques bàsiques d'abstracció de procediments. El
coneixement de tècniques d'abstracció és fonamental en la programació perquè permet controlar la
complexitat dels programes estructurant-los en mòduls relativament senzills que es relacionen entre
si. En aquest mòdul es presenten els conceptes d'acció i funció, que permeten referir-se mitjançant un
només nom a seqüències d'instruccions. Es defineix el concepte de paràmetre i la seva tipologia, i
s'expliquen els mecanismes de cridada i pas de paràmetres. Es descriu així mateix el concepte de
seqüència, de gran utilitat pràctica en el processament de dades, i les operacions bàsiques
associades al processament de seqüències: recerca i recorregut. Finalment s'introdueix la tècnica de
disseny i descomposició de programes coneguda com disseny descendent i s'il·lustra la seva
utilització amb abundants exemples d'algorismes i programes en el llenguatge de programació C
2
ENGINYERIA AERONÀUTICA
30008 Computació i Programació. Guia de l’assignatura
Aprovada en C.A.A de data 8/06/05
Modificada en CAA de data 27/06/08
„
3
Mòdul 3. Abstracció de Dades
L'objectiu d'aquest mòdul és la presentació i utilització de tècniques bàsiques d'abstracció de dades
de la programació. Això es realitza mitjançant la introducció del concepte d'estructura de dades i
l'estudi de dos tipus fonamentals d'estructures de dades: matrius i estructures. Les matrius es
caracteritzen per agrupar conjunts de dades homogènies i perquè l'accés als seus components es
realitza indicant la seva posició. La seva presentació es realitza començant amb la definició de les
matrius uni-dimensionals (e.i., vectors) i de les principals operacions d'accés i modificació associades
a aquest tipus d'estructura de dades, i continuant amb la definició de matrius multi-dimensionals.
A
continuació es descriuen diversos algorismes d'ordenació, i s'il·lustra la seva aplicació amb abundants
exemples d'algorismes i programes C. La presentació d'aquests algorismes és important no només
per la seva utilitat pràctica, sinó també perquè ofereixen a l'alumne l'ocasió d'estudiar alguns
algorismes de mitjana complexitat al llarg del curs. Finalment s'introdueix el concepte d'estructura,
que es caracteritza per agrupar conjunts de dades heterogènies i perquè l'accés als seus components
es realitza indicant el nom de la component en lloc de la seva posició. Es descriuen els principals
operadors de definició, accés i modificació de les estructures, i es presenten exemples d'estructures
de dades que combinen matrius i estructures per a la representació d'informació de complexitat
creixent. La descripció d'aquests conceptes va acompanyada d'abundants exemples i exercicis de
disseny d'algorismes que realitzen càlculs amb matrius i estructures; i de construcció de programes C
que il·lustren la definició de matrius i estructures en aquest llenguatge de programació, i la utilització
dels seus respectius operadors d'accés i modificació.
Metodologia de treball
Sessions teoria, problemes
Les classes que es realitzaran en l'aula consistiran en classes de teoria pròpiament dites, on es
presentaran conceptes, eines i tècniques de programació, i en classes de problemes, on es
realitzaran exercicis de disseny d'algorismes que ajudin a comprendre i aplicar els conceptes i
tècniques de programació introduïts en les classes de teoria.
Pràctiques, laboratoris
Les classes de pràctiques, que es realitzaran en el laboratori, consistiran en la realització d'una sèrie
d'exercicis de programació per part dels alumnes. S'elaborarà un guió de pràctiques per a cada
sessió, en el qual haurà informació sobre la representació en el llenguatge C dels conceptes a
estudiar, exemples de programes C que utilitzin aquests conceptes i exercicis per a realitzar durant la
sessió de pràctiques. S'utilitzarà el compilador de C/C++ de distribució gratuïta Dev C++.
Organització en mòduls y temps de dedicació del estudiant
De forma orientativa s'ofereix un càlcul aproximat del temps de classe presencial i d'estudi
personalitzat per part de l'alumne que requereix aquesta assignatura. El temps reflectit en la columna
“Temps de lectura” comprèn el temps aproximat d'estudi que deu dedicar l'alumne tant a la lectura de
llibres i apunts recomanats, com a la realització d'exercicis pràctics i programes proposats en les
classes de laboratori.
Temps de
Classe
12 hores
24 hores
24 hores
60 hores
Mòdul
Mòdul 1: Conceptes bàsics
Mòdul 2: Abstracció de procediments
Mòdul 3: Abstacció de dades
Temps Total
3
Temps
d’estudi
12 hores
24 hores
24 hores
60 hores
Temps
Total
24 hores
48 hores
48 hores
120 hores
ENGINYERIA AERONÀUTICA
30008 Computació i Programació. Guia de l’assignatura
Aprovada en C.A.A de data 8/06/05
Modificada en CAA de data 27/06/08
4
Importància i dificultat dels mòduls
El mòdul 1, Conceptes bàsics, és clau per a la comprensió de l'assignatura, ja que la resta dels
mòduls pressuposen i requereixen el coneixement dels conceptes bàsics introduïts en aquest mòdul.
Es tracta d'un mòdul relativament senzill. Requereix la comprensió dels conceptes bàsics, i
fonamentalment la realització d'abundants exercicis de disseny d'algorismes i construcció de
programes.
El mòdul 2, Abstracció de procediments, és molt important per al seguiment de curs, ja que la major
part dels algorismes i programes que es presenten en el mòdul següent utilitzen accions i funcions. La
definició d'accions i funcions, i la seva correcta utilització (cridada) en els programes és fonamental
per al seguiment de l'assignatura. El concepte de seqüència i de les operacions utilitzades
fonamentalment per al procés de seqüències té importància pràctica i resulta útil per a comprendre
molts dels exemples i exercicis que es proposen més endavant. Aquest mòdul requereix una major
capacitat d'abstracció per part de l'alumne, que deu comprendre i utilitzar correctament els conceptes
d'acció i funció
El mòdul 3, Abstracció de dades, és molt important també perquè presenta conceptes necessaris per
al processament de grans volums de dades complexes. Els alumnes estan familiaritzats normalment
amb el concepte de matriu, de manera que en principi no presenta major dificultat. El concepte
d'estructura és senzill, però la seva novetat pot requerir un poc més d'estudi. La major dificultat
d'aquest mòdul consisteix en la combinació d'ambdós elements, que pot suposar l'establiment de
diversos nivells d'abstracció de dades. Els algorismes d'ordenació tenen gran importància teòrica i
pràctica en el camp de la programació. La seva comprensió pot requerir un estudi detingut per part de
l'alumne.
Materials
Bibliografia bàsica
[Ker 91] B.W. Kernighan y D.M. Ritchie, El lenguaje de programación C, Pearson Educación (1991).
[Prie 97] A. Prieto, A. Lloris y J.C. Torres, Introducción a la informática, McGraw Hill (1997).
[Pe 00] M.A. Peña y J.M. Cela, Introducción a la programación en C, Edicions UPC (2000).
[Van 92] J. Vancells y E. López, Programació: Introducció a l'algorísmica, Eumo Editorial (1992).
Bibliografia complementaria
[Abel 96] H. Abelson, G.J. Sussman y J. Sussman, Structure and interpretation of computer
programs (2nd edition), MIT Press (1996).
[Bal 93] J.L. Balcazar, Programación metódica, McGraw Hill (1993).
[Cas 93] J. Castro, F. Cucker, X. Messeguer, A. Rubio, L. Solano y B. Valles, Curso de
programación, McGraw Hill (1993).
[Fran 01] X. Franch, J. Marco, X. Molinero, J. Petit y F. Xhafa, Informática básica, Edicions UPC
(2001).
[Ga 01] M. Gatius, Complements d'informàtica. Recull de problemes, Unicopi (2001).
[Sie 02] A. Sierra y M. Alfonseca, Programación en C/C++, Anaya Multimedia (2002).
[Stro 98] B. Stroustrup, El lenguaje de programación C++ (tercera edición), Addison Wesley
(1998).
4
ENGINYERIA AERONÀUTICA
30008 Computació i Programació. Guia de l’assignatura
Aprovada en C.A.A de data 8/06/05
Modificada en CAA de data 27/06/08
5
Avaluació
Es realitzaran dos exàmens: un examen parcial i un examen final. Aquests exàmens tindran caràcter
teòric-pràctic, això és, contindran igual percentatge de preguntes de pràctiques que de teoria.
Els alumnes realitzaran també una sèrie d'exercicis pràctics de programació que es lliuraran i
avaluaran al llarg del curs.
L'avaluació de l'assignatura doncs compren tres parts:
Primera avaluació (Examen Parcial): 20% de la nota final.
Segona Avaluació (Examen Final): 50% de la nota final
Nota de Laboratori: La nota de laboratori es calcularà en base de:
• Nota de les sessions lliurades: Durant el curs es farà entrega de les sessions de laboratori
desenvolupades durant les sessions. En acabar una sessi_o de laboratori es far_a lliurament
dels programes demanats. Les sessions de laboratori seran avaluades pel professor. Les
sessions de laboratori avaluaran el 15% de la nota final (NSL nota sesssions laboratori).
Aquesta avaluació es fa en concepte de l'avaluació continuada.
• Projecte de programació: Al final del curs s'haurà de presentar un projecte de programació
que avalua el 15% de la nota final. El projecte consisteix a dissenyar i implementar un petit
projecte informàtic que es realitzar_a en grups de dues persones. La qualificació del projecte
es determinarà per la mitjana geométrica entre la nota del projecte lliurat (NP) i de la nota
d'una pregunta de l'examen final (NPE) que versarà sobre el projecte, és a dir la nota de
projecte laboratori (NPL) será avaluada:
NPL = NPE * NP
Nota Fina: La nota final, NF, es calcularà en base de la nota de l'examen parcial (NEP), la nota de
l'examen final (NEF), la nota de les sessions laboratori lliurades (NSL) i la nota de projecte de
laboratori (NPL) segons la fórmula:
Ng =0,2* Nep + 0,5* Nef + 0,15* Npl + 0,15* Npg
Ng = 0.5 Nef + 0.35 Nep + 0.15 Npg
Ng :nota evaluación global
Nef : nota examen final
Nep : nota examen parcial
Npl : nota de pràctiques de laboratori
Npg : nota de projecte de programació
5
Descargar