Informació general


Tipus d'assignatura: Bàsica

Coordinador:

Trimestre: Primer trimestre

Crèdits: 6

Professorat: 

Catalina Juan Nadal
Enric Sesa Nogueras 
Enric Sesa Nogueras 

Competències


Competències bàsiques
  • B2_Que els estudiants sàpiguen aplicar els seus coneixements a la seva feina o vocació d'una forma professional i tinguin les comptències que demostren mitjançant l'elaboració i defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi

Competències específiques
  • EFB3_Capacitat per comprendre i dominar els conceptes bàsics de matemàtica discreta, lògica, algorítmica i complexitat computacional, i la seva aplicació per a la resolució de problemes propis de l'enginyeria

  • EFB4_Coneixements bàsics sobre l'ús i programació dels ordinadors, sistemes operatius, bases de dades i programes informàtics amb aplicació a l'enginyeria

Competències transversals
  • T1_Que els estudiants coneixin un tercer idioma, que serà preferentment l'anglès, amb un nivell adequat de forma oral i per escrit, d'acord amb les necessitats que tindran les graduades i els graduats a cada titulació

Descripció


L'assignatura de Fonaments de la Programació pertany a la matèria de la Programació i és la primera dins d'aquesta àrea. Els diversos temes tractats en l'assignatura estan pensats per capacitar als estudiants en l'aprenentatge dels conceptes bàsics dins de la programació. Aquests conceptes es necessitaran en la resta d'assignatures dins d'aquesta mateixa matèria i també en posteriors assignatures dins del grau.

Aquesta assignatura disposa de recursos metodològics i digitals per fer possible la seva continuïtat en modalitat no presencial en el cas de ser necessari per motius relacionats amb la Covid-19. D'aquesta forma s'assegurarà l'assoliment dels mateixos coneixements i competències que s'especifiquen en aquest pla docent.

 

Resultats d'aprenentatge


A nivell general, aquesta assignatura contribueix als següents resultats d'aprenentatge especificats per a la matèria a la qual pertany (Algorísmica i

Programació)

  • Construir algorismes correctes i eficients per a problemes de dificultat baixa.
  • Implementar algorismes senzills en un llenguatge de programació imperatiu de referència per al nivell inicial.
  • Identificar les solucions algorísmiques més escaients per a resoldre problemes de dificultat baixa.
  • Raonar sobre la correcció i l'eficiència d'una solució algorísmica.
  • Dissenyar, escriure, provar, depurar, documentar i mantenir codi en un llenguatge d'alt nivell per a resoldre problemes de programació aplicant esquemes algorísmics i usant estructures de dades.
  • Usar les eines d'un entorn de desenvolupament de software per a crear i desenvolupar aplicacions.
  • Aplicar tècniques bàsiques de descomposició modular de programes.
  • Demostrar coneixement i comprensió de fets essencials, conceptes, principis i teories relatives a la informàtica i a les seves disciplines de referència.

A un nivell més concret, en acabar l’assignatura l’estudiant o estudianta ha de ser capaç de:

  • RA1: Escriure programes simples que fan ús d'estructures seqüencials i/o condicionals,  codificar-los en un llenguatge de programació imperatiu i d'alt nivell, provar-los i depurar-los.
  • RA2: Escriure programes que fan ús  d'estructures iteratives,  codificar-los en un llenguatge de programació imperatiu i d'alt nivell, provar-los i depurar-los. Cal seleccionar els esquemes algorísmics més adients.
  • RA3: Escriure programes que usin la tècnica de descomposició funcional que permeten dividir-lo en subproblemes més simples, codificar-los en un llenguatge d'alt nivell imperatiu, provar-los i depurar-los.
  • RA4: Escriure programes que usin les taules per emmagatzemar dades, codificar-los en un llenguatge d'alt nivell imperatiu, provar-los i depurar-los.

Metodologia de treball


