Pràctiques de programació Codi:  05.555    Crèdits:  6
Consulta de les dades generals   Descripció   L'assignatura en el conjunt del pla d'estudis   Camps professionals en què es projecta   Coneixements previs   Informació prèvia a la matrícula   Objectius i competències   Continguts   Consulta dels recursos d'aprenentatge de què disposa l'assignatura   Recursos d'aprenentatge i eines de suport   Bibliografia i fonts d'informació   Metodologia   Informació sobre l'avaluació a la UOC   Consulta del model d'avaluació   Avaluació continuada   Avaluació final   Feedback  
Aquest és el pla docent de l'assignatura. Us servirà per planificar la matrícula (consulteu si l'assignatura s'ofereix aquest semestre a l'espai del Campus Més UOC / La Universitat / Plans d'estudis). Un cop comenci la docència, heu de consultar-lo a l'aula. El pla docent pot estar subjecte a canvis.
En l'assignatura de Fonaments de Programació heu adquirit els conceptes bàsics de programació dins del paradigma clàssic o procedimental. En aquesta assignatura es busca ajudar a l'estudiant a acabar d'assimilar aquests conceptes bàsics de programació, aprofundint en alguns d'ells.
Fins a aquest moment, els problemes proposats es podien resoldre amb la utilització de les eines i conceptes teòrics explicats en els mòduls de teoria, seguint unes guies de bones pràctiques de programació. L'objectiu final de l'estudiant era l'obtenció d'un codi que resolgués el problema. En la resolució de problemes reals, però, l'obtenció de solucions informàtiques per resoldre problemes concrets és una tasca d'enginyeria, on la creativitat i perícia del programador pot ser la diferència entre arribar a una solució o que el projecte fracassi.
No existeixen receptes màgiques per a trobar solucions factibles a tots els problemes als que un programador es pot enfrontar al llarg de la seva vida professional. La única manera de que l'estudiant desenvolupi les capacitats d'abstracció de problemes i plantejament eficient de solucions, és mitjançant la creació dels seus propis mecanismes, cosa que només s'aconsegueix amb la pràctica. Per tant, aquesta serà una assignatura majoritàriament pràctica, on l'estudiant haurà d'afrontar problemes més complexes i tenir en compte aspectes d'optimització del codi per trobar solucions que no només funcionin, sinó que també siguin eficients en termes de velocitat i d'utilització de la memòria.
Seguint amb el que s'ha iniciat a l'assignatura de Fonaments de Programació, aquesta assignatura utilitzarà el llenguatge de programació C per tal de codificar les solucions als problemes proposats.

Amunt

Aquesta assignatura aprofundeix en els conceptes introduïts en l'assignatura Fonaments de Programació, i per tant es dona per assolit tot el seu temari. Donat que els conceptes introduïts en aquesta assignatura es recolzen en els conceptes bàsics de programació, si l'estudiant accedeix a aquesta assignatura sense haver assimilat els coneixements bàsics de Fonaments de Programació necessitarà molt més temps per a resoldre les tasques proposades, trobant-se amb una dificultat molt major per entendre els mòduls.
És important que al final de l'assignatura l'estudiant hagi assolit un alt nivell de programació dins el paradigma clàssic, donat que en successius semestres s'introduirà la programació dins el paradigma de la programació Orientada a Objecte, dins l'assignatura de Disseny i Programació Orientada a l'Objecte.

Amunt

L'assoliment d'un bon nivell d'algorísmica i programació és la base per a l'exercici professional dins de l'àmbit del desenvolupament d'aplicacions informàtiques, i en la majoria de les tasques que requereixen automatització de processos o simulació d'esdeveniments. A més a més, la capacitat d'abstracció a l'hora de resoldre un problema en la programació, resulta de gran utilitat en altres aspectes de la vida professional dels enginyers, creant bons hàbits de treball i una correcta estructuració i organització de les tasques.
A més a més, el llenguatge de programació C utilitzat en les pràctiques de l'assignatura és un llenguatge que s'utilitza àmpliament en tot tipus de problemes i àmbits, havent estat utilitzat com a font d'inspiració de molts altres llenguatges més moderns, el que us donarà la capacitat d'aprendre nous llenguatges de programació de forma senzilla.

