Logo UAB
2020/2021

Fonaments de Programació

Codi: 102154 Crèdits: 6
Titulació Tipus Curs Semestre
2501232 Empresa i Tecnologia FB 1 2
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:
Roger Malet Munté
Correu electrònic:
Roger.Malet@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

Equip docent

Marc Vallribera Ros

Prerequisits

Per poder seguir correctament aquesta assignatura calen uns coneixements previs d'algoritmica i resolució de problemes. Aquests coneixements s'assoleixen a l'assignatura "Introducció a la Resolució de Problemes i Disseny d'Algorismes" (102151), que es dona al primer semestre i que dona els mecanismes necessaris per saber afrontar els problemes que s'hauran de resoldre mitjançant la programació en un llenguatge d'alt nivell.

Objectius

Els objectius d'aquesta assignatura són els d’introduir els conceptes bàsics de la programació d'aplicacions informàtiques per resoldre problemes que es poden donar en l'àmbit empresarial. La idea d'aquest curs és poder implementar algorismes en un llenguatge de programació per tal de poder generar solucions finals que resolguin problemes concrets i automatitzar certs processos informàtics que es donen a l'entorn de les empreses. A més, entendre el procés de generació d'aplicacions ha de permetre una major comprensió dels processos informàtics més complexes que es donen en aquest mateix àmbit.

Així, els objectius formatius de l'assignatura es poden resumir en:

  • Entendre i utilitzar les estructures bàsiques de la programació estructurada
  • Implementar algorismes en un llenguatge de programació d'alt nivell

 

Tema 1: Introducció
•    Objectiu:
•    Introduir la forma en que els ordinadors processen la informació, el paper  dels llenguatges de programació i el procés de desenvolupar aplicacions.
•    Contingut:
1.    Ordinadors i algorismes: Processament de la informació
2.    Llenguatges de programació i programes
3.    Desenvolupament de software amb l’ordinador
4.    Emmagatzemament de la informació en l’ordinador
Tema 2: Iniciació a la programació en C
•    Objectiu:
•    Primer contacte amb un llenguatge de programació, el C, i les seves característiques principals.
•    Contingut:
1.    El meu primer programa en C
2.    Elements de C
3.    Les dades en C
4.    Les variables
5.    Operant amb dades
6.    L’entrada/sortida
7.    Exemples
Tema 3: Estructures de control
•    Objectiu:
•    Introducció a les estructures que permeten a un programa en C prendre decisions i aplicar algorismes bàsics.
•    Contingut:
1.    Estructura general d'un programa: estructures de control
2.    Estructures seqüència
3.    Estructures de selecció (if, else, switch)
4.    Estructures d’iteració (while, do_while, for)
5.    Les instruccions break i continue
6.    Més sobrel’operador increment/decrement
7.    Exemples
Tema 4: Programació estructurada
•    Objectiu:
•    Introducció a les estructures que permeten organitzar el codi en C per que les aplicacions siguin llegibles i escalables.
•    Contingut:
1.    Programació estructurada i modular
2.    Procediments i funcions
3.    Funcions
4.    Procediments
5.    Variables i pas de paràmetres
6.    La recursivitat
7.    Exemples
Tema 5: Vectors (arrays): Llistes i taules
•    Objectiu:
•    Estudi dels elements que permeten crear llistes i taules d’elements en el llenguatge C.
•    Contingut:
1.    Introducció
2.    Vectors (llistes)
3.    Cadenes (llistes) de caràcters
4.    Matrius
5.    Pas de paràmetres
6.    Operant amb vectors (llistes)
7.    Exemples
Tema 6: Estructures
•    Objectiu:
•    Introducció als tipus de dades definits pel programador, que ajuden a crear tipus més complexes que els que defineix el propi llenguatge C.
•    Contingut:
1.    Introducció a les estructures (registres)
2.    Niació d’estructures
3.    Pas d’estructures
4.    Exemples
Tema 7: L’apuntador
•    Objectiu:
•    Estudi dels apuntadors, o variables que contenen la direcció de memòria d’una altra variable.
•    Contingut:
1.    Introducció a l'apuntador
2.    L’apuntador en arrays
3.    Arrays d’apuntadors
4.    Apuntadors d’apuntadors
5.    L’apuntador en el pas de paràmetres
6.    L’apuntador en estructures
7.    Aritmètica d’apuntadors
8.    Exemples
Tema 8: Fitxers
•    Objectiu:
•    Introducció als mecanismes que permeten tractar fitxers en C.
•    Contingut:
1.    Introducció
2.    Escriptura de fitxers
3.    Lectura de fitxers
4.    Funcions i opcions de lectura/escriptura
5.    Fitxers d’accés aleatori
6.    Pas d’arguments pel nom de programa
Tema 9: Introducció a la programació orientada a objectes (O.O.)
•    Objectiu:
•    Introducció al paradigma de programació que veu un programa com a una sèrie d’objectes o entitats que es relacionen entre ells.
•    Contingut:
1.    Què és la programació O.O.?
2.    Característiques de la programació O.O.
3.    Classe i instància
4.    Com escriure una classe en C++
5.    Exemples

