F.M.E.

Programació  (PROG)

Diplomatura d'Estadística

2on quadrimestre, Curs 2008/2009



Professor Responsable:
 

KEMLG

Miquel Sànchez i Marrè
Knowledge Engineering & Machine Learning Group
Secció d'Intel·ligència Artificial
Dept. de Llenguatges i Sistemes Informàtics
Universitat Politècnica de Catalunya
Campus Nord-Edifici Omega, 1er pis, despatx 134
miquel@lsi.upc.edu

Full Informatiu:
 
Aquí podeu trobar el full informatiu de l'assignatura

Professorat:

Professor  Despatx  E-mail  Consultes 
Miquel Sànchez i Marrè Edifici Omega Despatx 134  miquel@lsi.upc.edu Dimarts, de 12 a 14



Dijous, de 12 a 14



Altres hores a convenir
via correu electrònic

Horari:

Dia Hora Aula Grup Professor
Dilluns 9:00-11:00 PC3
L PROG J. Vázquez
Dimecres 9:00-10:30 101
T/P PROG M. Sànchez i Marrè
Divendres
9:00-10:30
101
T/P PROG
M. Sànchez i Marrè

Temari:
 
1. L'entorn de desenvolupament de programes
Esquema general.
Formalització del problema. Especificació de l'algorisme.
Disseny algorítmic. Codificació o implementació.
El procés de compilació o traducció. El procés de muntatge, l'ús de llibreries.
El procés d'execució. Documentació i manteniment
 
2. Disseny descendent i disseny orientat a classes i objectes
Les tuples
Disseny descendent amb tipus estructurats
Entorns i visibilitat
Classes i objectes
Disseny orientat a classes i objectes
 
3. Introducció als fitxers
Concepte i motivació. Tipus d'accés.
Fitxers seqüencials per posició: operacions elementals, algorismes bàsics.
Fitxers d'accés directe per posició. Fitxers de text.
 
4. Introducció a l'anàlisi de l'eficiència dels algorismes
Eficiència algorísmica: concepte.
Notació asimptòtica i graus de complexitat.
Regles pràctiques de càlcul.
 
5. Disseny recursiu
Introducció i conceptes bàsics
Exemples i metodologia
Disseny d'algorismes recursius
Avantages i inconvenients de la recursivitat
 
6. Fortran, un llenguatge imperatiu
Conceptes fonamentals. Estructura general d'un programa
Estructures de dades simples. Altres tipus.
Traducció de les estructures algorísmiques
Subprogrames. Els fitxers.
Fortran 90/95

Canvis de dia de la setmana:
 
No n'hi ha cap.


Pràctiques:
Al llarg del curs es realitzaran 2 treballs pràctics en equip consistents en el disseny i la implementació de programes informàtics en els llenguatges de programació utilitzats a classe. El seu propòsit és l'aplicació pràctica dels coneixements i les tècniques vistes a classe, així com fomentar el treball en equip per tal d'aconseguir el grau previst d'aprenentatge de la matèria:
 
1. Pràctica sobre tipus de dades estructurats, accés directe i ordenació. En Java.
2. Pràctica sobre aspectes numèrics. En Fortran
Els grups seran de 3 persones exactament.

Laboratori:
 
Les classes de Laboratori comencen la 1ª setmana.

Calendari i contingut de les classes de laboratori:

 
DIA CLASSE CONTINGUT
Dl 9/2 LAB 1 Resolució de l'examen de Fonaments d'Informàtica
Dl 16/2 LAB 2 Accions, funcions, i pas de paràmetres a Java (1)
Exercicis d'aplicació del disseny descendent a Java
Dl 23/2 LAB 3 Accions, funcions, i pas de paràmetres a Java (2)
Exercicis d'aplicació del disseny descendent a Java
Dl 2/3 LAB 4 Debugger de Java a l'entorn de Java.
Implementació de vectors, taules, i cadenes a Java (1)
Dl 9/3 LAB 5 Implementació de vectors, taules, i cadenes a Java (2).
Presentació de la PRAC1
Dl 16/3 LAB 6 Implementació de tuples, classes i mètodes a Java (1)
Supervisió de la PRAC1
Dl 23/3 LAB 7 No hi ha classe. Parcials FME
Dl 30/3 LAB 8 Implementació de tuples, classes i mètodes a Java (2)
Supervisió de la PRAC1
Dl 20/4 LAB 9 Llenguatge de programació Fortran
Supervisió de la PRAC1
Dl 27/4 LAB 10 Llenguatge de programació Fortran
Recollida de la PRAC1 
Dl 4/5 LAB 11 Entorn Visual Fortran 6.0
Presentació de la PRAC2
Dl 11/5 LAB 12 Realització de la PRAC2
Dl 18/5 LAB 13 Recollida de la PRAC2

