Logo UAB
2020/2021

Iniciació a la Programació

Codi: 104383 Crèdits: 6
Titulació Tipus Curs Semestre
2503740 Matemàtica Computacional i Analítica de Dades FB 1 1
La metodologia docent i l'avaluació proposades a la guia poden experimentar alguna modificació en funció de les restriccions a la presencialitat que imposin les autoritats sanitàries.

Professor/a de contacte

Nom:
Francesc Xavier Roca Marva
Correu electrònic:
Xavier.Roca@uab.cat

Utilització d'idiomes a l'assignatura

Llengua vehicular majoritària:
català (cat)
Grup íntegre en anglès:
No
Grup íntegre en català:
Grup íntegre en espanyol:
No

Altres indicacions sobre les llengües

En el cas d'estudiants Erasmus o de fora de Catalunya, es faran classes addicionals en la llengua comuna entre estudiant i professor per a que l’estudiant pugui seguir la matèria sense problemes lingüístics

Prerequisits

Atès que l’assignatura és d’introducció s’assumirà que no es posseeix cap tipus de coneixement previ sobre la matèria. És responsabilitat de la pròpia assignatura proporcionar als estudiants els mitjans per adquirir els coneixements descrits a l’apartat de continguts de l’assignatura.

Malgrat això és recomanable:

  • tenir  coneixements a nivell d’usuari d’algun tipus de plataforma (windows, mac o linux)
  • tenir accés a un ordinador, si és portàtil millor

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.

Competències

  • Aplicar coneixements bàsics sobre l’estructura, l’ús i la programació d’ordinadors, sistemes operatius i programes informàtics per solucionar problemes de diferents àmbits.
  • Avaluar de manera crítica i amb criteris qualitat el treball realitzat.
  • Dissenyar, desenvolupar i avaluar solucions algorísmiques eficients per a problemes computacionals d’acord amb els requisits establerts.
  • 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.
  • Que els estudiants puguin transmetre informació, idees, problemes i solucions a un públic tant especialitzat com no especialitzat.
  • Que els estudiants sàpiguen aplicar els coneixements propis a la seva feina o vocació d'una manera professional i tinguin les competències que se solen demostrar per mitjà de l'elaboració i la defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi.
  • Treballar cooperativament en un context multidisciplinar asumiendo y respetando el rol de los diferentes miembros del equipo.
  • Utilitzar eficaçment la bibliografia i els recursos electrònics per obtenir informació.

Resultats d'aprenentatge

  1. Avaluar de manera crítica i amb criteris de qualitat el treball desenvolupat.
  2. Avaluar i analitzar la complexitat computacional de les solucions algorítmiques per poder desenvolupar i implementar aquella que garanteixi el millor rendiment.
  3. Conèixer els conceptes bàsics de l'estructura i la programació dels computadors.
  4. 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.
  5. Que els estudiants puguin transmetre informació, idees, problemes i solucions a un públic tant especialitzat com no especialitzat.
  6. Que els estudiants sàpiguen aplicar els coneixements propis a la seva feina o vocació d'una manera professional i tinguin les competències que se solen demostrar per mitjà de l'elaboració i la defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi.
  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 en un context multidisciplinari assumint i respectant el rol dels diferents membres de l'equip.
  9. Utilitzar eficaçment la bibliografia i els recursos electrònics per obtenir informació.
  10. Verificar i assegurar el funcionament correcte d'una solució algorítmica d'acord amb els requisits del problema que cal resoldre.

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: 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 5: Control d'errors

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

 

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

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

 

Tema 7: Tipus de dades complexes

Arrays (unidimensionals i multidimensionals). Llistes, tuples i conjunts. Diccionaris.

 

Tema 8: Fitxers

Definicions bàsiques. Entrada / sortida de dadesen fitxers. Tipus d'accesos a fitxers.

Metodologia

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-vos amb els professors, 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, 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). 

En el desenvolupament de l'assignatura es podran diferenciar cinc tipus d’activitats docents:

La docència de l'assignatura es desenvolupa en dues sessions de dues hores cadascuna en una aula informàtica. 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 delsseus 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.

 

 

Competències transverals

Les competències transversals T01, T02 i T04 es treballen i s’avaluaren al llar del curs en les següents activitats

