Programación  de  aplicaciones  web

+Info
DEPARTAMENTO PROFESOR/ES
Matemáticas y Computación Francisco José García Izquierdo  (Responsable)
TITULACIONES EN LAS QUE SE IMPARTE LA ASIGNATURA
Titulación Carácter Curso Semestre Créditos Guía Docente
Grado en Ingeniería Informática Obligatoria 3 Segundo Semestre 6 pdf
BIBLIOGRAFÍA RECOMENDADA
COMENTARIO GLOBAL A LA BIBLIOGRAFÍA
Las características del curso hacen que la bibliografía sea en su gran mayoría digital, es decir, utilizar Internet para la búsqueda de información adicional a la presentada en clases

JavaScript: The Definitive Guide, 6th ed. David Flanagan. O'Reilly, 2006. ISBN: 9780596101992
COMENTARIO PROFESOR
Se trata de un libro de referencia excelente y fundamental para cualquier programador de aplicaciones web en su lado cliente. Cubre todos los aspectos tratados en el tema 4 (lenguaje JavaScript, manipulación DOM, sistema de eventos, AJAX…)
Practical Javascript, DOM scripting, and Ajax projects. F. Zammetti. Apress, 2007. ISBN 978-1-59059-816-0.
COMENTARIO PROFESOR
El libro cubre varios aspectos avanzados del lenguaje JavaScript, sobre todo en lo relativo a la manipulación DOM y al empleo de AJAX. Puede emplearse como complemento para el tema 4.
HTTP essentials : protocols for secure, scaleable, Web sites / Stephen A. Thomas-- New York : Wiley, cop. 2001
Java Servlet programming / Jason Hunter with William Crawford-- 2nd ed-- Sebastopol, CA : O'Reilly, 2001
JSTL : practical guide for JSP programmers / Sue Spielman-- San Francisco (California) : Morgan Kaufmann, [2004]
Pro JSP 2 / Simon Brown ... [et al.]-- 4th ed-- Berkeley (California) : Apress, cop. 2005
Struts 2 in Action. D. Brown, C.M. Davis, S. Stanlick. Manning, 2008. ISBN 1-933988-07-X
COMENTARIO PROFESOR
Libro de referencia para el tema 5 en el que se cubre en profundidad el framework Struts. Su contenido excede el nivel exigido en la asignatura, pero puede ser usado por los alumnos para complementar su formación sobre el tema.
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
COMENTARIO PROFESOR
Este libro repasa conceptos básicos sobre diseño, teoría del color, la tipografía, y la accesibilidad. Está destinado como material de consulta para el tema 1.
Design Accessible Web Sites. JJ. Sydik. The Pragmatic Programmer, 2007. ISBN: 1-934356-02-6
COMENTARIO PROFESOR
El libro recoge 36 claves para la creación de sitios web accesible. Su contenido excede el nivel exigido en la asignatura, pero puede ser usado por los alumnos para complementar su formación sobre accesibilidad web.
Web application vulnerabilities: detect, exploit, prevent. M. Cross, et al. Syngress Publishing, cop., 2007. ISBN 978-1-59749-209-6
COMENTARIO PROFESOR
El libro se centra en la seguridad de aplicaciones, concretamente en los aspectos relacionados con los ataques que se cubren en el tema 7. Su contenido excede el nivel exigido en la asignatura, pero puede ser usado por los alumnos para complementar su formación sobre seguridad web.
Advanced Ajax : architecture and best practices / Shawn M. Lauriat-- Upper Saddle River : Prentice Hall, [2008]
Java enterprise best practices / The O'Reilly Java authors ; [editor, Robert Eckstein]-- Sebastopol (California) : O´Reilly, 2003
Java Servlet & JSP Cookbook. Bruce W. Perry. O'Reilly Media, Inc., 2004. ISBN: 978-0-596-00572-6
Professional jQuery / Cesar Otero, Rob Larsen-- Indianapolis (Indiana) : Wiley, [2012]
Web design : a beginner's guide / Wendy Willard-- 2nd. ed-- New York : McGraw-Hill, cop. 2010
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


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ática 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.
TEMARIO
1 Fundamentos de las aplicaciones web.
- HTTP
- HTML y CSS
- Otras tecnologías
2 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
- Aspectos metodológicos: estructuración de la información, diagrama de Navegación, usabilidad...
3 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.
- Gestión del estado y control de acceso
- Utilidades: carga de ficheros, envío de mails
4 Tecnologías del lado del cliente:
- Javascript
- Manipulación del árbol DOM
- Controles típicos: calendarios, edición de texto, APIs de uso de servicios on-line
- Librerías JavaScript
- AJAX
5 Tecnologías avanzadas del lado del servidor: Struts y JSF
6 Aspectos básicos sobre accesibilidad web
- Normativa
- Técnicas de accesibilidad
- Javascript no intrusivo
- Herramientas para la accesibilidad
7 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
8 Posicionamiento web
9 Breve introducción a PHP
10 Gestores de contenido