Algorísmia i Programació I

Esteu aquí

Crèdits
7.5
Tipus
Obligatòria
Requisits
Aquesta assignatura no té requisits, però té capacitats prèvies
Departament
CS
El curs presenta els elements d'un llenguatge de programació de computadors i els fonaments bàsics d'algorísmia per treballar amb dades escalars i estructurades. Durant el curs s'adquiriran els coneixements per tractar problemes de càlcul de petita i mitjana complexitat.

Professors

Responsable

  • Jordi Petit Silvestre ( )

Altres

  • Jordi Cortadella Fortuny ( )

Hores setmanals

Teoria
3
Problemes
0
Laboratori
2
Aprenentatge dirigit
0.5
Aprenentatge autònom
7

Competències

Competències Tècniques

Competències tècniques

  • CE2 - Ser capaç de programar solucions a problemes d'enginyeria: Dissenyar solucions algorítmiques eficients a un problema computacional donat, implementar-les en forma de programari robust, estructurat i mantenible, i comprovar la validesa de la solució.

Competències Transversals

Transversals

  • CT5 - Ús solvent dels recursos d'informació. Gestionar l'adquisició, l'estructuració, l'anàlisi i la visualització de dades i informació en l'àmbit de l'especialitat i valorar de forma crítica els resultats d'aquesta gestió.
  • CT6 - Aprenentatge autònom. Detectar deficiències en el propi coneixement i superar-les mitjançant la reflexió crítica i l'elecció de la millor actuació per ampliar aquest coneixement.
  • CT7 - Tercera llengua. Conèixer una tercera llengua, preferentment l'anglès, amb un nivell adequat oral i escrit i d'acord amb les necessitats que tindran els titulats i titulades.

Bàsiques

  • CB5 - Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia

Competències Tècniques Generals

Genèriques

  • CG1 - Concebre sistemes computacionals que integren dades de procedències i formes molt diverses, construeixen amb ells models matemàtics, raonen sobre aquests models i actuen en conseqüència, aprenent de l'experiència.
  • CG2 - Elegir i aplicar els mètodes i tècniques més adequats a un problema definit per dades que representin un repte pel seu volum, velocitat, varietat o heterogeneïtat, inclosos mètodes informàtics, matemàtics, estadístics i de processament del senyal.
  • CG5 - Poder recórrer a coneixements fonamentals i metodologies de treball sòlides adquirits durant els estudis per adaptar-se als nous escenaris tecnològics del futur.

Objectius

  1. Ser capaç de resoldre problemes de càlcul de petita i mitjana complexitat utilitzant tècniques algorísmiques i de programació.
    Related competences: CB5, CT5, CT6, CT7, CE2, CG1, CG2, CG5,

