Logo UAB

Iniciació a la Programació

Codi: 104383 Crèdits: 6
2024/2025
Titulació Tipus Curs
2503740 Matemàtica Computacional i Analítica de Dades FB 1

Professor/a de contacte

Nom:
Roberto Benavente Vidal
Correu electrònic:
robert.benavente@uab.cat

Equip docent

Roberto Benavente Vidal

Idiomes dels grups

Podeu consultar aquesta informació al final del document.


Prerequisits

Atès que l’assignatura és d’introducció s’assumirà que no es posseeix cap tipus de coneixement previ sobre la matèria.

Malgrat això és recomanable tenir coneixements a nivell d’usuari d’algun tipus de plataforma (windows, mac o linux).

En les activitats presencials a l'aula és imprescindible disposar d'un ordinador portàtil per a realitzar les tasques de l'assignatura.


Objectius

Aquesta assignatura té un caràcter general i introductori a la programació. S'aprofundirà en l'estudi dels aspectes metodològics de la programació i l'aprenentatge d'un llenguatge d'alt nivell. Per tant, els objectius generals que es proposen per a l'assignatura són els següents:

  • Entendre el cicle de vida del software: anàlisi del problema (entendre el que se’ns demana), disseny (proposar una solució al problema), implementació (codificació en un llenguatge de programació de la solució escollida), prova (realització d’un test de manera sistemàtica per assegurar la correctesa de la solució implementada).
  • Dotar l'estudiant de la capacitat de disseny d'algorismes per a la resolució de problemes, introduint de manera progressiva i sistemàtica una metodologia rigorosa i estructurada de programació, basada fonamentalment en la tècnica del disseny descendent d'algorismes.
  • Introduir a l'estudiant en un llenguatge de programació real. Es pretén que l'estudiant percebi la diferència entre la flexibilitat de la notació pseudo-algorísmica que s'empra en els primers temes i l'estricta sintaxi d'un llenguatge de programació real, tant en els seus aspectes lèxics (paraules vàlides del llenguatge), sintàctics (regles per combinar-les) i semàntics (significat de les mateixes).
  • Habituar l'estudiant a desenvolupar programes seguint unes normes d'estil tendents a aconseguir programes de qualitat. Dins d'aquestes normes d'estil s'engloben aquelles que faciliten la compressió del codi, com poden ser l'ús de comentaris, la indentació del codi, la utilització de noms adequats per als tipus de dades, etc.

Resultats d'aprenentatge

  1. CM06 (Competència) Desenvolupar solucions algorísmiques eficients a problemes computacionals d'acord amb els requisits establerts.
  2. CM06 (Competència) Desenvolupar solucions algorísmiques eficients a problemes computacionals d'acord amb els requisits establerts.
  3. CM07 (Competència) Analitzar la complexitat computacional de les solucions algorísmiques per a desenvolupar i implementar la que garanteixi el millor rendiment.
  4. CM07 (Competència) Analitzar la complexitat computacional de les solucions algorísmiques per a desenvolupar i implementar la que garanteixi el millor rendiment.
  5. CM08 (Competència) Assegurar el funcionament correcte d'una solució algorísmica d'acord amb els requisits del problema a resoldre.
  6. KM06 (Coneixement) Reconèixer els conceptes bàsics de la lògica, l'estructura i la programació dels computadors.
  7. KM07 (Coneixement) Descriure el funcionament bàsic dels sistemes de còmput.
  8. KM08 (Coneixement) Reconèixer els mètodes, sistemes i tecnologies propis de la computació.
  9. SM07 (Habilitat) Utilitzar els sistemes operatius i programes d'ús comú en diversos camps.
  10. SM07 (Habilitat) Utilitzar els sistemes operatius i programes d'ús comú en diversos camps.
  11. SM08 (Habilitat) Utilitzar les estructures algorísmiques i de representació de dades adequades per a la resolució de problemes.

Continguts

Tema 1: Introducció a la informàtica

Història. Estructura funcional de l’ordinador. Programes/instruccions. Nivells conceptuals de l’ordinador.

Tema 2: Resolució de problemes: introducció a l’algorísmica i la programació.

