Logo UAB
2019/2020

Programació avançada

Codi: 100126 Crèdits: 6
Titulació Tipus Curs Semestre
2500149 Matemàtiques OT 4 0

Professor/a de contacte

Nom:
Vicente Soler Ruíz
Correu electrònic:
Vicenc.Soler@uab.cat

Utilització d'idiomes a l'assignatura

Llengua vehicular majoritària:
català (cat)
Grup íntegre en anglès:
No
Grup íntegre en català:
Grup íntegre en espanyol:
No

Prerequisits

Convé haver après els coneixements en programació bàsica en C en els primers cursos del Grau o en altres assignatures, encara que no és imprescindible.

Objectius

L'assignatura té dues parts ben diferenciades. Un primer objectiu és aconseguir un bon domini de programació en C, de manera que els alumnes siguin capaços d'estructurar una aplicació i de programar un algorisme complexe. Un segon objectiu és aconseguir una formació en programació orientada a objectes (amb Java), creació de llibreries i que serveixi de base per a l'aprenentatge de qualsevol llenguatge orientat a objectes.
 
Les pràctiques es basen en fer dos jocs: un en C i l'altre en Java.
El desenvolupament de jocs com a base de les pràctiques de l'assignatura proporciona la obligatorietat de fer servir molts aspectes diferents dels llenguatges de programació i fa que les pràctiques siguin més atractives per a l'alumne. Tot això fa de motivant per a què l'alumne estigui més interessat pel desenvolupament de l'assignatura.

Competències

  • Demostrar de forma activa una elevada preocupació per la qualitat en el moment d'argumentar o exposar les conclusions dels seus treballs
  • Desenvolupar un pensament i un raonament crític i saber comunicar-ho de manera efectiva, tant en les llengües pròpies com en una tercera llengua
  • Distingir, davant d'un problema o situació, el que és substancial del qual és purament ocasional o circumstancial.
  • Generar propostes innovadores i competitives en la recerca i en l'activitat professional.
  • Que els estudiants hagin demostrat posseir i comprendre coneixements en un àrea d'estudi que parteix de la base de l'educació secundària general, i se sol trobar a un nivell que, si bé es recolza en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda del seu camp d'estudi.
  • Que els estudiants hagin desenvolupat les habilitats d'aprenentatge necessàries per a emprendre estudis posteriors amb un alt grau d'autonomia.
  • Que els estudiants sàpiguen aplicar els seus coneixements al seu treball o vocació d'una forma professional i posseeixin les competències que solen demostrar-se per mitjà de l'elaboració i defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi.
  • Reconèixer la presència de les Matemàtiques en altres disciplines
  • Utilitzar eficaçment bibliografia i recursos electrònics per obtenir informació

Resultats d'aprenentatge

  1. Conèixer l'arquitectura i les especificacions de funcionament dels productes programari, coneixent la naturalesa i les possibilitats que els diferents llenguatges de codificació li proporcionen.
  2. Conèixer les diferents activitats implicades en les fases del cicle de vida de productes programari i les seves aplicacions.
  3. Demostrar de forma activa una elevada preocupació per la qualitat en el moment d'argumentar o exposar les conclusions dels seus treballs
  4. Desenvolupar un pensament i un raonament crític i saber comunicar-ho de manera efectiva, tant en les llengües pròpies com en una tercera llengua
  5. Dominar les metodologies i eines de desenvolupament dels sistemes d'informació, dels sistemes de gestió de bases de dades i de les eines per a l'automatització del desenvolupament dels productes programari.
  6. Generar propostes innovadores i competitives en la recerca i en l'activitat professional.
  7. Poder realitzar la implementació total o parcial del producte programari i poder dissenyar els mètodes de verificació i validació.
  8. Que els estudiants hagin demostrat posseir i comprendre coneixements en un àrea d'estudi que parteix de la base de l'educació secundària general, i se sol trobar a un nivell que, si bé es recolza en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda del seu camp d'estudi.
  9. Que els estudiants hagin desenvolupat les habilitats d'aprenentatge necessàries per a emprendre estudis posteriors amb un alt grau d'autonomia.
  10. Que els estudiants sàpiguen aplicar els seus coneixements al seu treball o vocació d'una forma professional i posseeixin les competències que solen demostrar-se per mitjà de l'elaboració i defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi.
  11. Utilitzar eficaçment bibliografia i recursos electrònics per obtenir informació

