Fonaments de programació Codi:  05.554    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   Objectius i competències   Continguts   Consulta dels recursos d'aprenentatge de la UOC per a l'assignatura   Informació addicional sobre els recursos d'aprenentatge i eines de suport   Informació addicional sobre la 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 per al segon semestre del curs 2023-2024. Podeu consultar 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.

Aquesta assignatura és el punt d'entrada a la programació. És una assignatura introductòria, en la que aprendreu els fonaments del disseny algorísmic i la programació en C.  

Amunt

Aquesta assignatura és el punt d'inici de les tècniques de programació. L'aprofundiment es farà cursant les assignatures següents del pla d'estudis:

  • Pràctiques de Programació
  • Disseny i Programació Orientada a Objectes.

El disseny algorísmic i la programació en llenguatge C permet adquirir uns coneixements pràctics imprescindibles a altres assignatures del grau.

Amunt

Si us dediqueu al desenvolupament de programari, no cal dir que la pràctica professional girarà principalment a l'entorn de l'aprenentatge adquirit en una sèrie d'assignatures, la primera de les quals és aquesta. Així doncs, aquesta assignatura ocupa una posició central en els estudis i en moltes de les seves sortides professionals.    

Amunt

L'assignatura no pressuposa cap coneixement previ de programació ni de cap altra assignatura d'aquests estudis. És convenient, però, tenir alguns coneixements fonamentals de matemàtiques.

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

L'objectiu general de l'assignatura és aprendre a dissenyar algorismes i programes que compleixin uns criteris bàsics de qualitat per a resoldre problemes de baixa complexitat.

Aquest objectiu general es concreta en els següents objectius concrets:

  1. Conèixer i assimilar els conceptes fonamentals de l'algorísmica mitjançant l'aprenentatge i comprensió de la sintaxi i semàntica d'una notació algorísmica.
  2. Posar en pràctica els conceptes i les tècniques de programació per tal que, a partir de l'enunciat d'un problema, es pugui dissenyar una solució algorísmica i implementar-ne el programa corresponent que el resolgui.
  3. Usar diferents tècniques de programació per a resoldre de manera més eficient problemes més complicats: la modularitat que permet resoldre'ls  descomponent-los en subproblemes més senzills i els esquemes algorísmics com una tècnica eficaç per construir algorismes a partir de solucions ja conegudes.
  4. Adquirir pràctica en l'aplicació dels conceptes anteriors en un entorn real de desenvolupament de programes i així, assolir un coneixement no tan sols conceptual sinó també pràctic de com escriure un programa, compilar-lo, muntar-lo i executar-lo.

 

Amunt

Introduirem el concepte de llenguatge algorismic o pseudocodi com una eina formal per dissenyar algoritmes, que poden ser traduits a qualsevol llenguatge de programació (en el nostre cas, C)

Algorísmica

  • Introducció a la programació

  • Tipus de dades:  bàsics (enter, real, caràcter, i booleà), estructurats (vectors, matrius, taules i tuples) i abstractes (pila, cua i llista)

  • Estructures de control: seqüencial, alternativa i iterativa

  • Esquemes algorísmics: recorregut i cerca

  • Modularitat

  • Recursivitat


Programació en C

  • Guia d'estil del llenguatge C

  • Guies de llenguatge C:

    • Tipus bàsics de dades

    • Operacions de canvi de tipus de dades

    • Cadenes de caràcters

    • Funcions d'entrada i sortida

    • Paràmetres d'entrada i sortida

    • Punters

  • Entorn de programació

    • Introducció a l'entorn de programació CodeLite

    • Modularitat en CodeLite

    • Corrector automàtic

Amunt

Material Suport
Materials de programació Web

Amunt

Als recursos de l'aula hi trobareu l'accés a la xWiki que conté tots els recursos que necessiteu: unitats de contingut, guies de programari i llenguatge C i orientacions per a fer les diferents activitats. 

Des de l'aula també s'accedeix al recull de qüestions freqüents (FAQ) que us serviran per trobar respostes ràpides a les preguntes més habituals i que és molt útil per a resoldre les PAC i la PR.

Finalment, des de l'espai de recursos de l'aula, accedireu a la Màquina Virtual (VM) que inclou el programari que necessiteu programar en C, i també el codi dels exemples de C de la xWiki.

Amunt

  • Dmitrovi, S. Programming in C, Fourth Edition. Apress, 2021. 0p. ISBN 9781484266434
  • Gonzalez-Morris, G. & Horton, I. Beginning C: From Beginner to Pro. Apress, 2020. 0p. ISBN 9781484259764
  • Kernighan, B.W. & Ritchie, D.M. The C programming language. Pearson IT Certification, 1988. 0p. ISBN 9780133086249
  • Prinz, P. & Kirch-Prinz, U. C Pocket Reference. O'Reilly Media, Inc., 2002. 0p. ISBN 9780596004361

Amunt