Introducció a la resolució de problemes. Concepte d'algorisme. Fases en el desenvolupament d'algorismes. La programació com a disciplina d'enginyeria. Cicle de vida del software. Elements bàsics d'un algorisme. Eines per a la representació d'algorismes. Llenguatges de programació. Classificació. Traductors de llenguatges: Compiladors i intèrprets. 

Tema 3: Conceptes bàsics i estructures de control

Definició de variables i constants. Tipus de dades fonamentals. Estructura Seqüencial. Estructures de selecció o condicionals. Estructures iteratives o repetitives.

Tema 4: Estructures de dades

Arrays unidimensionals: strings, tuples i llistes. Cerques i recorreguts.

Tema 5: Subprogrames

El concepte de subprograma com a abstracció d'operacions. Localitat, niament, àmbit i visibilitat. Definició de funcions i procediments. Crides a funcions i procediments. Disseny modular descendent.

Tema 6: Fitxers

Definicions bàsiques. Entrada / sortida de dades en fitxers. Tipus d'accessos a fitxers.

Tema 7: Control d'errors

Tipus d'errors. Excepcions i asserts.  Programació preventiva. Depuració de programes.

Tema 8: Introducció a la programació orientada a objectes

Classes i objectes. Atributs i mètodes. Encapsulació.Definició de classes. Herència.

Tema 9: Tipus de dades complexes

Llistes: iteradors, generadors, paradigma funcional i list comprehensions. Conjunts. Diccionaris.


Activitats formatives i Metodologia

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Classes de Problemes 26 1,04 CM06, CM07, CM08, KM06, KM07, KM08, SM07, SM08
Classes de Pràctiques 13 0,52 CM06, CM07, CM08, KM06, KM07, KM08, SM07, SM08
Classes de Teoria 10 0,4 CM06, CM07, CM08, KM06, KM07, KM08, SM07, SM08
Tipus: Supervisades      
Projecte de programació 30 1,2 CM06, CM07, CM08, KM06, KM07, KM08, SM07, SM08
Tipus: Autònomes      
Preparació classes i Estudi personal 20 0,8 CM06, CM07, CM08, KM06, KM07, KM08, SM07, SM08
Resolució de problemes auto-avaluables (individual) 46 1,84 CM06, CM07, CM08, KM06, KM07, KM08, SM07, SM08

La gestió de la docència de l'assignatura es farà a través del gestor documental Caronte (http://caronte.uab.cat/), que servirà per poder veure els materials, gestionar els grups de pràctiques, fer els lliuraments corresponents, veure les notes, comunicar-se amb el professorat, etc. Per poder-lo utilitzar cal fer els següents passos:

  1.  Donar-se d'alta com usuari donant el nom, NIU, i una foto carnet en format JPG. Si ja us heu donat d'alta per alguna altra assignatura, no cal tornar-ho a fer i podeu anar al següent pas.
  2.  Inscriure’s al tipus de docència "Iniciació a la Programació", donant com a codi d'assignatura "IniProg" (sense les cometes). 

La docència de l'assignatura es desenvolupa en dues sessions de dues hores cadascuna. En aquestes sessions, es podran diferenciar les següents activitats docents:

MD1 Exposició de continguts a classe: Presentació dels continguts teòrics a treballar en la classe. Alguns d'aquests continguts s'hauran d'haver preparat abans de la classe a partir de la lectura de texts, visualització de vídeos, cerca d'informació, etc. Els continguts presentats estaran directament relacionats amb els problemes proposats en altres activitats docents, de forma que seran la base sobre la que es desenvoluparan altres activitats del curs.

MD2 Classes participatives: Resolució en comú del conjunt de problemes proposats als estudiants. Tots els temes aniran acompanyats d'una relació de problemes que l'estudiant ha de resoldre. En aquest sentit, i a mida que l'estudiant vagi progressant en la profunditat dels seus coneixements, aquests problemes seran poc a poc més complexos, permetent d'aquesta manera apreciar clarament els avantatges d'utilitzar les eines metodològiques impartides durant el curs. Tots els problemes desenvolupats a classe i altres que es puguin proposar es podran trobar a la plataforma Caronte, i seran auto-avaluables. Aquestes activitats han de permetre a l’estudiant aprofundir en la comprensió i personalitzar el coneixement. El fet que siguin auto-avaluables permet adequar el ritme de consolidació i reflexionar sobre el propi aprenentatge.