Amunt

Els coneixements previs per a la realització de l'assignatura son els que s'especifiquen com a continguts a l'assignatura de Fonaments de Programació. En especial, cal tenir un bon coneixement en la formulació d'algoritmes i en les tècniques de programació estructurada. També és necessari tenir facilitat en la codificació d'algorismes en llenguatge C.

Amunt

Donat que aquesta assignatura és la continuació de Fonaments de Programació, es recomana tenir-la superada. En cas d'estudiants amb possibilitat de convalidar Fonaments de Programació, cal tenir en compte que per al correcte seguiment de Pràctiques de Programació cal disposar dels següents coneixements:

  • Conceptes bàsics de la programació estructurada
    • Flux d'un programa
    • Estructures de control condicional i iteratives
    • Modularitat: Definició i implementació d'accions i funcions
  • Tipus de dades
    • Tipus bàsics
    • Vectors i matrius
    • Tuples i taules
    • Tipus Abstractes de Dades bàsics (cues, piles i llistes)
    • Punters
  • Nocions de Recursivitat
  • Ús memòria dinàmica
  • Coneixement bàsic del llenguatge de programació C.

Com a estudiants de Pràctiques de Programació tindreu accés a tots els materials de Fonaments de Programació, però el temps de dedicació a l'assignatura i la seva dificultat será molt major en cas de no tenir nocions bàsiques d'aquests continguts.

Amunt

Competències dins del Grau

  • Capacitat de dissenyar i construir aplicacions informàtiques mitjançant tècniques de desenvolupament, integració i reutilització.
  • Coneixements bàsics sobre l'ús i la programació dels ordinadors, sistemes operatius, bases de dades i programes informàtics amb aplicació a l'enginyeria.

Objectius de l'assignatura

La competència central d'aquesta assignatura és que l'estudiant assoleixi la capacitat de dissenyar i construir aplicacions informàtiques mitjançant tècniques de desenvolupament, integració i reutilització.
L'assoliment d'aquesta competència requereix treballar en les següents competències específiques:
1)       Saber escriure i implementar un algorisme que satisfaci uns requeriments preestablerts aplicant la metodologia més adient.
2)       Saber calcular la complexitat d'un algoritme i ser capaç de comparar les eficiències de les diverses solucions possibles per resoldre un problema donat.
3)       Conèixer en profunditat els llenguatges i eines de programació (IDE) més actuals i populars.
4)       Conèixer els diferents mecanismes per executar una aplicació (Compiladors, intèrprets, etc.).
5)       Conèixer profundament els recursos existents per a depurar un programa.
6)       Saber implementar (codificar) qualsevol disseny de programari.
7)       Saber escollir la estructura modular i de dades necessària per tal de construir una aplicació informàtica.
8)       Ser capaç d'entendre algoritmes i programes escrits (en un llenguatge de programació concret) per altres persones, així com conèixer els algoritmes i components de biblioteques més acceptats per a problemes concrets (ex. Manipulació de dades, etc.).
9)       Conèixer les bones pràctiques de programació (tabulació, comentaris, documentació, política de noms, etc.).

Amunt

En aquesta assignatura es treballa en els següents blocs temàtics:
1)       Disseny descendent.
2)       Formalització d'algoritmes.
3)    Tiipus Abstractes de Dades
4)       Recursivitat.
5)       Tècniques d'anàlisi d'algoritmes (complexitat algorítmica i eficiència).
6)       Algoritmes de cerca i classificació (cerca lineal, cerca binària, mètode de la bombolla, ordenació per inserció, ordenació per selecció, etc...).
A nivell pràctic es veu:
1)       Introducció a les eines de programació: Entorn de desenvolupament (IDE), compilador, intèrpret i depurador.
2)       El llenguatge de programació C.
3)       Gestió de la memòria.
4)       Entrada i Sortida.
5)       Implementació d'algoritmes complexes.