Competències

  • Demostrar motivació per la qualitat en els objectius i en el desenvolupament del treball.
  • Ser capaç d'analitzar i de sintetitzar, d'organitzar, de planificar, de resoldre problemes i de prendre decisions.
  • Treballar en equip, compartint els coneixements i sabent-los comunicar a la resta de l'equip i l'organització.
  • Trobar solucions algorítmiques i utilitzar les eines de programació adequades per implementar-les en l'entorn d'una organització.

Resultats d'aprenentatge

  1. Codificar l'algoritme, utilitzant les estructures de programació estructurada.
  2. Demostrar motivació per la qualitat en els objectius i en el desenvolupament del treball.
  3. Plantejar l'algoritme més eficient per resoldre un problema.
  4. Proposar solucions basades en programació orientada a objectes.
  5. Ser capaç d'analitzar i de sintetitzar, d'organitzar, de planificar, de resoldre problemes i de prendre decisions.
  6. Treballar en equip, compartint els coneixements i sabent-los comunicar a la resta de l'equip i l'organització.
  7. Utilitzar les estructures bàsiques de programació estructurada.

Continguts

Tema 1: Introducció

•    Objectiu:

Introduir la forma en que els ordinadors processen la informació, el paper dels llenguatges de programació i el procés de desenvolupar aplicacions.

•    Contingut:

1.1.    Ordinadors i algorismes: Processament de la informació
1.2.    Llenguatges de programació i programes
1.3.    Desenvolupament de software amb l’ordinador
1.4.    Emmagatzemament de la informació en l’ordinador

Tema 2: Iniciació a la programació en C#

•    Objectiu:

Primer contacte amb un llenguatge de programació, i les seves característiques principals.

•    Contingut:

2.1.    El meu primer programa
2.2.    Elements del llenguatge de programació
2.3.    Les dades el llenguatge de programació
2.4.    Les variables
2.5.    Operant amb dades
2.6.    L’entrada/sortida
2.7.    Exemples

Tema 3: Estructures de control

•    Objectiu:

Introducció a les estructures que permeten a un programa prendre decisions i aplicar algorismes bàsics.

•    Contingut:

3.1.    Estructura general d'un programa: estructures de control
3.2.    Estructures seqüència
3.3.    Estructures de selecció
3.4.    Estructures d’iteració
3.5.    Més sobre l’operador increment/decrement
3.6.    Exemples

Tema 4: Programació estructurada

•    Objectiu:

Introducció a les estructures que permeten organitzar el codi per que les aplicacions siguin llegibles i escalables.

•    Contingut:

4.1.    Programació estructurada i modular
4.2.    Procediments i funcions
4.3.    Funcions
4.4.    Procediments
4.5.    Variables i pas de paràmetres
4.6.    La recursivitat
4.7.    Exemples