Tots els conceptes teòrics de la matèria s'exposaran en classes de teoria (grups grans). En aquestes classes, i a discreció dels docents impartidors, també es resoldran exercicis i problemes de caire més pràctic. Així mateix i sempre a discreció dels impartidors, es podrà demanar als estudiants que resolguin, de manera individual o en grup, problemes i/o exercicis breus. Aquestes activitats, que per la seva naturalesa d'optativitat i brevetat no apareixen reflectides a la llista d'activitats, serviran a l'estudiant com a instrument d'autoavaluació del seu assoliment dels continguts de la matèria i podran ser utilitzades per part del docent per a prendre decisions sobre la qualificació final de l'estudiant bo i que mai en detriment de la qualificació numèrica calculada segons el sistema de qualificació abans indicat.

Els conceptes de caire més pràctic i tot el que en essència es pugui considerar l'aplicació pràctica dels conceptes teòrics seran treballats en grups petits (de laboratori). En les sessions que es programin a aquest efecte es donaran les eines escaients per a resoldre les activitats programades bo i que s'espera que aquestes s'allarguin des del punt de vista temporal més enllà de les hores de laboratori i que, en conseqüència, els estudiants les hagin de finalitzar durant el temps d'aprenentatge autònom.

Es posarà a disposició dels estudiants activitats de caire totalment opcional que l'ajudin a preparar i a preparar-se per a les de caire obligatori.

Aquest curs, a causa de la situació generada per la COVID, algunes de les sessions de grup gran es faran en format híbrid: presencial i en línia (via streaming). Això permetrà que els estudiants puguin anar rotativament a les classes presencials, respectant el màxim d'estudiants per aula que imposen les mesures de distanciament. Quan no els toqui sessió presencial podran seguir la classe en línia des de casa.

Pel que fa a les sessions de pràctiques a espais més reduïts (com laboratoris, estudis o plató), si s'escau es treballarà simultàniament en diversos espais per tal de garantir que es compleixen les condicions establertes pels protocols de seguretat.

Continguts


1.- INTRODUCCIÓ A L'ALGORÍSMICA I LA PROGRAMACIÓ

  • Algoritmes i programes
  • Llenguatges de programació
  • Entorn de programació
  • Procés de programació
  • Anatomia d’un programa simple

2.- CONCEPTES BÀSICS DE LA PROGRAMACIÓ IMPERATIVA

  • Variables i tipus
  • L’operador d’assignació
  • Expressions i avaluació d'expressions
  • Lectura i escriptura
  • Formes d'execució: seqüencial, condicional/alternativa i iterativa
  • Execució Condicional
  • Execució Alternativa

3.- ESTRUCTURES  ITERATIVES

  • Execució iterativa
  • Esquemes iteratius bàsics: recorreguts i cerques

4.- PARAMETRITZACIÓ

  • Procediments. Parametrització
  • Anatomia d’un procediment
  • Funcions. Tipus de funcions

5.- EL TIPUS TAULA

  • Taules i tipus estructurats
  • Variables d’una component i variables de múltiples components
  • Declaració, creació i emplenat de taules
  • Emplenaments de taules amb estructures iteratives
  • Les taules com a paràmetres
  • Taules bidimensionals
  • Declaració, creació i emplenat de taules bidimensionals
  • Emplenaments de taules bidimensionals amb estructures iteratives
  • Esquemes de cerca i recorreguts en taules

Activitats d'aprenentatge


Es posa a disposició dels estudiants tot un seguit d'activitats de caire eminentment pràctic (exercicis curts, problemes...) que són la base de les activitats d'aprenentatge de l'assignatura. Aquestes activitats els estudiants/es les hauran de resoldre, sovint de manera no presencial, seguint les indicacions dels docents i també seran treballades a classe, ja sia com a exemples en les sessions de teoria, ja sia en les sessions de laboratori. Si bé aquestes activitats tindran caràcter optatiu (els docents no en verificaran de manera individualitzada la realització per part dels estudiants), seran imprescindibles per assolir els coneixements teorico-pràctics de l'assignatura.

Amb l'objectiu de recollir evidència de l'assoliment dels resultats d'aprenentatge esperats es realitzaran les següents activitats de caràcter avaluatiu (cinc pràctiques i dos exàmens).

