Aquesta versió de la guia docent és provisional fins que no finalitzi el període d’edició de les guies del nou curs.

Logo UAB

Programació Avançada

Codi: 100126 Crèdits: 6
2025/2026
Titulació Tipus Curs
Matemàtiques OT 4

Professor/a de contacte

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

Idiomes dels grups

Podeu consultar aquesta informació al final del document.


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 complex. Un segon objectiu és aconseguir una formació en programació orientada a objectes (principalment amb Python, però també en 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 realitzar dos jocs: un en C i l'altre en Java o Python.
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 puguin transmetre información idees, problemes i solucions a un públic tan especialitzat com no especialitzat
  • 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
  • Treballar en equip.
  • Utilitzar aplicacions informàtiques d'anàlisi estadística, càlcul numèric i simbòlic, visualització gràfica, optimització o altres per experimentar en Matemàtiques i resoldre problemes
  • 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 puguin transmetre información idees, problemes i solucions a un públic tan especialitzat com no especialitzat
  11. 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.
  12. Saber analitzar, dissenyar i implementar sistemes basats en computadors en general, utilitzant tècniques i mètodes que assegurin la seva eficàcia i eficiència.
  13. Saber aportar solucions científicament vàlides i tecnològicament actuals.
  14. Tenir coneixements de maquinari i sistemes de comunicacions.
  15. Treballar en equip.
  16. 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 (Pyton i Java)
   

3.1. Conceptes generals y característiques.

3.2. Classes i objectes

3.3. Anàlisiidisseny orientat a objectes.

4. Python i Java
   

4.1. Característiques del llenguatge.

4.2 Classes, bucles, funcions i estructures del llenguatge

  

 *Llevat que les restriccions imposades per les autoritats sanitàries obliguin a una priorització o reducció d’aquests continguts.


Activitats formatives i Metodologia

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

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

Es presentaran els conceptes de l’assignatura. 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 i es discutirà la resolució dels problemes proposats.

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 es programaran directament a l’ordinador amb la seva supervisió.

 

Tutories:

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

A les 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.

 

*La metodologia docent proposada pot experimentar alguna modificació en funció de les restriccions a la presencialitat que imposin les autoritats sanitàries.

Nota: es reservaran 15 minuts d'una classe, dins del calendari establert pel centre/titulació, perquè els alumnes completin les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura.


Avaluació

Activitats d'avaluació continuada

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

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

La seva avaluació es realitzarà mitjançant 2 exàmens: parcial i final.

Per aprovar l'assignatura s'ha d'obtenir un mínim de 2.5 punts a la part dels exàmens. L'examen parcial té un pes del 30% i el final 70% de la nota dels exàmens.

 

Mòdul de pràctiques (pes 66%)
S'entregaran 2 pràctiques durant el curs. Les dues pràctiques de l’assignatura contaran cadascuna 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ó.

S'aplicarà la qualificació "No avaluable" als estudiants que no es presentin als exàmens.

L'examen de recuperació s'aplica només als estudiants que no hagin aprovat l'assignatura.

 

Avaluació única

Programació Avançada no té avaluació única. 

 

*Lavaluació proposada pot experimentar alguna modificació en funció de les restriccions a la presencialitat que imposin les autoritats sanitàries.


Bibliografia

C                                                                                                          

C/C++. Curso de programación. 4ª Edición.

Fco. Javier Ceballos Sierra;Fco. Javier Ceballos Sierra

 

eBook eBook | 2015

 

JAVA                                                                                                                

- Learning Java : An Introduction to Real-World Programming with Java

Marc Loy;Patrick Niemeyer;Daniel Leuck;Marc Loy;Patrick Niemeyer;Daniel Leu...

 

eBook eBook | 2020
 
 

- Java Cookbook : Problems and Solutions for Java Developers

Ian F. Darwin;Ian F. Darwin

 

eBook eBook | 2020
 
 

- Foundational Java : KeyElements and Practical Programming

David Parsons;David Parsons

 

eBook eBook | 2020

 

PYTHON                                                                                                      

 

 Llibre en línia | 2017
 
- High Performance Python : Practical Performant Programming for Humans
Micha Gorelick;Ian Ozsvald;Micha Gorelick;Ian Ozsvald
eBook eBook | 2020
 
- Python : An Introduction to Programming
Parker, James R.;Parker, James R.
eBook eBook | 2021
 
Guido van Rossum, "El Tutorial de Python" (Una introducción informal a Pyhon),

      - Python 2: http://docs.python.org.ar/tutorial/pdfs/TutorialPython2.pdf
      - Python 3: http://docs.python.org.ar/tutorial/pdfs/TutorialPython3.pdf

- Mark Lutz, "Learning Python", Ed. O'Reilly

- Raúl González Duque, "Python para todos", http://mundogeek.net/tutorial-python/

-"Python tutorial", https://www.tutorialspoint.com/python/

 

Altres llibres                                                                              

- "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.


Programari

https://www.codeblocks.org/downloads/binaries/

https://www.eclipse.org/downloads/

https://code.visualstudio.com/download


Grups i idiomes de l'assignatura

La informació proporcionada és provisional fins al 30 de novembre de 2025. A partir d'aquesta data, podreu consultar l'idioma de cada grup a través d’aquest enllaç. Per accedir a la informació, caldrà introduir el CODI de l'assignatura

Nom Grup Idioma Semestre Torn
(PLAB) Pràctiques de laboratori 1 Català primer quadrimestre matí-mixt