Programación de aplicaciones web
GUÍA DOCENTE Curso 2016-17
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 |
Modalidad de enseñanza de la titulación: | Presencial |
Carácter: | Obligatoria | Curso: | 3 | Duración: | Semestral |
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: | |
Profesorado previsto
Profesor: | García Izquierdo, Francisco José | Responsable de la asignatura |
Teléfono: | 941299260 | Correo electrónico: | francisco.garcia@unirioja.es |
Despacho: | 3219 | Edificio: | CENTRO CIENTÍFICO TECNOLÓGICO | Tutorías: | Consultar |
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
Recomendados para poder superar la asignatura.
Conocimientos de lenguajes de programación, de redes de computadores, de sistemas distribuidos y de programación de bases de datos.
Asignaturas que proporcionan los conocimientos y competencias:
- 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.
CG8-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.
CG10-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.
CG11-Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
CG12-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.
CG13-Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes.
CG18-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.
Competencias específicas
CE14-Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.
CE17-Conocimiento y aplicación de las características, funcionalidades y estructura de los Sistemas Distribuidos, las Redes de Computadores e Internet y diseñar e implementar aplicaciones basadas en ellas.
CE19-Conocimiento y aplicación de las herramientas necesarias para el almacenamiento, procesamiento y acceso a los Sistemas de información, incluidos los basados en web.
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
- Nociones básicas de accesibilidad
- 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
- 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
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 | 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 | 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 | 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 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 |
Complementaria | Web design: a beginner's guide. Wendy Willard. McGraw-Hill. ISBN: 0-07-170134-6. 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
Clases prácticas
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 | 32,00 |
Total de horas presenciales | 60,00 |
Trabajo autónomo del estudiante | Horas |
Resolución individual de ejercicios, cuestiones u otros trabajos, actividades en biblioteca o simi | 15,00 |
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 |
Total de horas de trabajo autónomo | 90,00 |
Evaluación
Sistemas de evaluación | Recuperable | No Recup. |
Trabajos y proyectos | | 15% |
Pruebas escritas | 60% | |
Informes y memorias de prácticas | | 25% |
Total | 100% |
Comentarios
- El material didáctico se encontrará disponible en el aula virtual para todos los alumnos matriculados en esta asignatura
- Si necesitas buscar un laboratorio informático en el que se encuentre instalado el software necesario para esta asignatura, puedes consultar en la página http://www.unirioja.es/servicios/si/, enlace "Salas informáticas". Aquí tienes el listado del software disponible en cada uno de los laboratorios informáticos del campus
- La evaluación continua (40 %, no recuperable) corresponde a la realización de las prácticas y el trabajo de la asignatura. Por tanto la evaluación continua se realizará mediante el sistema de evaluación de "Informes y memorias de prácticas" y "Trabajos y proyectos".
- El 25% de evaluación de prácticas de la asignatura (no recuperable) se divide en dos partes:
- Asistencia a prácticas (5%)
- Realización de prácticas (20%). La realización de las prácticas consistirá en el desarrollo gradual de una aplicación web. Se realizarán una o dos evaluaciones durante el curso. Se evaluará la aplicación en el grado de desarrollo en el que se encuentre en el momento de organizarse la evaluación. Preferentemente, 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/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.
- 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 como el trabajo deben ser realizadas individualmente.
- Para los estudiantes a tiempo parcial (reconocidos como tales por la Universidad) el profesor responsable de la asignatura podrá sustituir las actividades de evaluación no recuperable por otras a especificar en cada caso.
Criterios críticos para superar la asignatura
- Para aprobar la asignatura en la convocatoria ordinaria es necesario:
- obtener una calificación de al menos 5 puntos en las pruebas escritas
- obtener una calificación de al menos 5 puntos en las prácticas
- obtener una calificación de al menos 3 puntos en el trabajo.
- Para aprobar la asignatura en la convocatoria extraordinaria es necesario:
- obtener una calificación de al menos 5 puntos en las pruebas escritas.
- 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.
Para excusar las faltas de asistencia será necesario aportar un documento justificativo.
Además será necesario haber entregado todas las prácticas, salvo una, a tiempo.
La fecha de entrega de las prácticas se indicará en el aula virtual de la asignatura
31/01/17 09:35:24 - G 2016-17 - 801G - 447