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