Algorithmics and Programming I

You are here

Credits
7.5
Types
Compulsory
Requirements
This subject has not requirements, but it has got previous capacities
Department
CS
The course presents the elements of a computer programming language and the algorithmic basis for working with scaled and structured data. During the course the knowledge will be acquired to deal with problems of small and medium complexity.

Teachers

Person in charge

  • Jordi Petit Silvestre ( )

Others

  • Jordi Cortadella Fortuny ( )

Weekly hours

Theory
3
Problems
0
Laboratory
2
Guided learning
0.5
Autonomous learning
7

Competences

Technical Competences

Technical competencies

  • CE2 - To be able to program solutions to engineering problems: Design efficient algorithmic solutions to a given computational problem, implement them in the form of a robust, structured and maintainable program, and check the validity of the solution.

Transversal Competences

Transversals

  • CT5 - Solvent use of information resources. Manage the acquisition, structuring, analysis and visualization of data and information in the field of specialty and critically evaluate the results of such management.
  • CT6 - Autonomous Learning. Detect deficiencies in one's own knowledge and overcome them through critical reflection and the choice of the best action to extend this knowledge.
  • CT7 - Third language. Know a third language, preferably English, with an adequate oral and written level and in line with the needs of graduates.

Basic

  • CB5 - That the students have developed those learning skills necessary to undertake later studies with a high degree of autonomy

Generic Technical Competences

Generic

  • CG1 - To design computer systems that integrate data of provenances and very diverse forms, create with them mathematical models, reason on these models and act accordingly, learning from experience.
  • CG2 - Choose and apply the most appropriate methods and techniques to a problem defined by data that represents a challenge for its volume, speed, variety or heterogeneity, including computer, mathematical, statistical and signal processing methods.
  • CG5 - To be able to draw on fundamental knowledge and sound work methodologies acquired during the studies to adapt to the new technological scenarios of the future.

Objectives

  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,

Contents

  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.

Activities

Activity Evaluation act


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.
Objectives: 1
Theory
6h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
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.
Objectives: 1
Theory
6h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
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.
Objectives: 1
Theory
6h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
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.
Objectives: 1
Theory
3h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
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.
Objectives: 1
Theory
6h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
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.
Objectives: 1
Theory
6h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
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.
Objectives: 1
Theory
6h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
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.
Objectives: 1
Theory
6h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
12h

Prova de laboratori



Week: 7 (Outside class hours)
Type: lab exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
3h

Prova de laboratori



Week: 15 (Outside class hours)
Type: final exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
2h

Prova de teoria



Week: 15 (Outside class hours)
Type: final exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
2h
Autonomous learning
10h

Teaching methodology

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.

Evaluation methodology

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

Bibliography

Basic:

Previous capacities

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

Addendum

Contents

NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT

Teaching methodology

NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT

Evaluation methodology

NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT

Contingency plan

En cas de suspensió de l'activitat docent presencial, les classes presencials es faran de forma no presencial síncrona utilitzant streaming i videoconferència.