Examen:

C. Ordinària: divendres dia 27/5/2008 a les 9h
C. Extraordinària: entre el 29 de juny i el 7 de juliol de 2009

Tots els problemes de la col·lecció són interessants i útils per a consolidar els coneixements vistos a classe. Però de cara a l'examen, els següents problemes poden considerar-se com un subconjunt força representatiu:

2.2.13, 2.2.18, 3.23, 3.29, 3.42

Avaluació:
NPracs = Nota Prac1 * 0.6 + Nota Prac2 * 0.4

C. Ordinària

Nota = NPracs * 0.4 + Nota Examen * 0.55 + Nota Activitats * 0.05, si la N. Examen >= 4
Nota = NPracs * 0.2 + Nota Examen * 0.75 + Nota Activitats * 0.05, si la N. Examen < 4

C. Extraordinària
Nota = (NPracs * 0.4) + (Nota Examen * 0.6), si la N. Examen >= 4
Nota = (NPracs * 0.2) + (Nota Examen * 0.8), si la N. Examen < 4

Bibliografia:
 
Referències Bàsiques
 
Brassard G, Bratley P. Fundamentos de algoritmia. Prentice-Hall, 1997.
Chapman, S.J.: Fortran 90/95 for scientists and engineers. McGraw-Hill, 1997.
Koffman, E.B.; Wolz, U.: Problem solving with Java. Addison-Wesley, 1998.
Slack, J.M.: Programming and problem solving with Java. Brooks/Cole Pub. Co., 2000.
Smith P., Barnes G. Files and databases: an introduction. Addison-Wesley, 1987.
 
Referències Complementàries
 
Aho A., Hopcroft J., Ullman J. Data structures and algorithms. Addison-Wesley, 1983. (Vers. cast. Addison-Wesley Iberoamericana, 1986).
Campione, M.; Walrath, K.: The Java tutorial, second edition: object-oriented programming for the internet. Addison-Wesley, 1998.
Ellis, T.M.R. et alt.: Fortran 90 programming. Addison-Wesley, 1994.
Peña, R.: Diseño de programas: formalismo y abstracción. Prentice-Hall, 1993.
Scholl, P.C.: Algorítmica y representación de datos 2: recursividad y árboles. Ed. Masson, 1986.
Martin J. Data types and data structures. Prentice-Hall, 1986.
Salzberg B. File structures: an analytic approach. Prentice-Hall, 1988.
 
Altres Referències
 
Sànchez M. Programació: Problemes. Facultat de Matemàtiques i Estadística (UPC), 2009.
Sànchez M., Petit J. Programació: Apunts de Fortran. Facultat de Matemàtiques i Estadística (UPC), 2009.
Sànchez M. Programació: Exercicis resolts. Facultat de Matemàtiques i Estadística (UPC), 2009.

Material docent:

 
Programa - Temari detallat de l'assignatura
 
Apunts

        Transparències de Java

        Apunts de Fortran

                  Transparències de fitxers
 
Problemes

        Col·lecció de problemes

Exercicis resolts (al Centre de Publicacions)
 
Material divers

        Visualització gràfica d'algorismes de cerca i ordenació:
            http://www.cs.oswego.edu/~mohammad/classes/csc241/samples/sort/Sort2-E.html
            http://home.westman.wave.ca/~rhenry/sort/
            http://www.cosc.canterbury.ac.nz/mukundan/dsal/appldsal.html (alg. cerca i ordenació)
            http://cg.scs.carleton.ca/~morin/misc/sortalg/ (compara 3 execucions)
           
http://www.cs.ubc.ca/~harrison/Java/sorting-demo.html 

        Apunts de Fortran. J. Petit.

Aprenda Java como si estuviera en primero. J. García de Jalón de la Fuente et al., Universidad de Navarra, 2000.
Tutorial de Java. The Java Tutorial. Second edition. M. Campione & K. Walrath. Sun Microsystems-Addision-Wesley. May, 2000.
Tutorial de Java 1.2. Sun Microsystems.



Cronologia i informació sobre les Activitats

Activitat 1: disseny algorísmic. Límit del lliurament de la documentació: 6/03/2009


Cronologia de les Pràctiques:

 
Enunciat de la 1a pràctica
            Límit del lliurament definitiu de la documentació i codi font de la 1a pràctica:  27/4/2009
Enunciat de la 2a pràctica
            Límit del lliurament definitiu de la documentació i codi font de la 2a pràctica:  27/5/2009