Ir a cuerpo Ir a Estudios, Gobernanza y organización
Logo UA
Realizar búsqueda
Guías docentes
 

33709 - PROGRAMACIÓN II (2015-16)

Datos generales  

Código: 33709
Profesor/a responsable:
CORBI BELLOT, ANTONIO MIGUEL
Crdts. ECTS: 6,00
Créditos teóricos: 1,20
Créditos prácticos: 1,20
Carga no presencial: 3,60

Departamentos con docencia

Estudios en los que se imparte



Competencias y objetivos

Contexto de la asignatura para el curso 2015-16

Nos encontramos ante una asignatura de primer curso y del segundo semestre. Va precedida en el primer semestre por la asignatura "Programación-I" en la cual se estudian los fundamentos básicos de la programación y va seguido en tercer curso en el segundo semestre por la asignatura "Algoritmia" en la cual se enseña al alumno los conceptos de complejidad temporal y espacial asi como el concepto de esquema algorítmico.

 

 

Competencias de la asignatura (verificadas por ANECA en grados y másteres oficiales)

Competencias específicas (CE)

  • CE5 : Interpretar el funcionamiento del código fuente de un programa. Definir los tipos de datos necesarios para la representación de la información. Diseñar algoritmos y codificarlos con distintas técnicas de programación, especialmente en sistemas robóticos. Verificar el correcto funcionamiento de un programa.

 

Competencias Transversales

  • CT1 : Capacidades informáticas e informacionales.
  • CT2 : Ser capaz de comunicarse correctamente tanto de forma oral como escrita.
  • CT3 : Capacidad de análisis y síntesis.
  • CT4 : Capacidad de organización y planificación.

 

Competencia exclusiva de la asignatura

Sin datos

Resultados de aprendizaje (Objetivos formativos)

  • Estudiar detalladamente los requerimientos de un problema e identificar los objetivos y sus dependencias.
  • Diseñar programas de tamaño medio aplicando las técnicas y esquemas necesarios para la obtención de un algoritmo adecuado.
  • Desarrollar la capacidad de abstracción y de generalización para buscar soluciones alternativas en el diseño de un programa.
  • Identificar los tipos de datos necesarios para la resolución de un problema y dividir adecuadamente un programa en funciones.
  • Identificar las alternativas más eficientes para reducir el coste computacional.
  • Desarrollar programas con un estilo de programación adecuado, comprensible y eficiente.
  • Desarrollar capacidad crítica para la verificación del algoritmo con todos los casos posibles de entradas de datos.
  • Saber programar bajo el paradigma orientado a objetos en el desarrollo de aplicaciones, identificando posibles estrategias de solución a problemas con conceptos como la herencia, el polimorfismo o la genericidad.

Objetivos específicos indicados por el profesorado para el curso 2015-16

  • Saber qué es un Tipo Abstracto de Dato (TAD)
  • Conocer los TAD básicos: listas, pilas, colas; así como TAD más complejos como Arboles y Grafos.
  • Conocer el paradigma orientado a objetos y saber aplicarlo en las aplicaciones desarrolladas.
  • Conocer y aplicar correctamente las relaciones entre objetos y entre clases.
  • Aprender a usar correctamente el enlace dinámico de métodos así como el uso de excepciones.
  • Aprender el concepto de patrón de diseño software. Aprender a usar el patrón RAII.
  • Estudiar el concepto de genericidad así como saber aplicarlo. Conocer la idea de metaprogramación.
  • Aprender a comparar la implementación del paradigma orientado a objetos en diversos lenguajes de programación.
  • Aprender a usar el paradigma orientado a objetos con lenguajes no orientados a objetos.
  • Conocer y saber usar mecanismos de paso de tests.

Contenidos y bibliografía

Contenidos para el curso 2015-16

Tema 1: Organización de la memoria. Tipos Abstractos de Datos

El lenguaje de programación C++ (C++98, C++11, C++14). Gestión y uso de memoria basada en la pila (stack), en almacenamiento global y en almacenamiento dinámico. Introducción a los Tipos Abstractos de Datos (TADs).

Tema 2: Tipos Abstractos de Datos: Listas (simples, dobles), Pilas, Colas

Definición. Operaciones básicas. Diferentes implementaciones.

Tema 3: Tipos Abstractos de Datos: Árboles, Grafos

Definición. Operaciones básicas. Diferentes implementaciones. Tipos de árboles. Tipos de grafos.

Tema 4: El paradigma orientado a objetos. Características básicas de los lenguajes orientados a objetos

Presentación y justificación del modelo de programación orientado a objetos. Requisitos para que un lenguaje se considere orientado a objetos. C++ como lenguaje orientado a objetos.

Tema 5: Clases y objetos. Espacios de nombres.