Competència

MD1

MD2

MD4

T01 - Avaluar de manera crítica i amb criteris qualitat el treball realitzat

Treball personal de preparació dels materials

Avaluada: Examen Teòric (Tp i Tf)

Realització dels problemes proposats

Avaluada: Resolució Problemes (P) d’auto-avaluació amb el caronte

Avaluada: Practica de Laboratori (PLg) Grupal

T02  - Treballar cooperativament en un context multidisciplinar asumiendo y respetando el rol de los diferentes miembros del equipo.

 

 

Es proporcionaran materials de com treballar en equip de manera eficaç.

Avaluada: Practica de Laboratori (PLg) Grupal

T04 – Utilitzar eficaçment la bibliografia i els recursos electrònics per obtenir informació

Treball personal de preparació dels materials

Avaluada: Examen Teòric (Tp i Tf)

 

Treball: Cerca d’informació per resoldre la pràctica

Avaluada: Practica de Laboratori PLg i PLi

Activitats formatives

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Classes Presencials / Teoria 10 0,4 1, 2, 3, 4, 5, 6, 7, 9, 10
Classes Pràctiques 10 0,4 1, 2, 3, 5, 7, 8, 9, 10
Classes de Problemes 26 1,04 1, 2, 3, 6, 7, 10
Tipus: Supervisades      
Projecte de programació 17,5 0,7 1, 2, 3, 5, 6, 7, 8, 9, 10
Tipus: Autònomes      
Preparació classes i Estudi personal 20 0,8 1, 2, 3, 4, 5, 6, 7, 9, 10
Resolució de casos pràctics (grupal) 22,5 0,9 1, 2, 3, 6, 7, 8, 9, 10
Resolució de problemes auto-avaluables (individual) 40 1,6 1, 2, 3, 6, 7, 9, 10

Avaluació

Procés i activitats d'avaluació programades

Es realitzen les següents activitats avaluables:

Activitat

Data

Recuperació

Percentatge Bloc

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

Resolució Problemes (P) Individual

Cada setmana

No

20%

No

Practica de Laboratori (PLg) Grupal

Consultar Planificació

Consultar Planificació

20%

PLg >= 5

Practica de Laboratori (PLi) individual

Consultar Planificació

Consultar Planificació

10%

PLi >= 5

La nota de cada final de l’assignatura és la suma ponderada de les activitats d’avaluació amb el seu percentatge corresponent. El resultat de la suma ponderada ha de ser >= 5 per considerar aprobada l’assignatura.

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 la activitat Resolució Problemes (P) Individual no es podrà recuperar.

Procediment de revisió de les qualificacions

Els estudiants tindran dret a la 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 de la pràctica de laboratori (PLg i PLi) no es realitzarà revisió perquè l’avaluació es realitza davant dels estudiants.

Qualificacions

No Avaluable (NA): Qualsevol alumne que lliuri una pràctica o una avaluació programada tindrà 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  (aplicar suma ponderada i 4,9)

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 atorgar fins a un 5% de MH del total d'estudiants matriculats. En el cas que el nombre d’estudiants amb nota superior o igual a 9 siguin més del 5%del total de matriculats, es prioritzà els estudiants segons les següents regles (en ordre):

  1. Estudiants que hagin fet 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 1, 2, i 5.
  3. Estudiants amb millor nota global.

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

Sense perjudici d'altres mesures disciplinàriesque 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 nota numè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 complert, no es guarda cap nota de cursos anteriors. 

Activitats d'avaluació

Títol Pes Hores ECTS Resultats d'aprenentatge
Examen Teoric Final (Tf) Individual 35% 2 0,08 1, 2, 3, 4, 5, 6, 7, 9, 10
Examen Teoric Parcial (Tp) Individual 15% 1 0,04 1, 2, 3, 4, 5, 6, 7, 9, 10
Practica de Laboratori (PLg) Grupal 20% 0,5 0,02 1, 2, 3, 5, 6, 7, 8, 10
Practica de Laboratori (PLi) individual 10% 0,5 0,02 1, 2, 3, 5, 7, 9, 10
Resolució Problemes (P) Individual 20% 0 0 1, 2, 3, 6, 7, 9, 10

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