Per poder assolir els objectius proposats, durant tot el semestre anirem combinant l'estudi de la teoria de l'algorísmica (disseny d'algorismes) amb la pràctica de programació en C (codificació de programes).

En aquesta assignatura, molt més que en d'altres, l'assimilació dels conceptes i mètodes que li són propis depèn en gran manera de la realització continuada dels exercicis proposats i de practicar molt. Per aquest motiu, és molt important que cada setmana feu els exercicis de les unitats i que practiqueu amb els aspectes concrets del llenguatge i de l'entorn de programació.

Cada setmana us proposarem una activitat diferent, de tipus prova d'avaluació continua (PAC) o pràctica (PR). A la mateixa activitat trobareu enllaçats els recursos necessaris per a resoldre-la.

L'aprenentatge de la programació és eminentment pràctic i necessita d'un procés continuat i incremental. L'avaluació continuada (les PAC i les PR) serveix per a fer aquest aprenentatge incremental. 




Amunt

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 realitzats.

La manca d'autenticitat en l'autoria o d'originalitat de les proves d'avaluació; la còpia o el plagi; l'intent fraudulent d'obtenir un resultat acadèmic millor; la col·laboració, l'encobriment o l'afavoriment de la còpia, o la utilització de material, programari o dispositius no autoritzats durant l'avaluació, entre altres, són conductes irregulars en l'avaluació que poden tenir conseqüències acadèmiques i disciplinàries greus.

Aquestes conductes irregulars poden comportar el suspens (D/0) en les activitats avaluables que es defineixin en el pla docent -incloses les proves finals- o en la qualificació final de l'assignatura, sigui perquè s'han utilitzat materials, programari o dispositius no autoritzats durant les proves, com ara xarxes socials o cercadors d'informació a internet, perquè s'han copiat fragments de text d'una font externa (internet, apunts, llibres, articles, treballs o proves d'altres estudiants, etc.) sense la citació corresponent, o perquè s'ha dut a terme qualsevol altra conducta irregular.

Així mateix, i d'acord amb la normativa acadèmica, les conductes irregulars en l'avaluació també poden donar lloc a la incoació d'un procediment disciplinari i a l'aplicació, si escau, de la sanció que correspongui, de conformitat amb l'establert a la normativa de convivència de la UOC.

En el marc del procés d'avaluació, la UOC es reserva la potestat de:

  • Sol·licitar a l'estudiant que acrediti la seva identitat segons l'establert a la normativa acadèmica.
  • Sol·licitar a l'estudiant que acrediti l'autoria del seu treball al llarg de tot el procés d'avaluació, tant avaluació contínua com avaluació final, per mitjà d'una prova oral o els mitjans síncrons o asíncrons que estableixi la Universitat. Aquests mitjans tindran per objecte verificar els coneixements i les competències que garanteixin l'autoria; en cap cas no implicaran una segona avaluació. Si no és possible garantir l'autoria de l'estudiant, la prova serà qualificada amb D, en el cas de l'avaluació contínua, o amb un Suspens, en el cas de l'avaluació final.

    A aquests efectes, la UOC pot exigir a l'estudiant l'ús d'un micròfon, una càmera o altres eines durant l'avaluació; és responsabilitat de l'estudiant assegurar que aquests dispositius funcionen correctament.

Amunt

L'assignatura només es pot aprovar amb el seguiment i la superació de l'avaluació contínua (AC). La qualificació final de l'assignatura és la nota obtinguda a l'AC.


Ponderació de les qualificacions

Opció per superar l'assignatura: AC

Nota final d'assignatura: AC

Amunt

L'avaluació continuada (AC) consisteix en 7 Proves d'Avaluació Continuada (PAC) i 4 Pràctiques (PR).

Per aprovar aquest curs cal obtenir almenys un 40% a les notes de PACs i almenys un 50% a les PRs. No aprovareu l'assignatura si no obtingueu almenys aquestes notes.

Els enunciats de les diferents activitats s'aniran publicant al calendari de l'aula en la data prevista. Cal lliurar les activitats dins el termini indicat al  calendari establert. No s'acceptaran si es lliuren fora de termini.


Proves d'avaluació continuada (PAC)

En general, cada PAC constarà de dues parts:

  • Un qüestionari de disseny algorítmic 

  • Un petit exercici de programació en C.

Per tal que us avaluem la PAC és imprescindible haver fet l'exercici de programació en C (en cas que en tingui). 

Cada PAC contribuirà de la següent manera a la nota final de les PAC:

  • PAC 1 a 5: 17% cadascuna

  • PAC 6 i 7: 7% i 8% respectivament

Es necessari obtenir com a mínim un 40% a la nota mitjana de les PACs per aprobar la asignatura. 


Pràctiques (PR)

A partir d'un enunciat que planteja un problema concret a partir d'un context pràctic, caldrà dissenyar un algorisme que el resolgui i després codificar-lo en un programa C.

És obligatori lliurar totes les pràctiques i obtenir una nota final de pràctiques mínima de 50% per aprovar l'assignatura.

El pes de cada PR a la nota final de PR és el següent:

  • PR 1 a 3: 10%

  • PR 4: 70%

La nota final de curs es calcularà com es mostra a continuació:

AC = 30*PA + 70*PR


Frau o Plagi

És important tenir clar que el seguiment correcte de l'assignatura us compromet a fer les activitats proposades (PAC i Pràctiques) de manera individual, sense fer servir cap eina d'IA generativa i segons les indicacions que pauta aquest Pla Docent.

En cas que no sigui així, les activitats s'avaluaran amb una D o un 0 segons correspongui. En concret, en cas d'extrema similitud entre algun exercici d'alguna PAC/Pràctica de dos o més estudiants que desacrediti el fet d'haver-la realitzat individualment, la nota final d'AC/Pràctica serà una D per a tots ells, d'acord amb la normativa UOC de plagi ja indicada anteriorment.

Amunt

No hi ha cap prova d'avaluació final. 

La nota final de l'assignatura es calcula com s'explica a l'apartat Avaluació Continuada.


Amunt

De cadascuna de les activitats d'avaluació del curs (PAC 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 donen indicacions de millora.
Aquest feedback es rebrà mitjançant el mateix aplicatiu de lliurament en la data de publicació de les qualificacions de cada activitat.

Amunt