Tema 5: Vectors (arrays): Llistes i taules

•    Objectiu:

Estudi dels elements que permeten crear llistes i taules d’elements en el llenguatge C#.

•    Contingut:

5.1.    Introducció
5.2.    Vectors (llistes)
5.3.    Cadenes (llistes) de caràcters
5.4.    Matrius
5.5.    Pas de paràmetres
5.6.    Operant amb vectors (llistes)
5.7.    Exemples

Tema 6: Estructures

•    Objectiu:

Introducció als tipus de dades definits pel programador, que ajuden a crear tipus més complexes que els que defineix el propi llenguatge C.

•    Contingut:

6.1.    Introducció a les estructures (registres)
6.2.    Nidació d’estructures
6.3.    Pas d’estructures
6.4.    Exemples

Tema 7: Fitxers

•    Objectiu:

Introducció als mecanismes que permeten tractar fitxers en C#.

•    Contingut:

7.1.    Introducció
7.2.    Escriptura de fitxers
7.3.    Lectura de fitxers
7.4.    Funcions i opcions de lectura/escriptura
7.5.    Fitxers d’accés aleatori
7.6.    Pas d’arguments pel nom de programa

Tema 8: Introducció a la programació orientada a objectes (O.O.)

•    Objectiu:

Introducció al paradigma de programació que veu un programa com a una sèrie d’objectes o entitats que es relacionen entre ells.

•    Contingut:

8.1.    Què és la programació O.O.?
8.2.    Característiques de la programació O.O.
8.3.    Classe i instància
8.4.    Exemples

 

Metodologia

La metodologia docent estarà basada en tres tipus d'activitat:

  • Activitat dirigida: classes teòriques, pràctiques i de anàlisi de problemes
  • Activitat supervisada: assistència a tutories i realització d'execicis amb seguiment pautat
  • Activitat autònoma: part d'estudi de l'alumne i resolució de casos, individualment o en grup

Cal tenir en compte que la metodologia docent proposada pot experimentar alguna modificació en funció de les restriccions a la presencialitat que imposin les autoritats sanitàries.

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.

Activitats formatives

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Classes de problemes 10 0,4 1, 3, 4, 5, 6, 7
Classes teòriques 28 1,12 1, 3, 4, 5, 7
Sessions presencials de laboratori 10 0,4 1, 3, 4, 5, 6, 7
Tipus: Supervisades      
Tutories 15 0,6 1, 3, 4, 5, 7
Tipus: Autònomes      
Preparació i resolució d'exercicis i pràctiques 83 3,32 1, 3, 4, 5, 6, 7

Avaluació

L'avaluació del curs es farà de forma continuada, mitjançant exàmens, problemes relacionats amb les classes de teoria i treballs específics de les sessions de laboratori. El pes de cada un dels components serà:

  • 30% pel conjunt de les notes de pràctiques,
  • 10% els exercicis proposats a classe individualment o per grups,
  • 25% el primer examen, que s’efectuarà cap a la meitat del semestre, i
  • 35% el segon examen, que s’efectuarà a final de semestre, en la data fixada per la Facultat.  Els estudiants que hagin obtingut al primer examen una qualificació mínima de 5 poden optar per realitzar una prova substitutòria addicional a l’aula d’informàtica, en la data que es fixarà oportunament, i que coincidirà amb la setmana final de classes.

L'estudiant superarà l'assignatura si assoleix una nota mínima de 5.0 en la mitjana ponderada de les notes obtingudes a les activitats descrites anteriorment. Per poder fer la mitjana, s’hauran de complir les següents condicions:

  • Caldrà haver entregat totes les pràctiques, i haver-hi obtingut una nota mínima de 5.
  • La mitjana ponderada dels exàmens ha de superar el 4.

Els estudiants que en l'avaluació final hagin obtingut una nota superior al 3,5 però que no arribin al 5 tindran dret a una recuperació, en els termes que es descriuen més avall.

