CENTRO UNIVERSITARIO DE TECNOLOGÍA Y ARTE DIGITAL PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE Herramientas y técnicas de profiling
1. DATOS DE IDENTIFICACIÓN DE LA ASIGNATURA. Título: Facultad: Máster Universitario en Computación Gráfica y Simulación Centro Universitario de Tecnología y Arte Digital Departamento/Instituto: Materia: Denominación de la asignatura: Programación Avanzada Herramientas y técnicas de profiling Código: 100018006 Curso: 1 Semestre: 1 Tipo de asignatura (básica, obligatoria u optativa): Obligatoria Créditos ECTS: 3 Modalidad/es de enseñanza: Lengua vehicular: Profesor/a: Grupos: Despacho: Presencial Castellano Dr. Marcos Novalbos Paco Marzal MUCG Sala de profesores Teléfono: 916402811 Ext. 112 E- mail: marcos.novalbos@live.u-tad.com paco.marzal@live.u-tad.com Página web: u-tad.blackboard.com 2. REQUISITOS PREVIOS. 1
Esenciales: Poseer conceptos básicos de programación paralela y programación concurrente. Aconsejables: 3. SENTIDO Y APORTACIONES DE LA ASIGNATURA AL PLAN DE ESTUDIOS. Campo de conocimiento al que pertenece la asignatura. Esta es una asignatura obligatoria que pertenece al módulo de Programación Avanzada Relación de interdisciplinariedad con otras asignaturas del curriculum. Esta asignatura es esencial para el desarrollo de Simulaciones realizadas en la asignatura de Simulación: Sistemas dinámicos y modelos complejos y para la asignatura Visualización de Datos. Aportaciones al plan de estudios e interés profesional de la asignatura. En esta asignatura se explicarán las herramientas y técnicas para detectar y evitar memory leaks y mejorar el rendimiento. Se estudiarán las herramientas tradicionales de programación secuencial (como GDB) y las nuevas herramientas de depuración de programas programación concurrente. Además se analizará el rendimiento de los programas para la posterior optimización de sus componentes eliminando posibles cuellos de botella. Asimismo se enseñará por medio de teoría y práctica cómo diseñar y desarrollar interfaces de usuario usables. Se utilizará Qt como tecnología de implementación. 2
4. RESULTADOS DE APRENDIZAJE EN RELACIÓN CON LAS COMPETENCIAS QUE DESARROLLA LA ASIGNATURA. COMPETENCIAS GENERALES CG6 Que los estudiantes sean capaces de realizar modelados matemáticos, cálculo y diseño experimental en centros tecnológicos y de ingeniería de empresa, particularmente en tareas de investigación e innovación en todos los ámbitos de la programación gráfica. CG5 Capacidad para aplicar soluciones innovadoras y realizar avances en el conocimiento que exploten los nuevos paradigmas de la Computación Gráfica. CG3 - Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo. Deberán de ser capaces de conocer las tendencias actuales en el campo de la simulación y la programación gráfica, y las comunidades y foros donde obtener información actualizada. RESULTADOS DE APRENDIZAJE RELACIONADOS CON LAS COMPETENCIAS ESPECÍFICAS El alumno realiza cálculos y diseño de trabajos relacionados con tareas de innovación en el ámbito de la computación gráfica. El estudiante aplica soluciones innovadoras a los problemas planteados en las clases. El estudiante aumenta su conocimiento mediante la lectura de textos recomendados por el profesor, que le permitirán seguir aprendiendo. 3
COMPETENCIAS ESPECÍFICAS CE8 - Aplicar técnicas avanzadas de gestión de memoria dinámica de forma eficaz en algoritmos lineales y paralelos, detectar fragmentación de memoria y posibles fugas de memoria (memoryleaks) en programas mediante el uso de herramientas de profiling y el uso de punteros avanzados (smart pointers) y aritmética avanzada de punteros. RESULTADOS DE APRENDIZAJE RELACIONADOS CON LAS COMPETENCIAS ESPECÍFICAS El alumno desarrolla programas que son eficientes, están libres de fugas de memoria. Sabe analizar el rendimiento del software. - Analizar la ejecución de algoritmos mediante técnicas avanzadas de profiling con servidores remotos de depuración y profiling y aplicar técnicas optimización no funcional en programas multihilo a partir de los resultados del análisis. El estudiante sabe aplicar técnicas de depuración y de profiling avanzado, así como de profiling y depuración multihilo. El alumno aplica técnicas de optimización funcional y usable, mediante la aplicación de lo aprendido de manera gráfica. 4
5. CONTENIDOS Herramientas tradicionales de programación secuencial (como GDB) Herramientas de depuración de programas programación concurrente. Rendimiento de los programas para la posterior optimización Técnicas avanzadas de profiling (servidores remotos de depuración y profiling, profiling multihilo, profiling de cache y montículo) 6.- CRONOGRAMA CONTENIDOS Herramientas tradicionales de programación secuencial (como GDB) PERÍODO TEMPORAL Febrero Herramientas de depuración de programas programación concurrente. Febrero Rendimiento de los programas para la posterior optimización Febrero Técnicas avanzadas de profiling (servidores remotos de depuración y profiling, profiling multihilo, profiling de cache y montículo) Febrero 5
7. MODALIDADES ORGANIZATIVAS Y MÉTODOS DE ENSEÑANZA MODALIDAD ORGANIZATIVA MÉTODO DE ENSEÑANZA COMPETENCIAS RELACIONADAS HORAS PRESENCIALES TRABAJO AUTÓNOMO TOTAL DE HORAS Clases Teóricas Lección magistral y caso de estudio 22.5 0 22.5 Clases Prácticas Tutorías Trabajo autónomo Trabajo en grupo Lección magistral Resolución y ampliación de conocimiento bajo petición del alumno Aprendizaje basado en proyectos Aprendizaje basado en proyectos 7.5 0,00 7.5 7.5 0 7.5 30 7.5 6
8. SISTEMA DE EVALUACIÓN ACTIVIDAD DE EVALUACIÓN Participación en clase y en la realización de proyectos Proyecto objetivo Final Evaluación Trabajo de asignatura CRITERIOS DE EVALUACIÓN Nivel de participación y colaboración del alumno durante las clases y los proyectos. El alumno debe programar y diseñar correctamente una optimización Debe realizar poner en práctica de manera adecuada la optimización de un programa, demostrando los conceptos adquiridos VALORACIÓN RESPECTO A LA CALIFICACIÓN FINAL (%) 25% de la calificación final. 50% de la calificación final. 25% de la calificación final. 7