Continguts

  1. Conceptes bàsics de programació.
    Introducció a conceptes bàsics de programació: algorisme, programa, variables, expressions, assignacions. Instruccions condicionals (if) i iteratives (while, for). Resolució de problemes amb dades escalars: màxim de dos nombres, nombres primers, màxim comú divisor.
  2. Funcions i recursivitat.
    Funcions: disseny i pas de paràmetres. Exemples de disseny de funcions. Disseny recursiu. Exemples de recursivitat simple (factorial, escriure la representació d'un nombre en binari). Exemples de recursivitat múltiple (Fibonacci, Hanoi).
  3. Vectors.
    Representació d'estructures de dades amb vectors. Algorismes de recorregut i cerca. Algorismes d'ordenació de vectors: inserció, sel.lecció i fusió. Anàlisi de la seva complexitat.
  4. Invariants i anàlisi de complexitat.
    Disseny i raonament de bucles amb invariants. Anàlisi de complexitat d'algorismes. Notació O Gran. Exemples d'anàlisi de complexitat amb iteracions i recursivitat.
  5. Matrius i tuples.
    Algorismes bàsics sobre matrius (suma, simètrica, transposada, multiplicació). Cerca en matrius. Tuples, disseny d'estructures de dades i exemples d'utilització.
  6. Càlculs amb nombres reals.
    Representació de nombres reals. Algorismes amb nombres reals: suma de sèries, mètode de Newton-Raphson, aproximació d'integrals definides. Polinomis: representació i operacions bàsiques.
  7. Algorismes bàsics de càlcul.
    Algorismes amb complexitat logarítmica (potència, Fibonacci). Algorismes geomètrics: puntes, rectes i poligons. Sistemes d'equacions: eliminació Gaussiana.
  8. Algorismes combinatoris.
    Generació de permutacions. Cicles en permutacions. Subseqüències que sumin una constant. Camins en una graella. Resolució d'un sudoku.

Activitats

Activitat Acte avaluatiu


Aprenentatge sobre conceptes bàsics de programació.

L'alumne assistirà a classe per adquirir els coneixements teòrics. Addicionalement haurà de consolidar aquests conceptes amb el seu estudi personal i amb la resolució dels problemes proposats a classes de laboratori.
Objectius: 1
Teoria
6h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Aprenentage sobre funcions i recursivitat.

L'alumne assistirà a classe per adquirir els coneixements teòrics. Addicionalement haurà de consolidar aquests conceptes amb el seu estudi personal i amb la resolució dels problemes proposats a classes de laboratori.
Objectius: 1
Teoria
6h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Aprenentatge sobre vectors.

L'alumne assistirà a classe per adquirir els coneixements teòrics. Addicionalement haurà de consolidar aquests conceptes amb el seu estudi personal i amb la resolució dels problemes proposats a classes de laboratori.
Objectius: 1
Teoria
6h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Aprenentatge sobre invariants i anàlisi de complexitat.

L'alumne assistirà a classe per adquirir els coneixements teòrics. Addicionalement haurà de consolidar aquests conceptes amb el seu estudi personal i amb la resolució dels problemes proposats a classes de laboratori.
Objectius: 1
Teoria
3h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Matrius i tuples.

L'alumne assistirà a classe per adquirir els coneixements teòrics. Addicionalement haurà de consolidar aquests conceptes amb el seu estudi personal i amb la resolució dels problemes proposats a classes de laboratori.
Objectius: 1
Teoria
6h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Càlculs amb nombres reals.

L'alumne assistirà a classe per adquirir els coneixements teòrics. Addicionalement haurà de consolidar aquests conceptes amb el seu estudi personal i amb la resolució dels problemes proposats a classes de laboratori.
Objectius: 1
Teoria
6h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Aprenentatge sobre algorismes bàsics de càlcul.

L'alumne assistirà a classe per adquirir els coneixements teòrics. Addicionalement haurà de consolidar aquests conceptes amb el seu estudi personal i amb la resolució dels problemes proposats a classes de laboratori.
Objectius: 1
Teoria
6h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Aprenentatge sobre algorismes combinatoris.

L'alumne assistirà a classe per adquirir els coneixements teòrics. Addicionalement haurà de consolidar aquests conceptes amb el seu estudi personal i amb la resolució dels problemes proposats a classes de laboratori.
Objectius: 1
Teoria
6h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Prova de laboratori



Setmana: 7 (Fora d'horari lectiu)
Tipus: examen de laboratori
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
3h

Prova de laboratori



Setmana: 15 (Fora d'horari lectiu)
Tipus: examen final
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
2h

Prova de teoria



Setmana: 15 (Fora d'horari lectiu)
Tipus: examen final
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
2h
Aprenentatge autònom
10h

Metodologia docent

Els continguts teòrics de l'assignatura s'imparteixen a les classes de teoria. Aquestes classes es complementen amb exemples pràctics i problemes que els estudiants han de resoldre en les hores d'Aprenentatge Autònom.

En les sessions de laboratori es consoliden els coneixements adquirits a les classes de teoria mitjançant la resolució de problemes de programació relacionats amb els continguts teòrics. Durant les classes de laboratori, el professor anirà introduint noves tècniques i deixarà una part important de la classe per tal que els estudiants treballin en els exercicis proposats.

Mètode d'avaluació

Hi ha dues proves que es fan al laboratori: una parcial (PL) i una final (FL). També hi ha un examen final escrit (FT).

La nota FINAL es calcula d'acord amb la fórmula:

0,6 max{0,3 PL + 0,7 FL, FL} + 0,4 FT.


La nota de REAVALUACIÓ es calcula d'acord amb la fórmula:

0,6 RL + 0,4 RT

on RL és la nota de de l'examen de laboratori a la reavaluació i RT és la nota de l'examen de teoria a la reavaluació.

Bibliografia

Bàsica:

Capacitats prèvies

Cal que l'estudiant tingui els coneixements sobre matemàtiques i raonament computacional adquirits a nivell de Batxillerat.