MD3 Tutories: Hores de lliure disposició per l’estudiant per a consultes sobre aspectes en què necessiti ajuda addicional per part del professorat.

MD4 Realització de projectes curts: Realització de pràctiques i problemes més amplis per aprofundir en aspectes aplicats de la teoria. La part pràctica de cada tema quedarà completada amb almenys una sessió pràctica, on els estudiants hauran de resoldre problemes concrets d’una certa complexitat. Aquests projectes es resoldran en petits grups. Cada membre del grup haurà de fer una part i posar-la en comú amb la resta per tenir la solució final.

MD5 Activitats d’avaluació: Veure apartat d'avaluació d'aquesta guia docent.

 

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.


Avaluació

Activitats d'avaluació continuada

Títol Pes Hores ECTS Resultats d'aprenentatge
1. Examen Teoric Parcial (Tp) 15% 2 0,08 CM06, CM07, CM08, KM06, KM07, KM08, SM08
2. Examen Teoric Final (Tf) 35% 2 0,08 CM06, CM07, CM08, KM06, KM07, KM08, SM08
3. Lliuraments de Problemes (P) 20% 0 0 CM06, CM07, CM08, KM06, KM07, KM08, SM07, SM08
4. Projectes de Programació (PPg) - grupal 20% 0,5 0,02 CM06, CM07, CM08, KM06, KM07, KM08, SM07, SM08
5. Examen Projectes de Programació (PPi) - individual 10% 0,5 0,02 CM06, CM07, CM08, KM06, KM07, KM08, SM07, SM08

Procés i activitats d'avaluació programades

Al llarg del curs es realitzaran les activitats d’avaluació següents:

Activitat

Data

Recuperació

Percentatge

Nota mínima

Examen Teòric Parcial (Tp)  Individual

Consultar Planificació

Consultar Planificació

15%

 No

Examen Teòric Final (Tf)    Individual

Consultar Planificació

Consultar Planificació

35%

 Tf >= 5

Lliuraments de Problemes (P) Individual

Cada setmana

No

20%

No

Projectes de Programació (PPg) Grupal

Consultar Planificació

Consultar Planificació

20%

PPg >= 5

Examen dels Projectes de Programació (PPi) individual

Consultar Planificació

Consultar Planificació

10%

PPi >= 5

Per poder aprovar l’assignatura, el resultat de la suma ponderada de les activitats d’avaluació ha de ser més gran o igual que 5, i caldrà treure una nota mínima de 5 en les activitats Tf, PPg i PPi.

 

Programació d’activitats d’avaluació

Les dates d'avaluació i lliurament de treballs es publicaran al gestor documental Caronte i poden estar subjectes a canvis de programació per motius d'adaptació a possibles incidències. Sempre s'informarà pel gestor documental sobre aquests canvis ja que s'entén que aquesta és la plataforma habitual d'intercanvi d'informació entre professorat i estudiants.

Procediment de recuperació

L’estudiant es pot presentar a la recuperació sempre que s’hagi presentat a un conjunt d’activitats que representi un mínim de dues terceres parts de la qualificació total de l’assignatura.

Els exàmens teòrics (Tp i Tf) es podran recuperar en un únic examen de recuperació a les dates fixades per la coordinació del Grau. L’examen de recuperació tindrà un percentatge del 50% sobre la nota final. La nota de l’examen de recuperació, en cas de realitzar-se, substituirà a les notes dels exàmens parcial (Tp) i final (Tf) realitzats durant el curs.

D’acord amb la coordinació del Grau l'activitat Lliuraments de Problemes (P) Individual no es podrà recuperar.

Procediment de revisió de les qualificacions

Els estudiants tindran dret ala revisió dels exàmens teòrics (Tp i Tf). El  lloc, data i hora de revisió es publicarà el dia que siguin publicades les notes. Si l’estudiant no es presenta a aquesta revisió no es revisarà posteriorment aquesta activitat. Sols en casos justificats es podrà fer una revisió a posteriori de la data fixada i sempre fins a un màxim de 7 dies naturals.

De les notes dels projectes de programació (PPg i PPi) no es realitzarà revisió perquè l’avaluació es realitza davant dels estudiants.

Avaluació única

Aquesta assignatura ofereix sistema d'avaluació única.