Amunt

Material Suport
Estructures de dades bàsiques PDF
Màquina virtual Fonaments de programació / Máquina virtual fundamentos de programación Programari en línia
Materials de programació Web
Pràctiques de programació Web

Amunt

Aquesta assignatura utilitzarà com a font de referència principal:
  1. Materials de Programació: Materials en format web que contenen les informacions teòriques i exemples pràctics necessàris per al seguiment de l'assignatura.
Per alguns temes del curs d'utilitzarà el llibre "Manual d'Algorítmica", escrit per Jesús Bisbal Riera, i que trobareu a la bibliografia de l'assignatura. En aquest llibre trobareu les explicacions teòriques i exemples.

Als recursos de l'aula de laboratori trobareu:

  • Manual del llenguatge C: Manual bàsic de programació en C.
  • Guia d'estil de programació en C.

 

Amunt

Jesús Bisbal Riera. Manual d'Algorísmica. Recursivitat, complexitat, i disseny d'algorismes. Editorial UOC, 2009.

Amunt

El seguiment de l'assignatura es farà mitjançant la guia d'estudi, disponible en els materials web de l'assignatura. Aquesta guia indica per cada setmana quins continguts teòrics cal estudiar i quines activitats pràctiques s'han de realitzar.

Les activitats d'avaluació continuada contenen exercicis de caire més teòric, amb petits exercicis pràctics.

Les pràctiques consisteixen en la realització d'un projecte de programació de forma incremental.

Amunt

La Normativa acadèmica de la UOC disposa que el procés d'avaluació es fonamenta en el treball personal de l'estudiant i pressuposa l'autenticitat de l'autoria i l'originalitat dels exercicis fets.

La manca d'originalitat en l'autoria o el mal ús de les condicions en què es fa l'avaluació de l'assignatura és una infracció que pot tenir conseqüències acadèmiques greus.

