Vés al contingut

Programació Aplicada II

Crèdits
6
Tipus
Obligatòria
Requisits
Aquesta assignatura no té requisits , però té capacitats prèvies
Departament
CS

Professorat

Responsable

Hores setmanals

Teoria
2
Problemes
2
Laboratori
0
Aprenentatge dirigit
0
Aprenentatge autònom
6

Competències

Coneixements

  • K3 - Identificar els fonaments matemàtics, les teories informàtiques, els esquemes algorísmics i els principis d'organització de la informació aplicables al modelat de sistemes biològics i a la resolució eficient de problemes bioinformàtics mitjançant el disseny d'eines computacionals.
  • K4 - Integrar els conceptes oferts pels llenguatges de programació de major ús en l'àmbit de les Ciències de la Vida per a modelar i optimitzar estructures de dades i construir algorismes eficients, relacionant-los entre sí i amb els seus casos d'aplicació.
  • Habilitats

  • S7 - Implementar mètodes de programació i anàlisi de dades a partir de l'elaboració d'hipòtesis de treball, dins de l'àrea d'estudi.
  • S8 - Enfrontar-se a la presa de decisions, i defensar-les amb arguments, en la resolució de problemes de les àrees de biologia, així com, dins dels àmbits adequats, les ciències de la salut, les ciències de la computació i les ciències experimentals.
  • Competències

  • C6 - Detectar deficiències en el propi coneixement i superar-les mitjançant la reflexió crítica i l'elecció de la millor actuació per a ampliar aquest coneixement.
  • Objectius

    1. Comprendre els algorismes iteratius i la seva implementació en un llenguatge de programació modern i aplicar-los per resoldre problemes.
      Competències relacionades: C6, K3, K4, S7, S8,
    2. Comprendre els algorismes recursius i la seva implementació en un llenguatge de programació modern i aplicar-los per resoldre problemes.
      Competències relacionades: C6, K3, K4, S7, S8,
    3. Comparar solucions pel que fa al temps i l'ús de memòria i triar la solució més adequada.
      Competències relacionades: C6, K3, K4, S7, S8,

    Continguts

    1. Introduction
      Introduction. Recapitulation of Applied Programming 1. Introduction to Python. Functions, scoping, and abstraction. Structured types and mutability.
    2. Recursion
      Recursion. Recursive design. Simple recursion. Multiple recursion. Tail recursion. Tail recursion elimination. Examples.
    3. Object-oriented programming
      Introduction to object-oriented programming. Abstract data types, classes, and methods. Encapsulation, inheritance, shadowing. Examples.
    4. Algorithm analysis
      Algorithm analysis. Cost in time and space. Worst, best, and average case. Asymptotic notation. Analysis of the cost of iterative algorithms. Analysis of the cost of recursive algorithms. Recurrences. Solution methods. Examples.
    5. Divide and conquer
      Divide and conquer. Principles: partition into subproblems, recombination of solutions. Examples.
    6. Dynamic programming
      Dynamic programming. Principles: partition into overlapping subproblems, memoization, tabulation. Top-down dynamic programming. Bottom-up dynamic programming. Examples.

    Activitats

    Activitat Acte avaluatiu


    Introducció


    Objectius: 1
    Continguts:
    Teoria
    4h
    Problemes
    4h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    7.5h

    Recursió


    Objectius: 2
    Continguts:
    Teoria
    6h
    Problemes
    6h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    22.5h

    Programació orientada a objectes


    Objectius: 1 2
    Continguts:
    Teoria
    4h
    Problemes
    6h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    15h

    Anàlisi d'algorismes


    Objectius: 3
    Continguts:
    Teoria
    4h
    Problemes
    4h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    15h

    Dividir i vèncer


    Objectius: 1 2
    Continguts:
    Teoria
    2h
    Problemes
    4h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    7.5h

    Programació dinàmica


    Objectius: 1 2
    Continguts:
    Teoria
    6h
    Problemes
    6h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    22.5h

    Examen parcial



    Setmana: 7 (Fora d'horari lectiu)
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    Examen final



    Setmana: 14 (Fora d'horari lectiu)
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    Metodologia docent

    A les sessions teòriques, el professor introduirà conceptes algorísmics i de programació, combinats amb exemples i resolució de problemes. En les sessions de resolució de problemes, els estudiants treballaran la seva pròpia resolució de problemes, sota la supervisió i assistència del professor.

    Mètode d'avaluació

    Hi haurà dos exàmens: un examen parcial i un examen final. La nota serà la més gran de la nota de l'examen final i la mitjana de la nota de l'examen parcial i la nota de l'examen final.

    Els estudiants que suspenen l'assignatura poden fer l'examen de reavaluació. En aquest cas, la nota de l'assignatura serà la nota de l'examen de reavaluació.

    Bibliografia

    Bàsic

    Complementari