Logo UAB
2023/2024

Fonaments de Programació I

Codi: 106553 Crèdits: 9
Titulació Tipus Curs Semestre
2504392 Intel·ligència Artificial FB 1 1

Professor/a de contacte

Nom:
Alicia Fornes Bisquerra
Correu electrònic:
alicia.fornes@uab.cat

Idiomes dels grups

Podeu accedir-hi des d'aquest enllaç. Per consultar l'idioma us caldrà introduir el CODI de l'assignatura. Tingueu en compte que la informació és provisional fins a 30 de novembre de 2023.


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.
  • Treballar cooperativament per aconseguir objectius comuns, assumint la pròpia responsabilitat i respectant el rol dels diferents membres de l’equip.

Resultats d'aprenentatge

  1. Analitzar i resoldre problemes de manera efectiva, i generar propostes innovadores i creatives per aconseguir els objectius.
  2. Aplicar els principis de la programació orientada a objectes en el desenvolupament de programes.
  3. Aplicar estratègies de depuració, prova i correcció per verificar el funcionament correcte d’una solució algorítmica d’acord amb els requisits del problema a resoldre.
  4. Comprendre les estructures de dades comunes i els algoritmes que les utilitzen i manipulen.
  5. Conèixer les limitacions i els avantatges de diferents representacions de dades i tenir la capacitat d’elegir les estructures més eficients que facilitin l’anàlisi i explotació de les dades posterior.
  6. Desenvolupar programes amb un bon estil de programació i ben documentats.
  7. Seleccionar i utilitzar les estructures algorítmiques i de representació de les dades apropiades per a la resolució d’un problema.
  8. Treballar cooperativament per aconseguir objectius comuns, assumint la pròpia responsabilitat i respectant el rol dels diferents membres de l’equip.

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

Metodologia

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ó, per a la complementació per part de l'alumnat de les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura/mòdul.


Activitats formatives

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Seminaris de resolució de problemes 50 2 1, 2, 3, 6, 7
Sessions teòriques 25 1 4, 5
Tipus: Supervisades      
Projectes de programació 50 2 1, 2, 3, 4, 5, 6, 7, 8
Tipus: Autònomes      
Resolució de problemes 60 2,4 1, 2, 4, 5, 6, 7
Treball individual 35 1,4 1, 2, 3, 4, 5, 7

Avaluació

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.
  • Projectes (Projecte): La qualificació dels projectes s'obtindrà a partir de la mitjana ponderada de les qualificacions obtingudes en els dos projectes. Cada nota serà la mitjana aritmètica de la nota grupal i la nota individual. Cada un dels lliuraments s'ha de passar per separat. En cas de suspendre algun lliurament, hi haurà l'opció de recuperar la part suspesa. La nota de la recuperació serà com a màxim de 5.

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.

Activitats d'avaluació continuada

Títol Pes Hores ECTS Resultats d'aprenentatge
1er examen parcial 25 2 0,08 1, 2, 4, 5, 6, 7
2on examen parcial 25 2 0,08 1, 2, 3, 4, 5, 6, 7
Lliurament de problemes 10 0 0 1, 2, 3, 4, 5, 6, 7
Projectes de programació 40 1 0,04 1, 2, 3, 4, 5, 6, 7, 8

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)