Les pràctiques podran ésser realitzades individualment o en grup de dos estudiants. En aquest darrer cas, no necessàriament, la qualificació dels dos membres del grup ha de ser la mateixa, es tindrà en compte el grau de participació de cadascun d'ells en la confecció de cadascuna de les pràctiques.

PRÀCTICA 1

En aquesta pràctica, els estudiants i estudiantes tenen un primer contacte amb l'entorn de desenvolupament de programes que hauran d'utilitzar en totes les  pràctiques i activitats de l'assignatura que estiguin relacionades amb la programació.

A la primera part, és el professor qui fa la presentació de l'entorn, mostrant-los aquells elements que els seran de més utilitat.

A la segona part, l'estudiant s'enfronta a la resolució de diversos problemes com ara:

  • finalitzar la codificació d'alguns programes senzills incomplets
  • codificar totalment alguns programes per a la resolució de problemes molt simples
  • detecció i correcció d'errades sintàctiques i lògiques en petits programes subministrats

En aquesta primera activitat, els estudiants i estudiantes aprenen a usar les opcions més bàsiques d’un programa informàtic, concretament d’un entorn de programació, que mitjançant un llenguatge de programació els hi permetrà codificar els problemes demanats a les sessions de pràctiques i activitats de l’assignatura. Així com avanci l’assignatura  l’estudiant  i estudiantes aprendran més funcions del programa informàtic, aprofundint en les parts necessàries per desenvolupar el temari de l’assignatura. L’estudiant i estudiantes han de comprendre i entendre tot el procés de programació que es porta a terme quan s’usa un entorn de programació.

L’entorn de programació ja està instal·lat als ordinadors dels laboratoris, per tant els estudiants i estudiantes l’usaran directament sense cap mena d‘instal·lació, però se’ls demana que se’l instal·lin als seus ordinadors per poder treballar les diferents activitats fora del laboratori. La instal·lació els porta a seleccionar diferents opcions (sistema operatiu, versions, .. ) lligades amb l’ordinador on es fa la instal·lació.

La realització d'aquesta activitat contribueix a l'assoliment del resultat d'aprenentatge RA1.

PRÀCTICA 2

Aquesta pràctica està específicament destinada a que els estudiants i estudiantes practiquin la codificació i depuració de programes de naturalesa condicional i iterativa i que poden ser dissenyats aplicant els esquemes iteratius bàsics presentats a la classe de teoria. L'estudiant i estudiantes s'enfronten a la resolució de diversos problemes on s’han d’aplicar els conceptes de teoria treballats fins aleshores, aprofundint principalment a la lògica algorítmica necessària en l’escriptura de les condicions i estructures condicionals. Els estudiants i estudiantes han d’aplicar diferents estructures condicionals, usant les més adients en cada cas, sempre prenent consciència de la importància del factor de l’eficiència algorítmica.

En cada pràctica, s’incorpora alguna funció més de l’entorn de programació, l’estudiant i estudiantes han de prendre consciencia de la magnitud i possibilitats de l’eina usada i usar-les quan el demanat s’hi ajusti.

Els problemes que s’han resoldre hauran estat posats a disposició dels estudiants i estudiantes amb anterioritat a la realització de la sessió de laboratori, amb el doble objectiu, que coneguin els problemes que seran tractats i que n'hagin començat a dissenyar les solucions.

La realització d'aquesta activitat contribueix a l'assoliment dels resultats d'aprenentatge RA1 i RA2. 

PRÀCTICA 3

Aquesta pràctica està específicament destinada a que els estudiants i estudiantes practiquin la codificació i depuració de programes lleugerament més complexes que els de les dues pràctiques anteriors, fent ús de les tècniques de descomposició funcional que permeten de descompondre un problema en subproblemes més simples, la solució als quals pot ser codificada amb l'ajut de procediments parametritzats.

