
Fonaments de Programació I
Codi: 106553 Crèdits: 9| Titulació | Tipus | Curs |
|---|---|---|
| Intel·ligència Artificial / Artificial Intelligence | FB | 1 |
Professor/a de contacte
- Nom:
- Alicia Fornes Bisquerra
- Correu electrònic:
- alicia.fornes@uab.cat
Equip docent
- Pau Torras Coloma
Idiomes dels grups
Podeu consultar aquesta informació al final del document.
Prerequisits
Cap
Objectius
Aquesta assignatura pretén oferir una introducció general a la programació. Els objectius generals són:
- Comprensió del cicle de vida del programari: anàlisi del problema, disseny, implementació i prova.
- Dissenyar algorismes per a la resolució de problemes, amb una rigorosa metodologia de programació estructurada.
- Introduir un llenguatge de programació real, percebre la diferència entre una notació pseudo-algorítmica i la sintaxi d'un llenguatge de programació real. Inclou la comprensió dels aspectes lèxics (paraules vàlides de la llengua), sintàctics (regles per combinar-les) i semàntics (significat).
- Comprendre i aplicar els conceptes bàsics de programació: estructures de control, estructures de dades i subprogrames.
- Comprendre i aplicar els principis bàsics de la programació orientada a objectes: concepte de classe, objecte, encapsulació de dades, herència.
- Introduir el concepte de recursivitat i la seva aplicació.
- Familiaritzar-se amb els entorns de desenvolupament, seguint unes normes d'estil, i regles per a una millor comprensió del codi: comentaris, sagnat, etc.
Competències
- Analitzar i resoldre problemes de manera efectiva, i generar propostes innovadores i creatives per aconseguir els objectius.
- Conèixer i utilitzar de manera eficient les tècniques i eines de representació, manipulació, anàlisi i gestió de dades a gran escala.
- Dissenyar, implementar, analitzar i validar solucions algorítmiques eficients i robustes per a problemes computacionals derivats del disseny de sistemes intel·ligents.
- Que els estudiants hagin demostrat que comprenen i tenen coneixements en una à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 basa en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda d'aquell camp d'estudi.
- Treballar cooperativament per aconseguir objectius comuns, assumint la pròpia responsabilitat i respectant el rol dels diferents membres de lequip.
Resultats d'aprenentatge
- Analitzar i resoldre problemes de manera efectiva, i generar propostes innovadores i creatives per aconseguir els objectius.
- Aplicar els principis de la programació orientada a objectes en el desenvolupament de programes.
- Aplicar estratègies de depuració, prova i correcció per verificar el funcionament correcte duna solució algorítmica dacord amb els requisits del problema a resoldre.
- Comprendre les estructures de dades comunes i els algoritmes que les utilitzen i manipulen.
- Conèixer les limitacions i els avantatges de diferents representacions de dades i tenir la capacitat delegir les estructures més eficients que facilitin lanàlisi i explotació de les dades posterior.
- Desenvolupar programes amb un bon estil de programació i ben documentats.
- Que els estudiants hagin demostrat que comprenen i tenen coneixements en una à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 basa en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda d'aquell camp d'estudi.
- Seleccionar i utilitzar les estructures algorítmiques i de representació de les dades apropiades per a la resolució dun problema.
- Treballar cooperativament per aconseguir objectius comuns, assumint la pròpia responsabilitat i respectant el rol dels diferents membres de lequip.
Continguts
- Resolució de problemes: Introducció a l'algorisme i la programació
- Conceptes bàsics i estructures de control
- Estructures de dades.
- Subprogrames
- Fitxers
- Prevenció i detecció d'errors
- Introducció a la programació orientada a objectes
- Introducció a la recursivitat
Activitats formatives i Metodologia
| Títol | Hores | ECTS | Resultats d'aprenentatge |
|---|---|---|---|
| Tipus: Dirigides | |||
| Seminaris de resolució de problemes | 50 | 2 | 1, 2, 3, 6, 8 |
| Sessions teòriques | 25 | 1 | 4, 5 |
| Tipus: Supervisades | |||
| Projectes de programació | 50 | 2 | 1, 2, 3, 4, 5, 6, 8, 9 |
| Tipus: Autònomes | |||
| Resolució de problemes | 60 | 2,4 | 1, 2, 4, 5, 6, 8 |
| Treball individual | 35 | 1,4 | 1, 2, 3, 4, 5, 8 |
La plataforma Caronte (http://caronte.uab.cat/) s'utilitzarà per compartir els materials, lliurar els treballs/projectes, consultar les notes de l'assignatura, comunicar-se amb el professorat, etc. Per matricular el curs cal inscriure's (amb nom, NIU i foto) i matricular-se de l'assignatura (el codi de l'assignatura es facilita el primer dia de classe).
La metodologia docent estarà centrada principalment en treballs pràctics. S'organitzaran sessions a l'aula per debatre els continguts teòrics de l'assignatura, seguits d'exercicis i problemes de programació. Concretament, els diferents tipus d'activitats docents són els següents:
- Exposició de continguts. Les activitats de teoria estan orientades a consolidar els aspectes més teòrics de l'assignatura, des d'una perspectiva molt pràctica amb exemples. Alguns d'aquests continguts teòrics s'han d'haver preparat abans de la classe: lectura de textos, visualització de vídeos, recerca d'informació, etc.
- Classes magistrals participatives: Resolució conjunta del conjunt de problemes proposats per consolidar els continguts teòrics. Tots els problemes estaran disponibles a la plataforma Caronte, i seran autoavaluables. Aquestes activitats permeten a l'estudiant aprofundir en la comprensió i obtenir un coneixement personalitzat. Són autoavaluables per permetre ajustar el ritme de consolidació i reflexionar sobre el nostre propi aprenentatge.
- Projectes: Programació de breus projectes pràctics per aprofundir en els conceptes teòrics aplicats. Aquests projectes es resoldran en grups reduïts, on cada membre haurà de fer una part del treball i posar-lo en comú amb la resta del grup per tenir la solució definitiva.
- Les sessions de tutoria seran de lliure disposició per als estudiants per resoldre dubtes relacionats amb el curs.
Dins l'horari marcat pel centre o titulació, es reservaran 15 minuts d'una classe perquè els estudiants avaluïn els seus professors i els seus cursos o mòduls mitjançant qüestionaris.
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 |
|---|---|---|---|---|
| Lliurament de problemes | 10 | 0 | 0 | 1, 2, 3, 4, 5, 6, 8 |
| Projectes de programació | 40 | 1 | 0,04 | 1, 2, 3, 4, 5, 6, 7, 8, 9 |
| 1er examen parcial | 25 | 2 | 0,08 | 1, 2, 4, 5, 6, 8 |
| 2on examen parcial | 25 | 2 | 0,08 | 1, 2, 3, 4, 5, 6, 8 |
L'avaluació serà contínua, pel que no s'ofereix la possibilitat de fer avaluació única.
- Exàmens (Par): Es faran dos exàmens escrits teòrico-pràctics individuals. El primer (Par1) es farà aproximadament a la meitat del semestre. La segona (Par2) tindrà lloc al final del quadrimestre i avaluarà els conceptes teòrics no avaluats a Par1.
- Examen de recuperació: En cas que la nota de teoria no arribi a l'aprovat (5), els estudiants podran fer un examen de recuperació de la part suspesa.
- Problemes (NProb): La majoria de setmanes hi haurà la possibilitat de lliurar activitats treballades durant la setmana. El lliurament es fa a través de Caronte.
Nota dels projectes
- Cada projecte s'avalua a través del lliurament, una presentació oral que els estudiants realitzaran a classe i un procés d'avaluació individual. La participació dels estudiants a les tres activitats (preparació del lliurable, presentació i avaluació individual) és necessària per obtenir la qualificació dels projectes. La qualificació es calcula de la manera següent: Nota del Projecte = 0.6 * Avaluació Lliurament + 0.3 * Avaluació Presentació + 0.1 * Avaluació individual
- Si en fer el càlcul anterior s'obté >= 5 però l'estudiant no va participar en alguna de les activitats (lliurables, presentació, avaluació individual), aleshores s'atorgarà una qualificació final de 4.5 al projecte corresponent.
- En cas que es presenti el lliurament, però la nota final del projecte no arribi al mínim de 5, hi haurà recuperació del projecte. En cas de no presentar el lliurament o considerar-lo copiat, no hi haurà recuperació i l'assignatura serà considerada suspesa. La nota màxima del projecte que es pot obtenir en cas de recuperació és de 7.
INDICADORS DE NOTA:
La nota final es calcula de la següent manera:
- Examen parcial 1 = Par1
- Examen parcial 2 = Par2
- Nota de teoria = 0'5*Par1 +0'5*Par2
- Nota del projecte = 0’5*Proj1 + 0’5*Proj2
- NOTA FINAL DE CURS = 0'5 * Nota de teoria + 0'4 * Nota del projecte + 0'1 * NProb
CRITERIS D'AVALUACIÓ
- Per consider la Nota de Teoria, cal obtenir una nota mínima de 4 en cada parcial per fer la mitjana.
- Per considerar la Nota del Projecte, cal obtenir una nota mínima de 4 en cada lliurament per fer la mitjana.
- Si l'estudiant no supera algun dels lliuraments del projecte, lapuntuació màxima que es pot obtenir en la recuperació és de 5.
- Per aprovar cada part (teoria i projecte) cal obtenir un mínim de 5.
- L'assignatura s'aprovarà si la PUNTUACIÓ FINAL DE L'ASSIGNATURA és superior o igual a 5.
- En cas de no assolir el mínim exigit en alguna de les activitats d'avaluació, la nota numèrica de l'expedient serà el valor inferior entre 4,5 i la mitjana ponderada de les qualificacions.
NO AVALUABLE: Si l'alumne no realitza cap activitat d'avaluació.
ALUMNES REPETIDORS: No es conserva/valida cap part aprovada per separat (teoria, projecte) d'un curs acadèmic a un altre.
MATRICULA D’HONOR (MH): L'atorgament d'una matricula d'honor és decisió del professorat responsable de l'assignatura. La normativa de la UAB indica que l'MH només es pot concedir als estudiants que hagin obtingut una nota final igual o superior a 9,00. Es pot atorgar fins a un 5% MH del nombre total d'estudiants matriculats.
CALENDARI D'AVALUACIÓ:
- Exàmens parcials: segons el calendari acadèmic de l'Escola Tècnica Superior d'Enginyeria.
- Examen de recuperació: segons el calendari acadèmic de l'Escola Tècnica Superior d'Enginyeria.
- Lliuraments d'activitats: data i hora fixades prèviament a Caronte.
- Lliuraments del projecte: data i hora fixades prèviament a Caronte.
Les dates de lliurament a Caronte poden estar subjectes a canvis de programa per motius d'adaptació a possibles incidències. Aquests canvis s'informaran sempre a Caronte, ja que és el mecanisme habitual d'intercanvi d'informació entre professors i alumnes.
Per a cada activitat d'avaluació s'indicarà un lloc, data i hora de revisió en què l'alumne podrà revisar l'activitat amb el professor. En aquest context, es podran fer reclamacions sobre la nota de l'activitat, que serà avaluada pel professorat responsable de l'assignatura. Si l'alumne no acudeix a aquesta revisió, l'activitat no es revisarà més endavant.
CÒPIES I PLAGI
Sense perjudici d'altres que es considerin oportuns i d'acord amb la normativa vigent de disciplina acadèmica, les irregularitats comeses per un estudiant que puguin donar lloc a una variació de la qualificació es valoraran amb una nota zero (0). Les activitats d'avaluació classificades d'aquesta manera i per aquest procediment no seran recuperables. Si és necessari superar alguna d'aquestes activitats d'avaluació per aprovar l'assignatura, aquest curs quedarà suspès directament, sense possibilitat de recuperar-lo en el mateix curs. Aquestes irregularitats inclouen, entre d'altres:
- la còpia total o parcial d'una pràctica, informe o qualsevol altra activitat d'avaluació;
- deixar que altres copiïn l’examen/treball;
- presentar un treball en grup que no hagi estat fet completament pels membres del grup;
- presentar com a propis aquells materials elaborats per un tercer, encara que siguin traduccions o adaptacions, i en general obres amb elements no originals i exclusius de l'estudiant;
- disposar de dispositius de comunicació (com ara telèfons mòbils, rellotges intel·ligents, etc.) accessibles durant les proves d'avaluació teòrica - pràctiques individuals (exàmens).
- En cas que l'estudiant hagi comès irregularitats en alguna part d'avaluació (i per tant no es podrà aprovar per compensació), la nota numèrica de l'assignatura serà el valor inferior entre 3,5 i la mitjana ponderada de les notes. En resum: copiar, deixar copiar el teutreball o plagiar en alguna de les activitats d'avaluació equival aun suspens amb una nota inferior a 3,5.
Ús de la IA (Intel·ligència Artificial)
Model 2 - Ús restringit: Per a aquesta assignatura, es permet l'ús de tecnologies d'Intel·ligència Artificial (IA) exclusivament en tasques de suport, com la cerca bibliogràfica o d’informació. L'estudiant haurà d'identificar clarament quines parts han estat generades amb aquesta tecnologia, especificar les eines emprades i incloure una reflexió crítica sobre com aquestes han influït en el procés i el resultat final de l’activitat. La no transparència de l’ús de la IA en aquesta activitat avaluable es considerarà 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.
Bibliografia
- J. Guttag. Introduction to Computation and Programming Using Python: With Application to Understanding Data. Second Edition. MIT Press. ISBN-10: 9780262529624.
- S. Chazallet Python 3. Los fundamentos del lenguaje. Eni, ISBN-10: 2409006140.
- E. Matthes. Python Crash Course: A Hands-On, Project-Based Introduction to Programming. No Starch Press ISBN-10: 1593276036.
- M. Myers. A Smarter Way to Learn Python: Learn it faster. Remember it longer. Createspace Independent Pub ISBN-10: 1974431479.
- D. Phillips, C. Giridhar, S. Kasampalis. Python: master the art of design patterns. Packt Publishing, 2016.
- Steven F. Lott. Mastering object-oriented Python. Packt publishing, 2014.
- Clean code: a handbook of agile software craftmanship. R.C. Martin. Prentice Hall, 2008.
Programari
Anaconda, que inclou Python i Spyder (https://www.anaconda.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 daquest enllaç. Per accedir a la informació, caldrà introduir el CODI de l'assignatura
| Nom | Grup | Idioma | Semestre | Torn |
|---|---|---|---|---|
| (PAUL) Pràctiques d'aula | 71 | Anglès | primer quadrimestre | tarda |
| (PLAB) Pràctiques de laboratori | 1 | Anglès | primer quadrimestre | tarda |
| (PLAB) Pràctiques de laboratori | 2 | Anglès | primer quadrimestre | tarda |
| (TE) Teoria | 1 | Anglès | primer quadrimestre | tarda |