Definición del concepto de clase y del concepto de objeto. Diferentes tipos de clases (abstractas, metaclases, interfaces, etc…). Concepto de espacio de nombres. Agrupación de símbolos en espacios de nombres. Variables de clase, de instancia. Métodos de clase, de instancia.

Tema 6: Relaciones entre objetos. Herencia. Polimorfismo

Tipos de relaciones entre objetos en ausencia de herencia (uso, composición). Concepto de herencia entre clases. Herencia de implementación y herencia de interfaz. Relación ‘Es un’ entre objetos. Concepto de polimorfismo. Tipos de herencia (simple, múltiple).

Tema 7: Enlace dinámico

Implicaciones de la herencia entre clases y la relación ‘Es un’ entre objetos. Qué es el enlace dinámico. Ventajas e inconvenientes. Cómo influye en el diseño de lenguajes orientados a objetos (virtual, final).

Tema 8: Excepciones. Patrón RAII

Tratamiento de errores bajo el paradigma orientado a objetos. Qué es una excepción, Jerarquía de clases de excepciones. Cómo influye en el diseño de lenguajes orientados a objetos (try, throw, catch, finally). Patrón de diseño RAII y tratamiento de excepciones.

Tema 9: Genericidad

Concepto de genericidad. Diferentes tipos de genericidad. Concepto de metaprogramación, casos prácticos.

Tema 10: Estudio de diversos lenguajes de programación orientados a objetos

Cómo implementan diferentes lenguajes de programación las características explicadas hasta ahora. Java, C#, D, Python, etc...

Tema 11: POO con lenguajes no orientados a objetos

Usando sólo el lenguaje ‘C’ simularemos la herencia de clases, paso de mensajes, enlace dinámico y variables de clase.

Tema 12: Pruebas unitarias

Aprenderemos a pasar tests de forma sistemática a nuestro código. Automatización con el uso de CTest (CMake).

 

Enlaces relacionados

Sin datos

 

Bibliografía

Touch of class : learning to program well with objects and contracts
Autor(es): Meyer, Bertrand
Edición: Berlin : Springer, 2013;
ISBN: 978-3-54092-144-8
Categoría: Básico

The nature of code
Autor(es): Shiffman, Daniel
Edición: - : Daniel Shiffman, 2012;
ISBN: 978-0-9859308-0-6
Categoría: Complementario

Programming : principles and practice using C++
Autor(es): Stroustrup, Bjarne
Edición: Upper Saddle River, NJ : Addison-Wesley Professional, 2014;
ISBN: 0-13-379675-2 (libro e.)
Categoría: Básico

Mastering Cmake
Autor(es): Martin, Ken ; Hoffman, Bill
Edición: New York : Kitware, 2013;
ISBN: 978-1-930934-26-9
Categoría: Complementario

The algorithm design manual
Autor(es): Skiena, Steven S.
Edición: New York : Springer, 2020;
ISBN: 3-030-54256-4 (libro e.)
Categoría: Básico

A tour of C++
Autor(es): Stroustrup, Bjarne
Edición: - : Addison-Wesley, 2018;
ISBN: 0-13-499805-7 (libro e.)
Categoría: Básico

Introduction to algorithms
Autor(es): Cormen, Thomas H.
Edición: Cambridge : MIT Press, 2009;
ISBN: 978-0-262-03384-8
Categoría: Básico

The C++ Programming Language
Autor(es): Stroustrup, Bjarne
Edición: - : Addison-Wesley Professional, 2013;
ISBN: 0-13-352285-7 (libro e.)
Categoría: Básico

Evaluación

Instrumentos y criterios de evaluación 2015-16

  1. Prácticas ordenador (I): Tres prácticas. Con nota entre 0 y 10 puntos cada una. En la nota final la nota de la práctica 1 tendrá un peso del 5%, la práctica 2 del 5% y la práctica 3 del 10%. No se exigirá ninguna nota mínima para superar la asignatura respecto de esta actividad de evaluación. Parte NO recuperable.
  2. Primera prueba conocimientos: Al inicio de la clase de la semana 8. Un examen tipo test que comprenderá la materia explicada hasta ese momento. El profesor deberá realizarla durante sus horas de clase. Tendrá una nota entre 0 y 10 puntos. Esta nota tendrá un peso del 30% en la formación de la nota final. No se podrá aprobar la asignatura si en dicho control no se obtiene al menos un 4, aunque la nota final del alumno sea superior a 5. Parte SÍ recuperable.
  3. Prácticas con ordenador (II): Tres prácticas. Con nota entre 0 y 10 puntos cada una. En la nota final la nota de cada práctica tendrá un peso del 10%. No se exigirá ninguna nota mínima para superar la asignatura respecto de esta actividad de evaluación. Parte NO recuperable.
  4. Segunda prueba de conocimientos: Se hará durante las tres semanas siguientes a la finalización de las clases, en la fecha oficial asignada por la escuela politécnica. Examen tipo test sobre la materia explicada en la segunda mitad del semestre. Con nota entre 0 y 10 puntos. Esta nota tendrá un peso del 20% en la nota final. No se podrá aprobar la asignatura si en dicho control no se obtiene al menos un 4, aunque la nota final del alumno sea superior a 5. Parte SÍ recuperable.
  • La asignatura se considera aprobada si la suma de las notas 1, 2, 3 y 4 es >= 5.0.
  • La asistencia a las sesiones prácticas es obligatoria.