Es qualificarà l'estudiant amb un suspens (D/0) si es detecta manca d'originalitat en l'autoria d'alguna activitat avaluable (pràctica, prova d'avaluació contínua (PAC) o final (PAF), o la que es defineixi al pla docent), sigui perquè ha utilitzat material o dispositius no autoritzats, sigui perquè ha copiat textualment d'internet, o ha copiat d'apunts, de materials, de manuals o d'articles (sense la citació corresponent), d'altres estudiants, o per qualsevol altra conducta irregular.

La qualificació de suspens (D/0) en les qualificacions finals d'avaluació contínua pot comportar l'obligació de fer l'examen presencial per a superar l'assignatura (si hi ha examen i si superar-lo és suficient per a superar l'assignatura segons indiqui el pla docent).

Quan aquesta mala conducta es produeixi durant la realització de les proves d'avaluació finals presencials, l'estudiant pot ser expulsat de l'aula, i l'examinador farà constar tots els elements i la informació relatius al cas.

D'altra banda, aquesta conducta pot donar lloc a la incoació d'un procediment disciplinari i l'aplicació, si escau, de la sanció que correspongui.

La UOC habilitarà els mecanismes que consideri oportuns per a vetllar per la qualitat de les seves titulacions i garantir l'excel·lència i la qualitat del seu model educatiu.

Amunt

Aquesta assignatura només es pot superar a partir de les activitats fetes al llarg del curs i la realització d'una prova de síntesi (PS). La combinació de la nota final de les activitats d'avaluació contínua (AC) i la qualificació final de les activitats pràctiques (Pr) dóna com a resultat la qualificació final d'avaluació contínua (FC: AC + Pr).

Per a tenir dret a fer la PS, la qualificació final d'avaluació contínua (FC) ha de ser igual o superior a 5. La nota final de l'assignatura s'obtindrà posteriorment creuant la nota de la PS amb la FC.

La fórmula d'acreditació de l'assignatura és la següent: (AC + Pr) + PS.


Ponderació de les qualificacions

Opció per superar l'assignatura: (AC+Pr) + PS

Final Continuada (FC)= (AC+Pr)

AC = 60 %

Pr = 40 %

Notes mínimes:

· Pr = 5

En cas de no assolir la nota mínima a la Pr, la nota obtinguda en la fórmula correspon a l'obtinguda a la Pr, o el que indiqui el model d'avaluació.


FC = 70 %

PS = 30%

Notes mínimes:

· PS = 3,5

Quan la nota obtinguda a la PS sigui inferior als mínims establerts per a cada fórmula, la qualificació final de l'assignatura serà la nota obtinguda a la PS.

Amunt

L'avaluació continuada constarà de 3 PACs obligatòries, les quals us introduiran els conceptes necessaris per realitzar les pràctiques. Per obtenir una nota de No Presentat, cal haver lliurat com a màxim una PAC, altrament s'obtindrà la qualificació corresponent al promig de qualificacions obtingudes a les PACs. La PAC 1 i la PAC 2 tenen un pes del 30% cadascuna, mentre que la PAC 3 té un pes del 40%. Les PACs no lliurades comptaran amb una qualificació de "D-zero".

També s'ha de realitzar una pràctica obligatòria, dividida en tres entregues (Pràctica1, Pràctica2 i Pràctica3). Es requereix obtenir una qualificació mínima de 5 a la nota final de pràctiques. Per obtenir una nota de No Presentat, cal haver lliurat com a màxim un dels lliuraments de Pràctiques, altrament s'obtindrà la qualificació corresponent al promig de qualificacions obtingudes als lliuraments efectuats, ponderant la nota segons els pesos següents:  Pràctica1[15%], Pràctica2[25%] i Pràctica3[60%]. Els lliuraments de Pràctiques no entregats comptaran amb una qualificació de "D-zero".

Per poder realitzar la Prova de Síntesi, cal tenir la nota mínima tant de l'AC com de la Pr.

Amunt

Model d'avaluació

El model de l'assignatura és (AC+Pr) + PS

 

L'assignatura es pot superar a partir de l'avaluació continuada (AC), la pràctica (Pr) i la prova de síntesi (PS).

Per a obtenir la nota final de l'assignatura cal seguir dos passos:

1r. pas:

FC = Nota AC i pràctica = 0,6* (Nota d'AC) + 0,4 * (Nota Pràctica).

Només es farà aquest càlcul si la nota de la pràctica és igual o superior a 5. Per poder realitzar la prova de síntesi, aquesta nota conjunta ha de ser igual o superior a 5. Si la nota de la pràctica és inferior a 5, l'assignatura està suspesa. Si la nota FC és inferior a 5, l'assignatura està suspesa.

 

2n. pas:

NFA = Nota Final Assignatura = 0,7 * (Nota d'AC i pràctica) + 0,3 * (Nota de la prova de síntesi).

Només es farà aquest càlcul si la nota de la prova de síntesi és igual o superior a 3,5. Si la nota de la prova de síntesis és inferior a 3,5, l'assignatura està suspesa.

Amunt

De cadascuna de les activitats d'avaluació del curs (PACs i Pràctiques), a més de les solucions publicades a l'agenda de l'aula, els estudiants en el llindar de l'aprovat (C+/C-), rebran un feedback personal en què es comenten els errors comesos i es donin indicacions de millora.

Aquest feedback es rebrà mitjançant el mateix aplicatiu de lliurament i registre d'AC en la data de publicació de les qualificacions de cada activitat.

Amunt