L'avaluació única de l'assignatura constarà de les següents activitats d'avaluació:

Activitat

Data

Recuperació

Percentatge

Nota mínima

Examen Teòric Final (Tf)    Individual

Consultar Planificació

Consultar Planificació

50%

 Tf >= 5

Projectes de Programació (PPg) Grupal

Data Examen Teoria

Data Examen Recuperació

30%

PPg >= 5

Examen Projectes de Programació (PPi) individual

Data Examen Teoria

Data Examen Recuperació

20%

PPi >= 5

Per poder aprovar l’assignatura, el resultat de la suma ponderada de les activitats d’avaluació ha de ser més gran o igual que 5, i caldrà treure una nota mínima de 5 en les activitats Tf, PPg i PPi.

S'aplicarà el mateix sistema de recuperació que per l'avaluació continuada.

La revisió de la qualificació final segueix el mateix procediment que per a l'avaluació continuada.

Qualificacions

No Avaluable (NA): Qualsevol alumne que lliuri una pràctica o una avaluació programadatindrà nota. Només es considerarà no avaluable en el cas de no lliurar cap activitat avaluable.

Nota Final: Surt de la suma ponderada segons els criteris exposats en l’apartat d’activitats d’avaluació. Si en alguna activitat no s’assoleix la nota mínima la nota sortirà de les següent fórmula:

Mínim  (suma ponderadade notes , 4.5)

No Avaluable (NA): Qualsevol alumne que lliuri una pràctica o una avaluació programadatindrà nota. Només es considerarà no avaluable en el cas de no lliurar cap activitat avaluable.

Matricules d’honor: Atorgar una qualificació de matrícula d’honor és decisió del professorat responsable de l’assignatura. La normativa de la UAB indica que les MH només es podran concedir a estudiants que hagin obtingut una qualificació final igual o superior a 9.00. Es pot atorgarfins a un 5% de MH del total d'estudiants matriculats. En el cas que el nombre d’estudiants amb nota superior oigual a 9 siguin més del5% del total dematriculats, es prioritzà els estudiants segons les següents regles (en ordre):

  1. Estudiants que hagin aconseguit la nota igual o superior a 9 fent menys recuperacions d'activitats (ja sigui per haver suspès l'activitat o perquè s'ha anat a pujar nota).
  2. Estudiants amb més notes superiors a 9 a les activitats Tp, Tf, i PPi.
  3. Estudiants amb millor nota global.

Irregularitats per part de l’estudiant/a, còpia i plagi

Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, es qualificaran amb un zero les irregularitats comeses per l'estudiant que puguin conduir a una variació de la qualificació d'un acte d’avaluació. Per tant, la còpia, el plagi, l’engany, deixar copiar, etc. en qualsevol de les activitats d’avaluació implicarà suspendre-la amb un zero. Les activitats d’avaluació qualificades d'aquesta forma i per aquest procediment no seran recuperables. Si és necessari superar qualsevol d'aquestes activitats d'avaluació per aprovar l'assignatura, aquesta assignatura quedarà suspesa directament, sense oportunitat de recuperar-la en el mateix curs. En aquest cas,la notanumèrica de l'expedient serà el valor menor entre 3.0 i la mitjana ponderada de les notes.

Avaluació dels estudiants repetidors

Els estudiants  repetidors han de cursar l’assignatura per complet. No es guarda cap nota de cursos anteriors. 


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 ProgrammingNo Starch Press ISBN-10: 1593276036 

M. Myers. A Smarter Way to Learn Python: Learn it faster. Remember it longerCreatespace Independent Pub  ISBN-10: 1974431479

A. Prieto, A. Lloris, J.C. Torres.  Introducción a la Informática. Mc Graw-Hill ISBN-10: 8448146247

A. Prieto, B. Prieto. Conceptos de Informática. Mc Graw-Hill, Schaum ISBN-10: 8448198573

L. Joyanes Aguilar.  Fundamentos de Programación: Algoritmos, Estructuras de Datos y Objetos.  Mc. Graw-Hill. ISBN-10:8448161114

 


Programari

S'utilitzarà la darrera versió del paquet Anaconda que inclou Python 3.x i l'editor Spyder (https://www.anaconda.com/products/individual)

Llista d'idiomes

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