Sistema de evaluación que se aplicará en la convocatoria de diciembre: Un examen tipo test que comprenderá la materia explicada en toda la asignatura (el peso de su puntuación será el mismo que el de ambas pruebas de conocimientos descritas previamente) y un examen tipo test que comprenderá los conocimientos adquiridos a lo largo de todas las prácticas con ordenador hechas durante toda la asignatura (el peso de su puntuación será el mismo que el de las prácticas descritas previamente).

 

Descripción Criterio Tipo Ponderación
Prácticas con ordenador (II)

Tres prácticas. Con nota entre 0 y 10 puntos cada una. En la nota final la nota de cada práctica tendrá un peso del 10%. No se exigirá ninguna nota mínima para superar la asignatura respecto de esta actividad de evaluación. Parte NO recuperable.

ACTIVIDADES DE EVALUACIÓN DURANTE EL SEMESTRE 30
Prácticas ordenador (I)

Tres prácticas. Con nota entre 0 y 10 puntos cada una. En la nota final la nota de la práctica 1 tendrá un peso del 5%, la práctica 2 del 5% y la práctica 3 del 10%. No se exigirá ninguna nota mínima para superar la asignatura respecto de esta actividad de evaluación. Parte NO recuperable.

ACTIVIDADES DE EVALUACIÓN DURANTE EL SEMESTRE 20
Primera prueba conocimientos

Al inicio de la clase de la semana 8. Un examen tipo test que comprenderá la materia explicada hasta ese momento. El profesor deberá realizarla durante sus horas de clase. Tendrá una nota entre 0 y 10 puntos. Esta nota tendrá un peso del 30% en la formación de la nota final. No se podrá aprobar la asignatura si en dicho control no se obtiene al menos un 4, aunque la nota final del alumno sea superior a 5. Parte SÍ recuperable.

ACTIVIDADES DE EVALUACIÓN DURANTE EL SEMESTRE 30
Segunda prueba de conocimientos

Se hará durante las tres semanas siguientes a la finalización de las clases, en la fecha oficial asignada por la escuela politécnica. Examen tipo test sobre la materia explicada en la segunda mitad del semestre. Con nota entre 0 y 10 puntos. Esta nota tendrá un peso del 20% en la nota final. No se podrá aprobar la asignatura si en dicho control no se obtiene al menos un 4, aunque la nota final del alumno sea superior a 5. Parte SÍ recuperable.

ACTIVIDADES DE EVALUACIÓN DURANTE EL SEMESTRE 20

 

Fechas de pruebas de evaluación oficiales para el curso 2015-16

Convocatoria Fecha Hora Grupo - Aula(s) asignada(s) Observaciones
(C3) Periodo ordinario para asignaturas de segundo semestre y anuales 10/06/2016 09:00 - 12:00 A2/C11 
(C4) Pruebas extraordinarias para asignaturas de grado y máster 13/07/2016 08:30 - 11:30 A2/C23 

 

 



Profesorado

CORBI BELLOT, ANTONIO MIGUEL
Profesor/a responsable

  • CLASE TEÓRICA: Grupos:
    • 1
  • PRÁCTICAS CON ORDENADOR: Grupos:
    • 1
    • 2

 

Grupos

CLASE TEÓRICA

Grupo Semestre Turno Idioma Matriculados
Gr. 1 (CLASE TEÓRICA) : GRUPO 1 2S Mañana CAS 61


PRÁCTICAS CON ORDENADOR

Grupo Semestre Turno Idioma Matriculados
Gr. 1 (PRÁCTICAS CON ORDENADOR) : GRUPO 1 2S Mañana CAS 30
Gr. 2 (PRÁCTICAS CON ORDENADOR) : GRUPO 2 2S Mañana CAS 31




Horarios

CLASE TEÓRICA

Grupo Fecha inicio Fecha fin Día Hora inicio Hora fin Aula
1 27/01/2016 20/05/2016 MIE 11:00 13:00 A2/B12  

PRÁCTICAS CON ORDENADOR

Grupo Fecha inicio Fecha fin Día Hora inicio Hora fin Aula
1 27/01/2016 20/05/2016 MAR 13:00 15:00 0016P2002  
2 27/01/2016 20/05/2016 MIE 13:00 15:00 0016P2002