Crèdits
7.5
Tipus
Obligatòria
Requisits
Aquesta assignatura no té requisits
, però té capacitats prèvies
Departament
CS
Professorat
Responsable
- Jordi Petit Silvestre ( jpetit@cs.upc.edu )
Altres
- David Garcia Soriano ( david.garcia.soriano@upc.edu )
- Emma Rollón Rico ( erollon@cs.upc.edu )
- Jordi Cortadella Fortuny ( jordi.cortadella@upc.edu )
- Juan Luis Esteban Ángeles ( esteban@cs.upc.edu )
Hores setmanals
Teoria
3
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
7.5
Competències
Competències tècniques
Transversals
Bàsiques
Genèriques
Objectius
Continguts
-
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. -
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). -
Vectors.
Representació d'estructures de dades amb llistes. Algorismes de recorregut i cerca. Algorismes d'ordenació de vectors: inserció, sel.lecció i fusió. Anàlisi de la seva complexitat. -
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. -
Més tipus de dades: matrius, estructures, conjunts, diccionaris.
Algorismes bàsics sobre matrius (suma, simètrica, transposada, multiplicació). Ús d'estructures de dades i exemples d'utilització. -
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. -
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. -
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'alumnat 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'alumnat 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)
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Prova de laboratori
Setmana: 15 (Fora d'horari lectiu)
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Prova de teoria
Setmana: 15 (Fora d'horari lectiu)
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
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 professorat 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àsic
-
Problem solving with C++
- Savitch, W. J,
Pearson,
2018.
ISBN: 9780134448282
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004158189706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Programming in the 1990s : an introduction to the calculation of programs
- Cohen, Edward,
Springer-Verlag,
1990.
ISBN: 0387973826
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000428229706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Introduction to programming
- Cortadella, Jordi,
UPC. Dep of Computer Science,
2016.
http://www.cs.upc.edu/~jordicf/Teaching/FME/Informatica/
Web links
- El Jutge https://jutge.org
- Lliçons https://lliçons.jutge.org