L'estudiant i estudiantes s'enfronten a la resolució de diversos problemes on s’han d’aplicar els conceptes de teoria treballats fins aleshores, aprofundint principalment a la lògica algorítmica necessària en l’escriptura d’estructures iteratives. Els estudiants i estudiantes s’ajudaran dels esquemes algorítmics treballats a classe de teoria que els garanteixen de fer implementacions correctes i més eficients.

Els problemes que s’han de resoldre hauran estat posats a disposició dels estudiants i estudiantes amb anterioritat a la realització de la sessió de laboratori, amb el doble objectiu, que coneguin els problemes que seran tractats i que n'hagin començat a dissenyar les solucions.

La realització d'aquesta activitat contribueix a l'assoliment dels resultats d'aprenentatge RA1, RA2 i RA3. 

PRÀCTICA 4

En aquesta pràctica, els estudiants i estudiantes hauran de codificar i depurar programes que, potencialment, poden requerir de tots els estris i mecanismes treballats en els continguts teòrics treballats fins aleshores (conceptes bàsics de la programació imperativa). Així doncs, el caràcter d'aquesta pràctica pot ser de síntesi de les anteriors i/o fer èmfasi en els darrers aspectes teòrics vistos a classe i que encara no hagin estat treballats en la seva vessant pràctica. L’estudiant, amb la resolució dels exercicis d’aquesta activitat,  prendrà consciència de la importància del reaprofitament del codi, escriure’l una única vegada i usar-lo tants cops com es vulgui.

Els problemes que s’han de resoldre hauran estat posats a disposició dels estudiants i estudiantes amb anterioritat a la realització de la sessió de laboratori, amb el doble objectiu, que coneguin els problemes que seran tractats i que n'hagin començat a dissenyar les solucions.

La realització d'aquesta activitat contribueix a l'assoliment dels resultats d'aprenentatge RA1, RA2 i RA3. 

PRÀCTICA 5

En aquesta pràctica, els estudiants i estudiantes han de codificar i depurar programes que, potencialment, poden requerir a més de tots els estris i mecanismes treballats en les pràctiques anteriors, el darrer contingut de l’assignatura, les taules. L’estudiant i estudiantes, amb la resolució dels exercicis d’aquesta activitat, treballarà amb magatzems de dades que li permeten mitjançant l’ús dels esquemes algorísmics treballats a teoria, fer tractaments de les dades de la taula de forma iterativa.

Els problemes que s’han de resoldre hauran estat posats a disposició dels estudiants i estudiantes amb anterioritat a la realització de la sessió de laboratori, amb el doble objectiu, que coneguin els problemes que seran tractats i que n'hagin començat a dissenyar les solucions.

La realització d'aquesta activitat contribueix a l'assoliment dels resultats d'aprenentatge RA1, RA2, RA3 i RA4. 

A nivell competencial les cinc pràctiques, que majoritàriament s’hauran de desenvolupar en temps no presencial, cobreixen les següents competències comunes i específiques de l’assignatura (entre parèntesi els aspectes més rellevants de cada competència als quals contribueix):

  • CIN1 (desenvolupar programari)
  • CIN3 (hàbits de treball efectius en els entorns de desenvolupament de software)
  • CIN6 (aplicar procediments algorísmics)
  • EFB3 (comprendre i dominar els conceptes de l’algorísmica) i
  • EFB4 (ús de programes informàtics)

 

PROVA ESCRITA I

Aquesta activitat avaluarà de forma individualitzada els tres o quatre primers continguts de l'assignatura. Avaluarà els resultats d'aprenentatge RA1, RA2 i RA3. Aquest darrer resultat  serà o no avaluat en aquesta activitat depenen de si s'ha treballat o no suficient en la data establerta per aquesta activitat.

PROVA ESCRITA II

Aquesta segona prova escrita, avaluarà tots els continguts de l'assignatura. Avaluant així tots els resultats d'aprenentatge de l'assignatura: RA1, RA2, RA3 i RA4. Com aquesta activitat també avalua els dos primers resultats, si l'estudiant no supera la prova escrita I, es considerarà únicament aquesta prova escrita II.

