Logo

Programació Avançada

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

Professor/a de contacte

Nom :
Vicenç 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.

Resultats d'aprenentatge

  1. Utilitzar eficaçment bibliografia i recursos electrònics per obtenir informació.
  2. 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.
  3. 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.
  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. Que els estudiants puguin transmetre información idees, problemes i solucions a un públic tan especialitzat com no especialitzat
  6. Que els estudiants hagin desenvolupat les habilitats d'aprenentatge necessàries per a emprendre estudis posteriors amb un alt grau d'autonomia.
  7. Generar propostes innovadores i competitives en la recerca i en l'activitat professional.
  8. Demostrar de forma activa una elevada preocupació per la qualitat en el moment d'argumentar o exposar les conclusions dels seus treballs
  9. Treballar en equip.
  10. Poder realitzar la implementació total o parcial del producte programari i poder dissenyar els mètodes de verificació i validació.
  11. Conèixer les diferents activitats implicades en les fases del cicle de vida de productes programari i les seves aplicacions.
  12. 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.
  13. Saber aportar solucions científicament vàlides i tecnològicament actuals.
  14. 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.
  15. 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.
  16. Tenir coneixements de maquinari i sistemes de comunicacions.

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/C++)

3.1. Conceptes generals i característiques.

3.2. Classes i objectes: herència, polimorfisme, ...

3.3. Anàlisi i disseny orientat a objectes.


4. Python i Java/C++

4.1. Característiques dels llenguatges.

4.2. Classes, bucles, funcions i estructures dels llenguatges.


*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
Estudi personal i desenvolupament de pràctiques 97 3,88 10
Classes teòriques, de problemes i pràctiques 45 1,8 10

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è l'alumnat completi 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
Lliurament de pràctiques 66% 0 0 1, 2, 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 16
Examen 33% 4 0,16 2, 3, 4, 8, 15
Examen de recuperació 33% 4 0,16 2, 3, 4, 8, 15

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 40% i el final 60% 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.


Ús de la IA

Als exàmens no es permet l'ús de la IA. L'examen ha de ser desenvolupat individualment per cada estudiant, sense cap ajuda externa i només es permetrà portar el material que especifiqui el professorat.

Al desenvolupament de les pràctiques es pot permetre l'ús de la IA en tasques concretes que no representin la part principal de la pràctica. L'estudiant haurà d'identificar clarament quines parts han estat generades amb aquesta tecnologia i especificar les eines emprades. No es permetrà el seu ús en més d'un 10% del codi i s'haurà de consultar al professorat si es permet de fer servir la IA a la part que es pretén desenvolupar. L'objectiu és que les pràctiques han de ser desenvolupades pels estudiants de manera individual i la IA pot ajudar en alguna tasca concreta, però no pot ser la part principal de la pràctica.


Qualsevol activitat avaluable que inclogui fragments generats amb IA (sense estar sota les condicions anteriors) o copiats d'algun estudiant serà considerat una falta d'honestedat acadèmica i pot comportar una penalització parcial o total en la nota de l'activitat, o sancions majors en casos de gravetat


Avaluació única

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


Bibliografia

  • K. N. King , “C Programming: A Modern Approach”, Ed. WW Norton & Co, 2008
  • Raúl González Duque, "Python para todos", http://mundogeek.net/tutorial-python/
  • Python tutorial", https://www.tutorialspoint.com/python/
  • Mark Lutz, "Learning Python", Ed. O'Reilly, 2013
  • "The C++ Programming Language", B.Stroustrup, 3ªed.,Addison-Wesley, 1997.
  • P.Naughton, H.Schildt ,"Java2: The Complete Reference", Osborne/McGraw-Hill, 2000
  • "Core Java" Volumes I y II, C.S.Horstmann, G.Cornell, Sun Microsystems Press.


Programari

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

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

https://www.python.org/downloads/

https://code.visualstudio.com/download

Grups i idiomes de l'assignatura

La informació proporcionada és provisional fins al 30 de novembre. 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

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