Un alumne es considerarà "no avaluable" a l'assignatura quan no hagi participat de cap de les activitats d'avaluació.

 

Calendari d’activitats d’avaluació

Les dates de les diferents activitats d'avaluació (exercicis, lliurament de treballs, ...) s'anunciaran amb suficient antelació durant elsemestre.

Les dates de les proves parcial i final de l'assignatura estan programades en el calendari d'exàmens de la Facultat.

"La programació de les proves d’avaluació no es podrà modificar, tret que hi hagi un motiu excepcional i degudament justificat pel qual no es pugui realitzar un acte d’avaluació. En aquest cas, les persones responsables de les titulacions, prèvia consulta al professorat i a l’estudiantat afectat, proposaran una nova programació dins del període lectiu corresponent."  Apartat 1 de l'Article 115. Calendari de les activitats d’avaluació (Normativa Acadèmica UAB)  

Els i les estudiants de la Facultat d'Economia i Empresa que, d'acord amb el paràgraf anterior, necessitin canviar una data d'avaluació han de presentar la petició omplint el document Sol·licitud reprogramació prova que trobaran a https://eformularis.uab.cat/group/deganat_feie/reprogramacio-proves

 

Procediment de revisió de les qualificacions

Coincidint amb l'examen final s'anunciarà el dia i el mitjà en que es publicaran les qualificacions finals. De la mateixa manera s'informarà del procediment, lloc, data i hora de la revisió de les mateixes d'acord amb la normativa de la Universitat.

 

Procés de Recuperació

“Per participar al procés de recuperació l'alumnat ha d'haver estat prèviament avaluat en un conjunt d'activitats que representi un mínim de dues terceres parts de la qualificaciótotal de l'assignatura o mòdul.” Apartat 3 de l'Article 112 ter. La recuperació (Normativa Acadèmica UAB). Els i les estudiants han haver obtingut una qualificació mitjana de l’assignatura entre 3,5 i 4,9.

La data d’aquesta prova està programada en el calendari d'exàmens de la Facultat. L'estudiant que es presenti i la superi aprovarà l'assignatura amb una nota de 5. En cas contrari mantindrà la mateixa nota.

 

Irregularitats en actes d’avaluació  

Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, i d'acord amb la normativa acadèmica vigent, "en cas que l’estudiant realitzi qualsevol irregularitat que pugui conduir a una variació significativa de la qualificació d’un acte d’avaluació, es qualificarà amb 0 aquest acte d’avaluació, amb independència del procés disciplinari que s’hi pugui instruir. En cas que es produeixin diverses irregularitats en els actes d’avaluació d’una mateixa assignatura, la qualificació final d’aquesta assignatura serà 0".  Apartat 10 de l'Article 116. Resultats del'avaluació. (Normativa Acadèmica UAB)

 

Nota addicional: L'avaluació proposada pot experimentar alguna modificació en funció de les restriccions a la presencialitat que imposin les autoritats sanitàries.

 

Activitats d'avaluació

Títol Pes Hores ECTS Resultats d'aprenentatge
Entregues de les sessions de pràctiques 30% 0 0 1, 2, 3, 4, 5, 6, 7
Exercicis proposats a classe 10% 0 0 1, 3, 4, 5, 6, 7
Primer examen parcial 25% 2 0,08 1, 3, 4, 5, 7
Segon examen parcial 35% 2 0,08 1, 3, 7

Bibliografia

“La Bíblia de C #”, Ferguson, B. Patterson, J. Beres, P. Boutquin, M. Gupta, Anaya Multimedia

“Algoritmos + Estructura de datos = Programas”, Niklaus Wirth, Ediciones del Castillo, Madrid – 1986

Referència online del llenguatge C#:  http://www.csharpya.com.ar/https://msdn.microsoft.com/en-us/library/aa288436(v=vs.71).aspx

 

Programari