Programación Aplicada II

Usted está aquí

Créditos
6
Tipos
Obligatoria
Requisitos
Esta asignatura no tiene requisitos
Departamento
CS

Profesorado

Responsable

  • Alexis Molina Martinez de los Reyes ( )
  • Gabriel Valiente Feruglio ( )

Horas semanales

Teoría
2
Problemas
2
Laboratorio
0
Aprendizaje dirigido
0
Aprendizaje autónomo
6

Resultados de aprendizaje

Resultados de aprendizaje

Conocimientos

  • K3 - Identificar los fundamentos matemáticos, las teorías informáticas, los esquemas algorítmicos y los principios de organización de la información aplicables al modelado de sistemas biológicos y a la resolución eficiente de problemas bioinformáticos mediante el diseño de herramientas computacionales.
  • K4 - Integrar los conceptos ofrecidos por los lenguajes de programación de mayor uso en el ámbito de las Ciencias de la Vida para modelar y optimizar estructuras de datos y construir algoritmos eficientes, relacionándolos entre sí y con sus casos de aplicación.

Habilidades

  • S7 - Implementar métodos de programación y análisis de datos orientados a partir de la elaboración de hipótesis de trabajo, dentro del área de estudio.
  • S8 - Enfrentarse a la toma de decisiones, y defenderlas con argumentos, en la resolución de problemas de las áreas de biología, así como, dentro de los ámbitos adecuados, las ciencias de la salud, las ciencias de la computación y las ciencias experimentales.

Competencias

  • C6 - Detectar deficiencias en el propio conocimiento y superarlas mediante la reflexión crítica y la elección de la mejor actuación para ampliar este conocimiento.

Objetivos

  1. Understand iterative algorithms and their implementation in a modern programming language, and apply them to solve problems.
    Competencias relacionadas: C6, K3, K4, S7, S8,
  2. Understand recursive algorithms and their implementation in a modern programming language, and apply them to solve problems.
    Competencias relacionadas: C6, K3, K4, S7, S8,
  3. Compare solutions regarding time and memory use and choose the most appropriate solution.
    Competencias relacionadas: C6, K3, K4, S7, S8,

Contenidos

  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.

Actividades

Actividad Acto evaluativo


Introduction


Objetivos: 1
Contenidos:
Teoría
4h
Problemas
4h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
7.5h

Recursion


Objetivos: 2
Contenidos:
Teoría
6h
Problemas
6h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
22.5h

Object-oriented programming


Objetivos: 1 2
Contenidos:
Teoría
4h
Problemas
6h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
15h

Algorithm analysis


Objetivos: 3
Contenidos:
Teoría
4h
Problemas
4h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
15h

Divide and conquer


Objetivos: 1 2
Contenidos:
Teoría
2h
Problemas
4h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
7.5h

Dynamic programming


Objetivos: 1 2
Contenidos:
Teoría
6h
Problemas
6h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
22.5h

Mid-term exam



Semana: 7 (Fuera de horario lectivo)
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Final exam



Semana: 14 (Fuera de horario lectivo)
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Metodología docente

In the theoretical sessions, the lecturer will introduce algorithmic and programming concepts, combined with examples and problem-solving. In the problem-solving sessions, students will work on their own solving problems, under supervision and assistance of the lecturer.

Método de evaluación

There will be two exams: a mid-term exam and a final exam. The grade will be the largest of the final exam grade and the average of the mid-term grade and the final exam grade.

The students who do not pass the subject can take the reexamination exam. In this case, the final grade will be the one of this exam.

Bibliografía

Básica:

Complementaria: