Datos Identificativos 2022/23
Asignatura (*) Programación II Código 614G01006
Titulación
Grao en Enxeñaría Informática
Descriptores Ciclo Periodo Curso Tipo Créditos
Grado 2º cuatrimestre
Primero Formación básica 6
Idioma
Castellano
Gallego
Inglés
Modalidad docente Presencial
Prerrequisitos
Departamento Ciencias da Computación e Tecnoloxías da Información
Computación
Coordinador/a
Vilares Ferro, Jesus
Correo electrónico
jesus.vilares@udc.es
Profesorado
Alonso Pardo, Miguel angel
Cabrero Canosa, Mariano Javier
Cancela Barizo, Brais
Gómez Rodríguez, Carlos
Guijarro Berdiñas, Berta M.
Hernandez Pereira, Elena Maria
Molinelli Barba, Jose Maria
Monroy Camafreita, Juan
Morán Fernández, Laura
Ordóñez Iglesias, Álvaro
Paz Ruza, Jorge
Pérez Sánchez, Beatriz
Sanchez Maroño, Noelia
Vilares Calvo, David
Vilares Ferro, Jesus
Zaramaeva , Olga
Correo electrónico
miguel.alonso@udc.es
mariano.cabrero@udc.es
brais.cancela@udc.es
carlos.gomez@udc.es
berta.guijarro@udc.es
elena.hernandez@udc.es
jose.molinelli@udc.es
juan.monroy@udc.es
laura.moranf@udc.es
alvaro.oiglesias@udc.es
j.ruza@udc.es
beatriz.perezs@udc.es
noelia.sanchez@udc.es
david.vilares@udc.es
jesus.vilares@udc.es
olga.zaramaeva@udc.es
Web http://campusvirtual.udc.gal
Descripción general A materia céntrase na programación con estruturas de datos dinámicas e complexas, tratadas baixo a óptica dos tipos de datos abstractos. Pertence ao bloque de materias de Linguaxes e Programación do Módulo de Formación Básica da titulación. Presenta unha forte interrelación coas materias do Módulo Común á Rama de Informática, sendo as relacións mais estreitas con Programación I, Bases de Datos, Algoritmos e Deseño Software. Tamén presenta certa relación co bloque temático de Matemáticas, especialmente coa materia Matemática Discreta. Respecto ao perfil profesional, moitas áreas da computación requiren a habilidade de traballar coas estruturas de datos que se estudan nesta materia que permitirá aos/as estudantes mellorar as súas habilidades como programadores/as.

Competencias del título
Código Competencias del título
A3 Capacidad para comprender y dominar los conceptos básicos de matemática discreta, lógica, algorítmica y complejidad computacional, y su aplicación para la resolución de problemas propios de la ingeniería.
A4 Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería.
B1 Capacidad de resolución de problemas
B3 Capacidad de análisis y síntesis
C3 Utilizar las herramientas básicas de las tecnologías de la información y las comunicaciones (TIC) necesarias para el ejercicio de su profesión y para el aprendizaje a lo largo de su vida.
C6 Valorar críticamente el conocimiento, la tecnología y la información disponible para resolver los problemas con los que deben enfrentarse.

Resultados de aprendizaje
Resultados de aprendizaje Competencias del título
Dominar los mecanismos de gestión dinámica de la memoria. A4
B1
C6
Conocer los mecanismos de abstracción en el diseño de estructuras de datos. A4
B1
B3
C3
C6
Construir especificaciones, diseñar el tipo abstracto a partir de ella, usar las estructuras de datos adecuadas. A3
A4
B1
B3
C3
C6
Usar las estructuras de datos adecuadas y programar los algoritmos de manipulación para solucionar problemas reales. A3
A4
B1
B3
C3
C6
Asumir la necesidad de una buena especificación y un buen diseño como pasos previos a la codificación. A4
B3
C6
Interiorizar las buenas prácticas de programación. A4
B3

Contenidos
Tema Subtema
Gestión dinámica da memoria Organización dea memoria de un programa.
Definición de variables de tipo puntero.
Reserva y destrucción dinámica de memoria.
Asignación y comparación de punteros.
Introducción a los Tipos Abstractos de Datos (TAD) La abstracción en programación: Concepto, Evolución a través de la historia de la programación, TAD y Programación orientada a objetos.
La modularidad en programación.
Tipos Abstractos de Datos: Definición y concepto, Diferencias entre tipo de dato, estructuras de datos y TAD, Construcción de un TAD, Ventajas de la abstracción de datos.
Listas Especificación informal del TAD Lista.
Implementaciones del TAD Lista.
TAD Lista ordenada: especificación e implementaciones.
Multilistas y listas multiordenadas: concepto, representaciones y usos.
Pilas Especificación informal del TAD Pila.
Implementaciones del TAD Pila.
Aplicaciones en computación.
Colas Especificación informal del TAD Cola.
Implementaciones del TAD Cola.
Variantes de las colas. Colas de prioridad.
Aplicaciones en computación.
Árbores Definición de árbol y terminología
TAD Árbol binario: Especificación informal, Implementación.
Recorridos de árboles.
Árboles de búsqueda Árboles binarios de búsqueda.
Árboles AVL.

Planificación
Metodologías / pruebas Competéncias Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Sesión magistral A3 A4 B1 B3 30 30 60
Solución de problemas A3 B1 B3 C6 10 14 24
Prácticas de laboratorio A4 B1 B3 C3 C6 20 26 46
Prueba objetiva A3 A4 B1 B3 3 15 18
 
Atención personalizada 2 0 2
 
(*)Los datos que aparecen en la tabla de planificación són de carácter orientativo, considerando la heterogeneidad de los alumnos

Metodologías
Metodologías Descripción
Sesión magistral Empleada en las clases presenciales de teoría. El profesorado realizará una breve descripción de los contenidos y los objetivos, con el fin de dotar al alumnado de una visión global de la materia. Además tratará de establecer interrelaciones con otros conceptos previamente adquiridos, de forma que se pueda establecer una línea temporal, y expondrá la bibliografía recomendada. Seguidamente pasará a desarrollar los contenidos teóricos.
Solución de problemas En las clases de problemas, se presentarán supuestos prácticos directamente relacionados con los conceptos teóricos. En un principio serán resueltos por el/a profesor/a para más tarde proponer la resolución de problemas por parte del alumnado, constituidos en grupos de trabajo.

Tanto en las clases de problemas como en los ejemplos mostrados durante las exposiciones teóricas, cuando estos impliquen el desarrollo de código o seudocódigo, este se realizará mostrando los sucesivos pasos del diseño descendente. Con esto pretendemos: la) que el alumnado se acostumbre al uso de este método, y b) evitar que se pierda nos detalles de sintaxis y las características particulares del lenguaje, en lugar de fijar su atención en la comprensión y diseño de la solución.

Como actividades para realizar fuera del aula, se formularán ejercicios adicionales que el alumnado deberá resolver y comentar/corregir con el/a profesor/la durante las horas de tutorías, colectivas y/o individuales. Se trata de fomentar la participación del alumnado y promover, en la medida del posible, el diálogo abierto y la valoración de soluciones.
Prácticas de laboratorio Las clases de prácticas consistirán en la realización de prácticas continuas e incrementales de programación sobre estructuras de datos en un lenguaje de alto nivel. Se impondrá una periodicidad en su entrega para fomentar el trabajo continuo. El enunciado de las prácticas, que se proporcionará con la suficiente antelación para que el alumnado lo lea con detenimiento y analice en profundidad, detallará el problema y las especificaciones, que deberán respetarse estrictamente. Posteriormente, la labor del profesorado será la de supervisar las sesiones de prácticas, solucionando dudas y corrigiendo errores de interpretación, malos hábitos de programación, etc.
Prueba objetiva Evaluación sumativa del/la estudiante mediante un examen final al término del cuatrimestre con el objetivo de que el alumnado pueda demostrar que adquirió los conocimientos necesarios de abstracción y diseño de TADs y se entrenó lo suficiente como para poseer las habilidades precisas para resolver supuestos prácticos que impliquen la aplicación de las dichas estructuras.

Atención personalizada
Metodologías
Solución de problemas
Prácticas de laboratorio
Prueba objetiva
Descripción
El desarrollo tanto de las clases magistrales como las de resolución de problemas y los laboratorios de prácticas se realizará atendiendo al progreso de los alumnos. El avance general de la clase se compaginará con una atención específica para dar un apoyo adicional o ampliar conocimientos.
Las prácticas de laboratorio se realizarán, en parte, como trabajo autónomo. Para su correcto desarrollo será necesario el seguimiento periódico para permitir aclarar los estudiantes errores de concepto lo más pronto posible y asegurar la calidad del trabajo.
En ambos casos, se utilizará Moodle para poner a disposición de los/las estudiantes "foros temáticos" que resuelvan las dudas generales detectadas ligadas a actividades específicas como las prácticas o problemas propuestos.
En lo que respeta a las tutorías individuales, dado su carácter personalizado, no deben dedicarse a extender los contenidos con nuevos conceptos, sino a aclarar los conceptos ya expuestos. El profesorado las utilizarán cómo una interacción que le permita extraer conclusiones respeto al grado de asimilación de la materia por parte de los alumnos. La atención se mantiene en los horarios oficiales de tutorías a través de los siguientes canales:
- Correo-e: De uso para hacer consultas de respuesta corta.
- Teams: encuentros virtuales preferentemente previa solicitud a través del correo-e.

Evaluación
Metodologías Competéncias Descripción Calificación
Solución de problemas A3 B1 B3 C6 Se valorarán los resultados, forma y condiciones de realización de diversos trabajos puntuables que se detallarán durante el curso y que se resolverán en las TUTORÍAS DE GRUPOS REDUCIDOS.

El resultado de la actividad, así como la discusión y participación activa en clase, se valorarán en la nota final.

La calificación de este apartado solamente se sumará a la obtenida en las pruebas restantes cuando la materia esté superada.
10
Prácticas de laboratorio A4 B1 B3 C3 C6 Realización obligatoria según las condiciones establecidas en el enunciado de cada práctica. Se hará un seguimiento periódico del desarrollo de las prácticas a lo largo del curso que influirá en la nota de las mismas.

Es necesario presentar todas las prácticas y obtener una nota mínima global de 4,5 sobre 10 para superar la materia.


El trabajo entregado deberá ser original del alumno. De acuerdo al artículo 14, apartado 4, de la normativa*, la entrega de trabajos no originales o con partes duplicadas (sea por copias entre compañeros o por obtención de otras fuentes...) llevará una nota global de SUSPENSO en el apartado de prácticas, tanto para el grupo que presente material copiado como el grupo que lo facilitara.
40
Prueba objetiva A3 A4 B1 B3 Realización obligatoria. Implica un tratamiento global de los contenidos abordados el largo de la materia. Será eminentemente práctico para que el alumnado pueda demostrar que adquirió los conocimientos necesarios de abstracción y diseño, implementación y uso de TADs y se entrenó lo suficiente en las habilidades requeridas por la materia.

Necesario obtener una nota mínima de 4,5 sobre 10 para superar la materia.


60
 
Observaciones evaluación

Sobre la asistencia las clases de
prácticas.

La
no asistencia de forma reiterada podrá conllevar una penalización en la nota según las condiciones
específicas que se detallarán al inicio del curso.

Sobre la responsabilidad
compartida de los trabajos en grupo.

En
las actividades que se llevan a cabo en grupos, tales como las prácticas, todos
los miembros del grupo serán responsables solidarios del trabajo realizado y
entregado, así como de las consecuencias que se deriven del incumplimiento de
las normas de autoría del mismo.

 

Sobre la nota final de actas

  • En caso de que no se cumplan las
    condiciones para el cálculo conjunto de la nota entre la prueba final y las prácticas
    (es decir, si alguna de las dos es inferior a 4,5 sobre 10), en las actas
    figurará la nota mínima entre 4,5 y la que resulte del cálculo conjunto.



  • Tendrá la condición de “Presentado”
    quien entregue todas las prácticas obligatorias o concurra a la prueba
    objetiva en el período oficial de evaluación.

 

Evaluación en la segunda
oportunidad

La
nota global de las prácticas así como del bloque de “Solución de Problemas” se
mantendrá para la segunda oportunidad. Solamente las prácticas calificadas con
SUSPENSO o NO PRESENTADAS en la primera oportunidad podrán entregarse en la
segunda, siempre de acuerdo al enunciado que se proponga para ello.

En
consonancia con la normativa de evaluación de la UDC, la calificación derivada
de otras actividades desarrolladas a lo largo del curso como parte de la
evaluación continua (prácticas introductorias, controles parciales de prácticas, pruebas en Grupos de
Tutoría Reducidos, etc) no serán recuperables para la segunda oportunidad.

En
cuanto a los criterios de evaluación, la segunda oportunidad mantendrá los
mismos que la primera.

 

Matrícula a tiempo parcial

En
el caso del estudiantado con matrícula a tiempo parcial se elimina la
obligatoriedade de asistencia a las clases de prácticas, sin embargo tendrán
que entregar las actividades evaluables en las condiciones y plazos específicos
que se establecerán durante el curso. Es responsabilidad de estos/as
estudiantes poner en conocimiento del profesor su circunstancia.

 

Oportunidad adelantada de
diciembre

La
evaluación de la oportunidad adelantada se basará exclusivamente en una prueba
escrita.

 

*
Normativa de evaluación, revisión y reclamación de las calificaciones de los
estudios de grado y máster universitario, aprobada por el Consejo de Gobierno
de la Universidad de A Coruña el 19 de diciembre de 2013.


Fuentes de información
Básica Ignacio Zahonero y Luis Joyanes Aguilar (2004). Algoritmos y estructuras de datos: Una perspectiva en C. McGraw-Hill
Narasimha Karumanchi (2017). Data Structures and Algorithms Made Easy, 5th Edition. CareerMonk Publications
Kyle Loudon (1999). Mastering Algorithms with C. O'Reilly Media

Complementária Aaron M. Tenenbaum,? Yedidyah Langsam &? Moshe J. Augenstein (1989). Data Structures Using C. Prentice Hall
Reema Thareja (2014). Data Structures Using C - Second Edition. Oxford University Press
Richard F. Gilberg & Behrouz A. Forouzan (2005). Data Structures: A Pseudocode Approach with C (2nd Ed). Cengage Learning
Ignacio Zahonero, Lucas García Sánchez, Luis Joyanes Aguilar y Matilde Fernández Azuela (2005). Estructuras de datos en C (Serie Schaum). McGraw-Hill
Luis Joyanes Aguilar, Andrés Castillo Sanz, Lucas Sánchez García e Ignacio Zahonero Martínez (2002). Programación en C. Libro de problemas. McGraw-Hill
Ignacio Zahonero y Luis Joyanes Aguilar (2005). Programación en C. Metodología, Algoritmos y Estructura de Datos, 2º Edición. McGraw-Hill

Páxina oficial da contorna de desenvolvemento CLion: https://www.jetbrains.com/clion/


Recomendaciones
Asignaturas que se recomienda haber cursado previamente
Programación I/614G01001
Informática Básica/614G01002
Matemática Discreta/614G01004

Asignaturas que se recomienda cursar simultáneamente

Asignaturas que continúan el temario
Algoritmos/614G01011
Bases de Datos/614G01013
Paradigmas de Programación/614G01014
Diseño Software/614G01015

Otros comentarios


(*) La Guía Docente es el documento donde se visualiza la propuesta académica de la UDC. Este documento es público y no se puede modificar, salvo cosas excepcionales bajo la revisión del órgano competente de acuerdo a la normativa vigente que establece el proceso de elaboración de guías