Proyecto docente

Anuncio
GUÍA DOCENTE
CURSO: 2016/17
40847 - CREANDO INTERFACES DE
USUARIO
CENTRO: 180 - Escuela de Ingeniería Informática
TITULACIÓN: 4008 - Grado en Ingeniería Informática
ASIGNATURA: 40847 - CREANDO INTERFACES DE USUARIO
CÓDIGO ULPGC: 40847
CÓDIGO UNESCO: 1203, 3304
MÓDULO: COMPUTACIÓN
MATERIA:
CRÉDITOS ECTS: 6
CURSO: 4
LENGUA DE IMPARTICIÓN (Especificar créditos de cada lengua)
ESPAÑOL: 6
INGLÉS:
TIPO: Obligatoria
SEMESTRE: 2º semestre
REQUISITOS PREVIOS
Diseño de Interfaces de Usuario
Plan de Enseñanza (Plan de trabajo del Profesor)
Contribución de la asignatura al perfil profesional:
Aplicar herramientas avanzadas en la construcción de interfaces de usuario. Explicar los
fundamentos de sistemas gráficos y su implicación en las tecnologías sobre las que se construyen
las interfaces de usuarios avanzadas tales como por ejemplo videojuegos o realidad virtual.
Competencias que tiene asignadas:
G1, G2, G3, G4, G5, N1, N2, N3, N4, N5, CP06
Objetivos:
OB1. Presentar y explicar la evolución de los sistemas gráficos en computación y como este hecho
determina las tecnologías sobre las que se construyen las interfaces de usuario.
OB2. Presentar y explicar una introducción a los fundamentos matemáticos de la representación
gráfica y los fundamentos físicos básicos de la luz, su proyección y reflexión, en los que se basan
las librerías gráficas.
OB3. Presentar y explicar la secuencia de los procesos computacionales del denominado
“pipeline” gráfico.
OB4. Presentar, explicar y utilizar las librerías gráficas más utilizadas como por ejemplo OpenGL.
OB5. Presentar, explicar y utilizar herramientas de construcción de interfaces de usuarios
avanzadas en C/C++ como Qt.
Página 1 de 10
Contenidos:
La asignatura Diseño de Interfaces de Usuario (DIU) constituye el antecedente formativo de esta
asignatura; ella se enfoca a presentar por un lado los aspectos teóricos, empíricos y cognitivos
implicados en las interfaces de usuario. Por otro lado, se introducen y utilizan las herramientas de
diseño basadas en Java/Swing, sobre todo utilizando herramientas como GUI Builder (Matisse)
que automatizan el proceso de maquetado y generación de código. Esta herramienta es un ejemplo
de una línea de herramientas enfocada al diseño (que es más completo que el de programación) de
interfaces de usuarios como son el ya citado GUI Builder en Netbeans, Swing Designer en Eclipse
ambos en Java y en C/C++ el Qt Designer y Blend en Visual Studio.
La mayor parte de la interfaces de usuario habituales en versión de escritorio pueden abordarse
con el nivel de esas herramientas, pero no así un número más reducido de las mismas, que pueden
exigir mayores prestaciones, mayor interoperabilidad con gráficos. Por ejemplo Videojuegos y
Realidad Virtual, que aunque no son el objetivo de esta asignatura, las habilidades adquiridas
pueden ser muy útiles para la proyección profesional del alumno en esos campos cada vez más
importantes.
La asignatura de Creación de Interfaces de Usuarios (CIU) se enfoca sobre todo desde un punto de
vista de uso de tecnologías fundamentales que permitan abordar interfaces de usuario más
avanzadas. Se aborda la creación de interfaces mediante programación C/C++. Aunque las
herramientas en este lenguaje no alcanzan el nivel de automatización alcanzado con GUI Builder,
si permiten la interoperabilidad más eficiente con gráficos. En esta línea se presenta una breve
introducción al entorno Qt.
La parte mas importante de la signatura se destina a presentar los elementos básicos de gráficos
por computador, muy especialmente utilizando como vehículo la librería OpenGL que constituye
el estándar de facto de la industria de gráficos y de muchas de sus sectores profesionales
derivados. Los gráficos por computador son importantes, además de por sí mismos, también
porque muchas interfaces de usuario avanzadas, que trascienden del tradicional modelo de
escritorio para adentrarse en otros paradigmas, su implementación se sustenta en el soporte
tecnológico muy sólido como es OpenGL. Aunque existen otras plataformas alternativas como
Direct3D (parte de DirectX), se ha preferido estudiar OpenGL por su alto grado de estandarización
y por ser multiplataforma.
Se estudiará y utilizará la librería OpenGL y con ello se adquirirá la habilidad básica para poder
utilizar en el futuro subconjuntos de la misma tales como OpenGL ES (Embedded Systems) para
entornos empotrados y dispositivos ubicuos y WebGL que es un subconjunto codificado en el
lenguaje de JavaScript para ser utilizado en el contexto de HTML5.
Seguidamente, se describen todos los módulos descompuestos en temas incorporando las
competencias, un breve desglose de contenidos, la duración temporal y la bibliografía asociada
que incorpora exhaustivamente la literatura gris en Internet. Dada la limitación de recursos
temporales, en algunos módulos se incorporan temas de Estudio de Casos para poder ilustrar sobre
ejemplos concretos multitud de detalles que no pueden desarrollarse de forma regular.
MÓDULO 1. Gráficos en la GUI y OpenGL. (26 horas T)
---------------------------------------------------------------------Tema 1.1. Paradigmas de Interacción Avanzada (2 hora) (G1, G2, G3, G4, G5, N1, N2, N3, N4,
N5, CP06) Influencia de las tecnologías graficas en videojuegos y áreas emergentes como realidad
virtual.
Página 2 de 10
Tema 1.2. Visión general de Gráficos y OpenGL (2 hora) (G1, G2, G3, G4, G5, N1, N2, N3, N4,
N5, CP06) Evolución de los sistemas gráfcios. Standares OpenGL y Direct3D. Evolución de
OpenGL, subconjuntos OpenGL ES y WebGL. [Hea10] [Mcr05] [Ang12] [Shr12]
Tema 1.3. Librerías y Toolkits (4 hora) (G1, G2, G3, G4, G5, N1, N2, N3, N4, N5, CP06)
Librería auxiliar GLU y toolkit GLUT. Utilidades de Windowing. [Hea10] [Mcr05] [Ang12]
[Shr12]
Tema 1.4. Proyecciones Ortográficas y Perspectiva (2 hora) (G1, G2, G3, G4, G5, N1, N2, N3,
N4, N5, CP06) Proyecciones geométricas. [Hea10] [Mcr05] [Ang12] [Shr12]
Tema 1.5. Vértices, líneas, triángulos y polígonos. (2 hora) (G1, G2, G3, G4, G5, N1, N2, N3,
N4, N5, CP06) . [Hea10] [Mcr05] [Ang12] [Shr12]
Tema 1.6. Transformaciones y matrices (2 hora) (G1, G2, G3, G4, G5, N1, N2, N3, N4, N5,
CP06) Traslaciones, rotaciones, escalado y perspectiva [Hea10] [Mcr05] [Ang12] [Shr12]
Tema 1.7. Modelos de cámara (2 hora) (G1, G2, G3, G4, G5, N1, N2, N3, N4, N5, CP06)
Matrices de modelos y cámara. [Hea10] [Mcr05] [Ang12] [Shr12]
Tema 1.8. Iluminación y materiales (2 hora) (G1, G2, G3, G4, G5, N1, N2, N3, N4, N5, CP06)
Tipos de iluminación: ambiente, difusa y especular. Modelo de Phong [Hea10] [Mcr05] [Ang12]
[Shr12]
Tema 1.9. Modelos 3D (2 hora) (G1, G2, G3, G4, G5, N1, N2, N3, N4, N5, CP06) Formatos de
modelos 3D, PLY, OBJ. [Hea10] [Mcr05] [Ang12] [Shr12]
Tema 1.10. Imágenes y texturas (4 hora) (G1, G2, G3, G4, G5, N1, N2, N3, N4, N5, CP06)
Lectura y rendering de imágenes, Mapeo de texturas. Operaciones de filtrado [Hea10] [Mcr05]
[Ang12] [Shr12]
Tema 1.11. Curvas y superficies. Interpolación, splines, B-splines y NURBS (2horas) (G1, G2,
G3, G4, G5, N1, N2, N3, N4, N5, CP06) [Len12] [Jan15] [Vin13]
Bibliografía del Módulo.
----------------------------[Len12] Mathematics for 3D Game Programming and Computer Graphics, E. Lengyel, Course
Technology, 2012
[Jan15] Mathematical Structures for Computer Graphics, S.J. Janke, Wiley, 2015,
[Vin13] Calculus for Computer Graphics, John Vince, Springer, 2013
[Hea10] Computer Graphics with OpenGL, D.D: Hearn, Prentice Hall, 2010
[Mcr05] Advanced Graphics Programming Using OpenGL, T. McReynolds, D. Blythe, Morgan
Kaufman, 2005
[Ang12] Interactive Computer Graphics, a Top-Down Approach with Shader-based OpenGL, E.
Angel, D Shreiner, Addison-Wesley, 2012
Página 3 de 10
[Shr12] OpenGL Programming Guide, D. Shreiner et al, Addison-Wesley, 2012
[Ogl] OGLdev. Modern OpenGL Tutorials, http://ogldev.atspace.co.ul/
MÓDULO 2. Diseño de Interfaces de Usuario con Qt (4 horas T)
------------------------------------------------------------------------------Tema 2.1 Entorno Qt. Modelo-Vista. Ventana principal y clases básicas. Qt Creator yQt Designer
(2 horas) (G1, G2, G3, G4, G5, N1, N2, N3, N4, N5, CP06). [Sum11] [Bla08] [Th07] [Mol07]
Tema 2.2 Widgets, Layout, Eventos y Diálogos, (2 horas) (G1, G2, G3, G4, G5, N1, N2, N3, N4,
N5, CP06) [Sum11] [Bla08] [Th07] [Mol07]
Bibliografía del Módulo
----------------------------[Ezu06] An Introduction to Design Patterns C++ with Qt4, A. Ezut, P. Ezut, Ptrentice-Hall 2006
[Sum11] Advanced Qt Programming, M. Summerfield, Addison-Wesley, 2011
[Bla08] C++ GUI Programming with Qt4, J. Blanchette, M Summerfeld, Prentice-Hall, 2008
[Th07] Fundations of Qt Development, J. Thelin,, Apress, 2007
[Mol07] The book of Qt: the art of building Qt Applications, D. Molkentin, Open Source Press,
2007
PROGRAMA DE PRÁCTICAS
El programa de práctica se enfoca a reforzar y complementar los contenidos presentados en el
aula. Se adopta la metodología de mantener un relativo paralelismo entre los contenidos expuestos
en el aula (con cierta pre-anticipación) y los utilizados en el laboratorio. Se exceptúa un caso, y es
que mientas se imparten los primeros temas del Módulo 1, de naturaleza general, se realizarán
simultáneamente las primeras prácticas de OpenGL de naturaleza más simple, como por ejemplo
la de creación del Frame, o ventana principal, el dibujo de primitivas geométricas muy básicas. En
el resto de las prácticas se procurará mantener una cierta sincronía temporal.
Práctica 1. Primeros pasos en OpenGL (2 horas)
Práctica 2. Utilización del Toolkit GLUT (4 horas)
Práctica 3. Dibujo de objetos geométricos básicos (4 horas)
Práctica 4. Transformaciones y matrices (2 horas)
Práctica 5. Modelos de cámara (2 horas)
Práctica 6. Orbitación y Zoom (2 horas)
Práctica 7. Iluminación y materiales (2 horas)
Práctica 8. Modelos 3D (2 horas)
Práctica 9. Imágenes y texturas (4 horas)
Práctica10. Crear Interfaces de Usuario en Qt.(2 horas)
Práctica 11. Crear aplicaciones de OpenGL en Qt. (2 horas)
Práctica 12. Monitorización del Proyecto (4 horas)
Página 4 de 10
Práctica 5. Proyectos avanzados OpenGL. Texturas y modelos 3D (4 horas)
Práctica 6. Gráficos y CUDA (4horas)
Práctica 7. Introducción a Qt (2 horas)
Práctica 8. Proyectos con Qt Designer (4 horas)
Práctica 9. Monitorización del Proyecto de Curso (4 horas)
Metodología:
La forma de llevar a cabo la docencia, o metodología se articula en la docencia presencial que se
organiza en clases de teoría, prácticas en aula y prácticas en laboratorio según se enumeran:
AF1. Clases de Teoría: Se presentan los contenidos incidiendo en la vertiente de utilidad de los
métodos y procedimientos presentados. Se indicará cuales son además las líneas de lectura y
estudio personal que alumno deberá seguir para complementar las sesiones presenciales. Se
realizarán en un contexto científico pero se incidirá también en los contextos profesionales y
sociales que son también muy importantes en el diseño de interfaces de usuario.
AF2. Clases de Práctica en aula y laboratorio: Se presentará en primer lugar en las sesiones en el
aula la situación de las tareas, actividades y ejercicios que se realizaran en el laboratorio, en el
contexto de los métodos teóricos y como las actividades prácticas ilustran e incrementa el
conocimiento, habilidades y destrezas en la resolución de problemas de programación tendentes a
crear sistemas de interfaces de usuario demostrativos. Se realizarán en un contexto orientado a la
actividad profesional del diseño de interfaces de usuario
AF3. Tutorías: Se realizarán tanto individualmente como en grupos para aclarar los problemas y
dudas que surgen tanto de los conceptos en clases teóricas como en las actividades prácticas
AF4. Desarrollo práctico de una Interface de Usuario operativa focalizada en el uso de gráficos y/o
focalizada en el uso de la herramienta Qt. Incluirá diseño conceptual, diseño del software,
programación y defensa pública con demostración Esta actividad es de especial proyección hacia
el contexto profesional y social.
La docencia de la materia se organiza en la enseñanza de conceptos y fundamentos
complementada con las prácticas que generan habilidad y destreza. Podemos distinguir entre las
horas presenciales y las no presenciales.
Si bien se considera a nivel formal la distinción entre prácticas en aula y prácticas en laboratorio,
en la práctica se realizarán ambas en el laboratorio asignado, pero la primera hora de la sesión de
dos horas se hará énfasis en las explicaciones del profesor apoyado por medios audiovisuales,
mientas que la siguiente hora se centrará en el trabajo de los alumnos tutorizados por el profesor.
La materia consta de 6 créditos, que a razón de 25 horas/crédito equivale a 150 horas totales que se
distribuyen de la forma siguiente:
Presenciales No-Presenciales Totales
Teoría:
30
45
75
PA:
15
20
35
PL:
15
20
35
Evaluación:
5
Totales:
60
85
150
Página 5 de 10
La materia se imparte en el primer cuatrimestre en un periodo de 15 semanas, lo que implica que
la dedicación del alumno a la materia es:
Enseñanza presencial = 4 horas/semana (2 de Teoría + 1 de Práctica en aula+ 1 de Prácticas en
laboratorio)
Enseñanza no presencial = 5.6 horas/semana (3 de Teoría + 1.3 de Prácticas en aula + 1.3 de
Prácticas en laboratorio)
Evaluacion:
Criterios de evaluación
---------------------------Para la evaluación se tendrán en cuanta las distintas actividades programadas: La asistencia
participativa en las clases de teoría y prácticas en aula, la aprobación de un trabajo de curso y la
aprobación de las prácticas encargadas.
FE1. Realización y defensa de un trabajo de curso encargado por el profesor en el que el alumno
propondrá un proyecto preliminar de interface de usuario para una aplicación con especificaciones
definidas. Competencias: G1,G2,G3,G4,G5,N1,N2,N3,N4,N5,CP06. Esta relacionada con la
Actividad formativa AF4 principalmente además de la AF1 y AF3
FE2. Realización y presentación de las respectivas memorias de cada una de las prácticas
planificadas
y
expuestas
en
el
campus
virtual.
Competencias:
G1,G2,G3,G4,G5,N1,N2,N3,N4,N5,CP06. Está relacionada con la actividad formativa AF2 y
AF3.
Sistemas de evaluación
---------------------------El sistema de evaluación establecerá en base al siguiente criterio: nota = min(10, 0.5*nota del
trabajo de curso + 0.5*nota media de las prácticas + 0.1*asistencia y participación) El sistema de
evaluación será idéntico en las diversas convocatorias de la asignatura.
Criterios de calificación
----------------------------Para la calificación de los diversos elementos sujetos a valoración, trabajos y prácticas, se tendrán
en cuenta los contenidos, así como la organización y presentación de los mismos.
Plan de Aprendizaje (Plan de trabajo del Estudiante)
Tareas y actividades que realizará según distintos contextos profesionales (científico,
profesional, institucional, social)
TA1. Realización de comentarios y opiniones que el profesor solicita a los alumnos de forma
individual o grupal a los alumnos con el objeto de fomentar el sentido crítico y la interacción
social. Contexto Científico y Social.
TA2. Realización de ejercicios prácticos en el laboratorio. Contexto Científico y Profesional.
TA3. Realización y exposición pública del diseño y programación de una interfaz propuesta por el
profesor. En este caso el alumno trabajará sobre y supuesto concreto y expondrá y defenderá las
Página 6 de 10
decisiones adoptadas. Se pretende que el alumno se sitúe en un entorno más próximo al
profesional donde debe concretar y defender sus propuestas. Contexto Profesional y Social.
Temporalización semanal de tareas y actividades (distribución de tiempos en distintas
actividades y en presencialidad - no presencialidad)
Se tomará una equivalencia de 1 ECTS como 25 horas de las cuales 10 son presenciales y las
restantes 15 como no presenciales.
Horas Presenciales Horas No-presenciales
Módulo 1
Tema 1-1
Tema 1-2
Tema 1-3
Tema 1-4
Tema 1-5
Tema 1-6
Tema 1-7
Tema 1-8
Tema 1-9
Tema 1-10
Tema 1-11
2
2
4
2
2
2
2
2
2
3
3
6
3
3
3
3
3
3
6
3
Módulo 2
Tema 2-1 2
Tema 2-2
4
2
3
2
3
La planificación de las diferentes semanas del curso (15 por ser una signatura cuatrimestral) es la
siguiente:
Teoría
Prácticas
Semana 1: Tema 1-1
Práctica 1
Semana 2: Tema 1-2 Práctica 2
Semana 3: Tema 1-3 Práctica 2
Semana 4: Tema 1-3
Práctica 3
Semana 5: Tema 1-4
Práctica 4
Semana 6: Tema 1-5
Práctica 5
Semana 7: Tema 1-6
Práctica 6
Semana 8: Tema 1-7
Práctica 7
Semana 9: Tema 1-8
Práctica 8
Semana 10: Tema 1-9
Práctica 9
Semana 11: Tema 1-10
Práctica 9
Semana 12: Tema 1-10
Práctica 10
Semana 13: Tema 1-11
Práctica 11
Semana 14: Tema 2-1
Práctica 12
Semana 15: Tema 2-2
Práctica 12
Recursos que tendrá que utilizar adecuadamente en cada uno de los contextos
profesionales.
El alumno tendrá que utilizar los recursos didácticos que se podrán a su disposición: apuntes,
bibliografía, enlaces a libros on-line y documentación. En las prácticas, el alumno utilizará las
plataformas de desarrollo Microsoft Visual Studio y Qt instaladas previamente en los equipos de
Página 7 de 10
los laboratorios.
RE1. Notas de curso elaboradas por el profesor
RE2. Documentación pública disponible en Internet.
RE3. Bibliografía disponible en la Biblioteca.
RE4. Entornos de Desarrollo Microsoft Visual Studio y Qt disponibles en los Laboratorios.
RE5. Notas de definición de objetivos y de orientación en las prácticas
Resultados de aprendizaje que tendrá que alcanzar al finalizar las distintas tareas.
Al finalizar la docencia de teoría y relacionada con la actividades formativas AF1, AF2 y AF3:
RA1. Conocer los fundamentos formales de la representación de gráficos 3D.
RA2. Conocer y saber utilizar la librería OpenGL para la programación de aplicaciones avanzadas
que impliquen interacción.
RA2. Conocer y saber utilizar a nivel básico el entornos de programación avanzada C/C++ como
Qt para construir Interfaces de Usuario para entornos Windows, Linux y Android.
Al finalizar las prácticas y el trabajo propuesto, relacionadas con las actividades formativas AF2,
AF3 y AF4.
RA8. Diseñar y programar prototipos de interfaces de usuario avanzadas con la incorporación de
gráficos, utilizando herramientas y librerías que reflejan el estado del arte profesional.
Plan Tutorial
Atención presencial individualizada
Se atenderá presencialmente y de forma individualizada a los alumnos en el horario establecido
para las tutorías. El lugar de atención será el despacho del profesor D3-6. Se atenderá en el horario
de tutorías que oficialmente establece el Departamento, o bien en caso excepcional en un horario
concertado entre profesor y alumno.
Atención presencial a grupos de trabajo
Cuando se requiera, por ejemplo en actividades prácticas, se realizará atención en grupos de
trabajo. Se realizarán en horarios de tutorías o bien horarios concertados y según el número de
alumnos implicados, se realizaran en el despacho D3-6, una sala de reunión o bien un aula o
laboratorio.
Atención telefónica
En desuso, pero se atenderá cuando sea solicitada.
Página 8 de 10
Atención virtual (on-line)
La atención se realizará mediante la Plataforma Moodle de la Universidad.
Datos identificativos del profesorado que la imparte.
Datos identificativos del profesorado que la imparte
Juan Ángel Méndez Rodríguez
Departamento:
Ámbito:
Área:
Despacho:
Teléfono:
(COORDINADOR)
260 - INFORMÁTICA Y SISTEMAS
075 - Ciencia De La Comp. E Intel. Artificial
075 - Ciencia De La Comp. E Intel. Artificial
INFORMÁTICA Y SISTEMAS
928458746
Correo Electrónico: juan.mendez@ulpgc.es
Bibliografía
[1 Básico] Calculus for computer graphics /
by John Vince.
Springer,, London … [etc.] : (2013)
978-1-4471-5465-5
[2 Básico] OpenGL programming guide: the official guide to learning OpenGL, versions 3.0 y 3.1 /
Dave Shreiner, the Khronos OpenGL ARB Working Group.
Addison-Wesley,, Upper Saddle River, NJ [etc.] : (2009) - (7th ed.)
978-0-321-55262-4
[3 Básico] Computer graphics with OpenGL /
Donald Hearn, M. Pauline Baker.
Pearson,, Upper Saddle River, NJ : (2003) - (3rd ed.)
0-13-120238-3
[4 Básico] Mathematics for 3D game programming and computer graphics /
Eric Lengyel.
Cengage Learning,, Boston : (2012) - (3rd ed.)
9781435458864
[5 Básico] C++ GUI programming with Qt 4 /
Jasmin Blanchette, Mark Summerfield.
Prentice Hall,, Upper Saddle River, N.J : (2008) - (2nd ed.)
978-0-13-235416-5
[6 Básico] CUDA by example :an introduction to general-purpose GPU programming /
Jason Sanders, Edward Kandrot.
Addison-Wesley,, Boston : (2011)
978-0-13-138768-3
[7 Básico] Advanced Qt programming :creating great software with C++ and Qt 4 /
Mark Summerfield.
Addison-Wesley,, Upper Saddle River, NJ : (2013) - (4th pr.)
978-0-321-63590-7
[8 Básico] Mathematical structures for computer graphics /
Steven J. Janke.
Wiley,, Hoboken : (2015)
978-1-118-71219-1
Página 9 de 10
[9 Básico] Advanced graphics programming using OpenGL /
Tom McReynolds, David Blythe.
Elsevier,, Amsterdam [etc.] : (2005)
1-55860-659-9
[10 Recomendado] An introduction to design patterns in C++ with Qt /
Alan Ezust and Paul Ezust.
Prentice Hall,, Upper Saddle River, NJ : (2012) - (2nd ed.)
978-0-13-282645-7
[11 Recomendado] Interactive computer graphics: a top-down approach with OpenGL /
Edward Angel.
Addison Wesley,, Boston [etc.] : (2003) - (3rd ed.)
0-201-77343-0
[12 Recomendado] Foundations of Qt development /
Johan Thelin.
Apress,, Berkeley : (2007)
978-1-59059-831-3 (pbk)
Página 10 de 10
Descargar