Continguts

Primera part.

1. Recordatori de programació  estructurada i modular aplicada al C.
  1.1. Recordatori bàsic
     

1.1.1. Estructures i tipus de dades

1.1.2. Estructures de seqüència, control i iteració

1.1.3. Procedimiments i funcions

  1.2. Estructures dinàmiques
     

1.2.1 Organització de punters i adreces de memòria

1.2.2. Estructures bàsiques: piles, llistes i cues.

1.2.3. Arbres

1.2.4. Matrius dinàmiques

2. Recursivitat.
 

2.1. Fonaments de la recursivitat

2.2. Algorismes de cerca de solucions mitjançant arbres:

     

2.2.1. Amplitud prioritària i profunditat prioritària.

2.2.2. Backtraking.

 

Segona part

3.Programació orientada a objectes
   

3.1. Conceptes generals y característiques.

3.2. Classes i objectes

3.3. Anàlisi i disseny orientat a objectes.

4. Java
   

4.1. Característiques del llenguatge.

4.2 Classes, bucles, funcions i estructures del llenguatge

 

 

 

Metodologia

Classes  teòriques, de problemes i pràctiques:

Es presentaran els conceptes de l’assignatura, una part dels quals representaran un repàs per a alguns estudiants, encara que el punt de vista serà diferent. Es farà èmfasi en la interpretació dels resultats i en la relació entre aquests conceptes i les seves aplicacions. Es presentaran exemples que permetin als alumnes abordar de forma autònoma la resolució de problemes.

Es discutirà a la pissarra la resolució dels problemes proposats, els enunciats dels quals els estudiants tindran amb antelació.

La base de l’assignatura serà absolutament pràctica. Això implica que les classes es fan totalment en ordinador. Els conceptes teòrics seran explicats en cada sessió i seran complementats amb exercicis proposats pel professor que hauran de programar directament a l’ordinador, amb la supervisió del professor.

 

Tutories:

El professor supervisarà i avaluarà el treball dels estudiants. Aquests plantejaran els dubtes que els hagin sorgit en la resolució dels exercicis plantejats. 

En la primera sessió de tutoria el professor recollirà informació sobre la formació de cada estudiant i l'assessorà sobre com corregir possibles mancances. En la resta de sessions de tutoria es resoldran dubtes i es discutirà la resolució dels  problemes.

 

Activitats autònomes:

Els exercicis i pràctiques hauran de ser resolts de manera individual. No té cap mena de sentit, en aquesta assignatura, el formar grups de pràctiques de més d’un alumne per a resoldre les pràctiques.

Activitats formatives

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Classes teòriques, de problemes i pràctiques 45 1,8 7
Tipus: Autònomes      
Estudi personal i desenvolupament de pràctiques 97 3,88 7

Avaluació

Mòdul de teoria i problemes (pes 33%).

Examen final, fent que l’alumne respongui els conceptes teòrics a partir de problemes de programació que es plantegen.

 

Mòdul de pràctiques (pes  66%)
Les dues pràctiques de l’assignatura contaran cadascuna com un 33% de la nota final

 

Exàmens

Les Matrícules d'Honor no es concediran als estudiants que optin per fer l'examen de recuperació.

Activitats d'avaluació

Títol Pes Hores ECTS Resultats d'aprenentatge
Examen 33% 4 0,16 3, 4, 5, 8, 10
Examen de recuperació 33% 4 0,16 3, 4, 5, 8, 10
Lliurament de pràctiques 66% 0 0 1, 2, 6, 7, 8, 9, 10, 11

Bibliografia

- "The C++ Programming Language", B.Stroustrup, 3ªed.,Addison-Wesley, 1997.

- "Programación en C/C++", M.Alfonseca, A.Sierra, Anaya-Multimedia, 1999.

- "El lenguaje de programación Java", K.Arnold, J.Gosling, Addison-Wesley, 1997

- "Programación en JAVA 2", J.Zukowski, Anaya-Multimedia, 1999

- "Descubre Java 1.2", M.Morgan, Prentice Hall, 1999.

- "Java2: The Complete Reference", P.Naughton, H.Schildt, Osborne/McGraw-Hill, 2000

- "Core Java" Volúmenes I y  II, C.S.Horstmann, G.Cornell, Sun Microsystems Press.