A nivell competencial aquestes dues proves, cobreixen les següents competències comunes i específiques de l’assignatura:

  • CIN1 (desenvolupar programari)
  • CIN6 (aplicar procediments algorísmics)
  • EFB3 (comprendre i dominar els conceptes de l’algorísmica i la seva aplicació per a resolució de problemes)

Per tal de superar (aprovar) les activitats avaluatives, els estudiants hauran de demostrar

  • Que han adquirit els coneixements teòrics relatius als continguts de l’assignatura i que la seva comprensió els permet de portar-los a la pràctica [MECES-2 punt a, punt c]
  • Que poden desenvolupar solucions a problemes que, si bé són semblants a d’altres vistos anteriorment, presenten aspectes que són nous [MECES-2 punt f]

En relació a la competència bàsica assignada a l’assignatura, aquesta queda coberta especialment pel que fa als aspectes que s’expliciten:

  • B2: resolució de problemes dins de la seva àrea d’estudi.

Finalment, i pel que fa  a la competència transversal associada a l'assignatura (T1: coneixement tercera llengua) aquesta es treballa a partir de les fonts documentals que els estudiants han de consultar, atès que totes elles es troben en anglès.

 

Normes de realització de les activitats

Per a cada activitat, els docents n'informaran de les normes i condicions particulars que les regeixin.

Les activitats unipersonals pressuposen el compromís de l'estudiant de realitzar-les de manera individual. Es consideraran suspeses totes aquelles activitats en què l'estudiant no s'ajusti a aquest compromís, independentment del seu paper (origen o destí).

Igualment, les activitats que s'hagin de realitzar en grups pressuposen el compromís per part dels estudiants que l'integren de realitzar-les en el si del grup. Es consideraran suspeses totes aquelles activitats en què el grup no hagi respectat aquest compromís amb independència del seu paper (origen o destí).

En les activitats realitzades en grup el docent pot, en base a la informació de què disposi, personalitzar la qualificació per a cada integrant del grup.

Qualsevol activitat no lliurada es considerarà puntuada amb zero punts.

És potestatiu dels docents acceptar o no lliuraments fora dels terminis que s'indiquin. En el cas que aquests lliuraments fora de termini s'acceptin, és potestatiu del docent decidir si aplica alguna penalització i la quantia d'aquesta.

Sistema d'avaluació


La qualificació final és la suma ponderada de les qualificacions de les següents activitats:

ACTIVITAT    PES

PROVA ESCRITA I   15%

PROVA ESCRITA II   50%

PRACTICA 1   5%

PRACTICA 2   6%

PRACTICA 3   6%

PRACTICA 4   8%

PRÀCTICA 5   10%

Amb les ponderacions anteriors, les activitats de laboratori (pràctiques) tenen un pes del 35%, les activitats de caire teòric tenen un pes del 65%.

Per aprovar l'assignatura és necessari que l'estudiant:

  • com a mínim, hagi lliurat tres pràctiques, i què,
  • la qualificació mínima de tres de les pràctiques lliurades ha de ser 4.

Si no es donen aquestes premisses l'assignatura quedarà suspesa i en aquest cas sense possibilitat de recuperar-la.

Si la qualificació de la PROVA ESCRITA II té una qualificació  inferior a 4 la qualificació final de l’assignatura serà la d’aquesta activitat. L'assignatura quedarà suspesa, amb possibilitat de recuperació.

En el cas que fos favorable per a l'estudiant, la ponderació 15% + 50% de les dues proves escrites podria canviar-se per 0% + 65%.

La recuperació només possibilita recuperar la qualificació de les activitats teòriques, PROVA ESCRITA I i II, i sempre que aquesta nova qualificació no sigui inferior a 4 s’aplicarà la mateixa ponderació descrita anteriorment. En cas contrari l’assignatura no es considerarà recuperada.

Bibliografia


Bàsic

Sesa Nogueras, Enric (2010). Programació: Notes de classe i exercicis. Publicació interna de l’EUPMT.

Juan Nadal, Lina. Programació: Notes de classe i exercicis. Publicació interna de l'ESUPT.