Programación de aplicaciones web
GUÍA DOCENTE Curso 2012-13
Titulación: | Grado en Ingeniería Informática | 801G |
Asignatura: | Programación de aplicaciones web | 447 |
Materia: | Sistemas operativos, sistemas distribuidos y redes |
Módulo: | Sistemas operativos, sistemas distribuidos y redes |
Carácter: | OBLIGATORIA | Curso: | 3 | Semestre: | Segundo Semestre |
Créditos ECTS: | 6,00 | Horas presenciales: | 60,00 | Horas estimadas de trabajo autónomo: | 90,00 |
Idiomas en que se imparte la asignatura: | Español |
Idiomas del material de lectura o audiovisual: | Inglés, Español |
Departamentos responsables de la docencia
MATEMÁTICAS Y COMPUTACIÓN | R111 |
Dirección: | C/ Luis de Ulloa, s/n | Código postal: | 26004 |
Localidad: | Logroño | Provincia: | La Rioja |
Teléfono: | 941299452 | Fax: | 941299460 | Correo electrónico: | |
Profesores
Profesor responsable de la asignatura: | García Izquierdo, Francisco José |
Teléfono: | 941299260 | Correo electrónico: | francisco.garcia@unirioja.es |
Despacho: | 232 | Edificio: | Edificio Vives |
Horario de tutorías: | Diríjase a la URL http://www.unirioja.es/cu/fgarcia |
Descripción de los contenidos
- Arquitectura software, patrones y metodologías para la construcción de aplicaciones Web
- Tecnologías para la construcción del interface con el usuario
- La petición y la respuesta HTTP, gestión del estado y control de acceso
- Configuración de servidores web y servidores de aplicaciones
- Tecnologías avanzadas de programación de aplicaciones web
- Aspectos básicos sobre accesibilidad web
- Aspectos básicos sobre seguridad en aplicaciones web
Requisitos previos de conocimientos y competencias para poder cursar con éxito la asignatura
Conocimientos de lenguajes de programación, de redes de computadores, de sistemas distribuidos y de programación de bases de datos.
Relación de asignaturas que proporcionan los conocimientos y competencias requeridos
Especificación y desarrollo de sistemas de Software
Programación de bases de datos
Programación orientada a objetos
Redes de computadores
Sistemas distribuidos
Contexto
La asignatura realiza un amplio repaso por los aspectos más importantes que influyen en el diseño y desarrollo de aplicaciones web: arquitectura, patrones de diseño, programación en el lado del servidor y del cliente, seguridad, accesibilidad, rendimiento... La asignatura es importante para la formación del estudiante ya que actualmente el desarrollo de aplicaciones web puede considerarse la labor más habitual a la que se dedica un ingeniero informático
El enfoque de la asignatura es extensivo y no intensivo, queriendo esto decir que se cubren muchos temas aunque no se profundiza demasiado en ninguno de ellos. El propósito es proporcionar al alumno un amplio resumen de posibilidades tecnológicas, herramientas que le puedan servir para iniciarse, y posteriormente ampliar conocimientos en cada una de ellas en particular.
Competencias
Competencias generales
CG2 Estar capacitado para, utilizando el nivel adecuado de abstracción, establecer y evaluar modelos que representen situaciones reales.
CG3 Estar capacitado para encontrar, relacionar, estructurar e interpretar datos, información y conocimiento provenientes de diversas fuentes.
CG4 Estar capacitado para transmitir información, ideas, planteamiento de problemas y soluciones, tanto a otros profesionales tecnológicos y científicos, como a personas ajenas a esas disciplinas.
CG5 Estar capacitado tanto para trabajar autónomamente, como para integrarse de modo eficaz en equipos de trabajo.
CG7 Haber desarrollado aquellas habilidades de aprendizaje necesarias para continuar su formación.
Competencias específicas
CE1 Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en informática que tengan por objeto, la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
CE3 Capacidad para diseñar, desarrollar, evaluar y asegurar la accesibilidad, ergonomía, usabilidad y seguridad de los sistemas, servicios y aplicaciones informáticas, así como de la información que gestionan.
CE4 Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
CE5 Capacidad para concebir, desarrollar y mantener sistemas, servicios y aplicaciones informáticas empleando los métodos de la ingeniería del software como instrumento para el aseguramiento de su calidad.
CE6 Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes.
CE11 Capacidad para analizar y valorar el impacto social y medioambiental de las soluciones técnicas, comprendiendo la responsabilidad ética y profesional de la actividad del Ingeniero Técnico en Informática.
Resultados del aprendizaje
- Conocer y saber aplicar las arquitecturas y patrones de diseño de aplicaciones web más importantes.
- Desarrollar aplicaciones para la Web, usando con fluidez tecnologías de desarrollo en el lado del servidor y en el del cliente.
- Conocer los criterios básicos sobre accesibilidad web y saber aplicarlos.
- Conocer y saber aplicar tecnologías que permitan desarrollar aplicaciones web RIA (Rich Internet Application)
- Saber elegir la tecnología más adecuada para la realización de cada una de las partes de una aplicación web.
- Ser consciente de las vulnerabilidades de seguridad más comunes en aplicaciones web, así como de las medidas a aplicar para solventarlas.
Temario
-
Fundamentos de las aplicaciones web.
-
HTTP
-
HTML y CSS
-
Otras tecnologías
-
Arquitectura software, patrones y metodologías para la construcción de aplicaciones Web
-
Arquitectura en capas de una aplicación
-
Modelos 1 y 2 (MVC)
-
Implementaciones de MVC
-
Otros patrones relacionados
-
Aspectos metodológicos: estructuración de la información, diagrama de Navegación, usabilidad...
-
Tecnologías del lado del servidor: Servlets y JSP
-
Estructura de una aplicación web J2EE
-
Concepto de servlet
-
Elementos fundamentales de un servlet
-
JSPs
-
La petición.
-
La respuesta HTTP.
-
EL y JSTL.
-
Cookies.
-
Gestión del estado y control de acceso
-
Internacionalización.
-
Utilidades: carga de ficheros, envío de mails…
-
Buenas prácticas y consejos de rendimiento en aplicaciones Web.
-
Tecnologías del lado del cliente:
-
Javascript
-
Manipulación del árbol DOM
-
Eventos
-
Controles típicos: calendarios, edición de texto, APIs de uso de servicios on-line
-
Librerías JavaScript
-
AJAX
-
Aspectos básicos sobre seguridad en aplicaciones web
-
Protocolos seguros (HTTPS, certificados digitales)
-
Autenticación y control de acceso
-
Inyección de SQL
-
Robo de cookies
-
Cross site scripting
-
Otros ataques
Temario de prácticas
-
Configuración de servidor web
-
Configuración de servidores de aplicaciones J2E
-
Entornos de desarrollo J2EE.
-
Programación de BD en servidores de aplicaciones J2EE.
-
Paginación de listados
-
Búsquedas
-
Formularios
-
Carro de la compra
-
Gestión de usuarios y control de acceso
-
Envío de correo electrónico
-
Seguridad declarativa y SSL
-
Subida de ficheros
-
Internacionalización
-
JavaScript y AJAX
Bibliografía
Tipo: | Título |
Básica | HTTP Essentials. Stephen Thomas. John Wiley & Sons, Inc (2001). ISBN: 0-471-39823-3 Absys Biba |
Básica | Java Servlet Programming, Second Edition. Jason Hunter, William Crawford. O'Reilly, 2001. ISBN: 0-596-00040-5 Absys Biba |
Básica | JavaScript: The Definitive Guide, 6th ed. David Flanagan. O'Reilly, 2006. ISBN: 0-596-10199-6 Absys Biba |
Básica | JSTL. Practical Guide for JSP Programmers. Sue Spielman. The Morgan Kaufmann Practical Guides Series. Elsevier Science (2004). ISBN: 0-12-656755-7 Absys Biba |
Básica | Pro JSP 2. 4th Edition. Simon Brown et al. Apress, 2005. 1-59059-513-0 Absys Biba |
Complementaria | Advanced Ajax. Architecture and Best Practices. Shawn M. Lauriat. Prentice Hall. 0-13-135064-1 Absys Biba |
Complementaria | Design Accessible Web Sites. JJ. Sydik. The Pragmatic Programmer, 2007. ISBN: 1-934356-02-6 Absys Biba |
Complementaria | Java Enterprise Best Practices. The O¿Reilly Java Authors. O¿Reilly, 2002. 0-596-00384-6 Absys Biba |
Complementaria | Java Servlet & JSP Cookbook. Bruce W. Perry. O'Reilly Media, Inc., 2004. ISBN: 978-0-596-00572-6 |
Complementaria | Practical Javascript, DOM scripting, and Ajax projects. F. Zammetti. Apress, 2007. ISBN 978-1-59059-816-0. |
Complementaria | Professional jQuery / Cesar Otero, Rob Larsen. Wiley, [2012]. ISBN 978-1-1180-2668-7 Absys Biba |
Complementaria | Struts 2 in Action. D. Brown, C.M. Davis, S. Stanlick. Manning, 2008. ISBN 1-933988-07-X Absys Biba |
Complementaria | Web application vulnerabilities: detect, exploit, prevent. M. Cross, et al. Syngress Publishing, cop., 2007. ISBN 978-1-59749-209-6 Absys Biba |
Complementaria | Web design: a beginner's guide. Wendy Willard. McGraw-Hill. ISBN: 0-07-170134-6. Absys Biba |
Complementaria | Web design for developers: a programmer's guide to design tools and techniques. B.P. Hogan. Pragmatic Bookshelf, 2009. ISBN 978-1-9343561-3-5 Absys Biba |
Recursos en Internet |
Introducción a JavaScript. Javier Eguíluz Pérez. CC BY-NC-ND 3.0. |
Introducción a AJAX. Javier Eguíluz Pérez. CC BY-NC-ND 3.0. |
Documentación del servidor web Apache: http://httpd.apache.org/docs/trunk/ |
Returning Values from Forms: multipart/form-data |
Introducción a CSS. Javier Eguíluz Pérez. Librosweb.es. CC BY-NC-ND 3.0. |
Hypertext Transfer Protocol -- HTTP/1.1. The Internet Society (1999) |
Documentación de Apache Tomcat: http://tomcat.apache.org/tomcat-7.0-doc/index.html |
Writing Servlet Filters, Kief Morris. |
HTTP cookie, Wikipedia. http://en.wikipedia.org/wiki/Http_cookies |
Filter code with Servlet 2.3 model, Jason Hunter, JavaWorld.com. |
The Essentials of Filters. |
The Java EE 5 Tutorial, Chapter 30. Securing Web Applications. |
FileUpload - Home - Apache Commons |
Simple Captcha |
ReCaptcha |
Google Maps API |
Jama Mail API |
Metodología
Modalidades organizativas
Clases teóricas
Seminarios y talleres
Clases prácticas
Tutorías
Estudio y trabajo autónomo individual
Métodos de enseñanza
Método expositivo - Lección magistral
Estudio de casos
Resolución de ejercicios y problemas
Organización
Actividades presenciales | Tamaño de grupo | Horas |
Clases prácticas de laboratorio o aula informática | Informática | 28,00 |
Clases teóricas y prácticas de aula | Grande | 30,00 |
Examen final | Grande | 2,00 |
Total de horas presenciales | 60,00 |
Trabajo autónomo del estudiante | Horas |
Estudio autónomo individual o en grupo | 10,00 |
Preparación de las prácticas y elaboración de cuaderno de prácticas | 65,00 |
Resolución individual de ejercicios, cuestiones u otros trabajos, actividades en biblioteca o simi | 15,00 |
Total de horas de trabajo autónomo | 90,00 |
Evaluación
Sistemas de evaluación | % | ¿Recuperable? |
AP- Asistencia a las prácticas de la asignatura y entrega de las prácticas | 5 | No |
EF- Examen final | 60 | Sí |
P- Realización de las prácticas | 15 | No |
T- Realización de trabajo | 20 | No |
Total | 100% | |
Comentarios
-
P: la realización de las prácticas consistirá en el desarrollo gradual de una aplicación web. La evaluación de las prácticas se realizará a lo largo de la asignatura. Se realizarán una o dos evaluaciones de la aplicación en el grado de desarrollo en el que se encuentre en el momento de la evaluación. Al menos una de las evaluaciones se realizará mediante una entrevista concertada con el profesor. En la entrevista, el alumno deberá, entre otras cosas, justificar sus decisiones de diseño y desarrollo de forma convincente, explicar al profesor cómo ha desarrollado los ejercicios y contestar a preguntas sobre soluciones alternativas. Durante la entrevista el alumno recibirá comentarios que le permitirán mejorar la realización de las prácticas. Si el resultado no es satisfactorio, el profesor podrá citar al alumno para una entrevista posterior.
-
T: el trabajo de la asignatura consistirá en la realización de una serie de ejercicios adicionales a los enunciados de las prácticas. Estos ejercicios complementarán la funcionalidad de la aplicación desarrollada durante las prácticas El entregable final incluirá la aplicación completa, es decir, los ejercicios de las prácticas y del trabajo. Todos estos ejercicios se evaluarán de forma global en el trabajo.
-
Tanto las prácticas (P) como el trabajo (T) deben ser realizadas individualmente.
Criterios críticos para superar la asignatura
-
Para aprobar la asignatura es necesario obtener una calificación de al menos 3 puntos en las pruebas P, T y EF.
-
AP: Para obtener el 5 % de la calificación correspondiente a la asistencia a prácticas es necesario asistir como mínimo a todas las sesiones de prácticas salvo una. Además será necesario haber entregado todas las prácticas, salvo una, a tiempo. Para excusar las faltas de asistencia será necesario aportar un documento justificativo. La fecha de entrega de las prácticas se indicará en el aula virtual de la asignatura