Última actualización: 07/07/2020


Curso Académico: 2020/2021

Computación Web
(13432)
Titulación: Grado en Ingeniería Telemática (215)


Coordinador/a: ARIAS FISTEUS, JESUS

Departamento asignado a la asignatura: Departamento de Ingeniería Telemática

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:




Materias que se recomienda haber superado
- Programación - Programación de Sistemas - Aplicaciones Telemáticas - Procesamiento de Formatos en Aplicaciones Telemáticas - Arquitectura de Sistemas II
Competencias que adquiere el estudiante y resultados del aprendizaje.Más información en este enlace
El objetivo de este curso es que el alumno se familiarice con las tecnologías fundamentales relacionadas con programación en la Web y bases de datos, de tal forma que sea capaz de aplicarlas en un proyecto de diseño y desarrollo de una aplicación Web dados unos requisitos y restricciones. * Competencias generales: - Habilidad para aplicar conocimientos previos de tecnologías de las comunicaciones. - Habilidad para diseñar un sistema complejo dados unos requisitos y restricciones. - Entender la responsabilidad ética y profesional en el desarrollo de un proyecto. - Capacidad para aprender y buscar información autónomamente. - Capacidad para utilizar entornos de desarrollo y herramientas modernas en el desarrollo de un sistema. * Competencias específicas: - Habilidad para aplicar las tecnologías fundamentales de presentación de información y programación en la Web. - Habilidad para editar documentos de hipertexto con hojas de estilo. - Habilidad para diseñar y desarrollar aplicaciones Web con tecnologías de servidor y de cliente. - Habilidad para diseño, gestionar y realizar consultas en bases de datos relacionales. - Habilidad para utilizar bases de datos relacionales desde aplicaciones Web. - Habilidad para considerar aspectos de seguridad y protección de datos en el diseño y desarrollo de aplicaciones Web.
Descripción de contenidos: Programa
El contenido de la asignatura se divide en los siguientes temas: 1.- Tecnologías del lado del cliente 1.1.- Introducción a la Web y repaso de HTTP 1.2.- El lenguaje HTML 1.3.- Hojas de estilo CSS 1.4.- El lenguaje de programación Javascript 2.- Tecnologías para el almacenamiento de datos 2.1.- Introducción a las bases de datos relacionales 2.2.- El lenguaje SQL 2.3.- Acceso a bases de datos desde programas Java: JDBC e introducción al mapeo objeto-relacional 3.- Tecnologías del lado del servidor 3.1.- El patrón modelo-vista-controlador 3.2.- Servlets 3.3.- Páginas JSP 4.- Seguridad en aplicaciones Web 4.1.- Introducción 4.2.- Ataques al almacenamiento de datos 4.3.- Ataques para esquivar controles en el lado del cliente 4.4.- Ataques a los mecanismos de autenticación y autorización 4.5.- Ataques a los mecanismos de gestión de sesiones 4.6.- Ataques a otros usuarios de la aplicación 5.- Otros aspectos de desarrollo Web 5.1.- La API XMLHttpRequest 5.2.- Introducción a otras APIs modernas de Javascript (almacenamiento en el cliente, geolocalización, notificaciones en el escritorio, websockets, etc.) 5.3.- Escalabilidad de aplicaciones Web
Actividades formativas, metodología a utilizar y régimen de tutorías
Las actividades que se llevan a cabo en la impartición de la asignatura son las siguientes: - Clases magistrales: sesiones de introducción teórica a los contenidos fundamentales de la asignatura. Se fomentan tanto la interactividad como la discusión de los principales problemas planteados. - Clases de laboratorio: los alumnos resuelven en el ordenador ejercicios de programación para familiarizarse de forma práctica con los principales contenidos de la asignatura. - Proyecto de aplicación Web: los alumnos deben llevar a cabo a lo largo del curso, en parejas, un proyecto de programación relativamente complejo consistente en el diseño y desarrollo de una aplicación Web con base de datos, dados unos requisitos y restricciones realistas. Los alumnos dispondrán de apoyo de los profesores en clases de laboratorio y tutorías para desarrollar el proyecto. El proyectos tendrá un papel fundamental en el desarrollo de la asignatura, y servirá como hilo conductor desde el principio hasta el final del curso. Además de apoyar la adquisición de las competencias específicas, estarán enfocados a la adquisición de las competencias generales mencionadas anteriormente: - Los alumnos deben aplicar conocimientos previos de programación y protocolos de transporte (TCP) y aplicación (HTTP, DNS). - Los alumnos deben diseñar una aplicación Web compleja dados unos requisitos y restricciones realistas. - Los alumnos deben diseñar la aplicación Web teniendo en cuenta su responsabilidad en la protección adecuada de los datos privados de sus usuarios y la seguridad de la información en general. - Los alumnos deben presentar y defender de forma oral el proyecto desarrollado. - Se fomentará la aplicación en el proyecto de tecnologías de programación Web recientes no explicadas por el profesor en clase. Se espera de esta forma que los alumnos desarrollen su habilidad para aprender de forma autónoma, lo cual resulta fundamental para su vida profesional futura. La evaluación del proyecto se centrará no sólo en aspectos técnicos sino también en la adquisición de los objetivos de aprendizaje enumerados.
Sistema de evaluación
  • Peso porcentual del Examen Final 30
  • Peso porcentual del resto de la evaluación 70
Bibliografía básica
  • Dafydd Stuttard, Marcus Pinto. The Web Application Hacker's Handbook 2nd ed.. John Wiley & Sons. 2011
  • David Flanagan. JavaScript: The Definitive Guide, 6th Edition. O'Reilly Media Inc.. 2011
  • Douglas Crockford. JavaScript: The Good Parts. O'Reilly Media, Inc.. 2008
  • Larry Brown, Marty Hall. Core Servlets and JavaServer Pages¿: Volume 1: Core Technologies, 2nd Edition. Prentice Hall. 2003
  • Larry Rockoff. The Language of SQL. Course Technology PTR. 2010
  • Rob Larsen. Beginning HTML and CSS. Wrox. 2013
Bibliografía complementaria
  • David Flanagan. jQuery Pocket Reference. O'Reilly Media, Inc.. 2010
  • Martin L. Abbott, T. Fisher. Scalability Rules: 50 Principles for Scaling Web Sites. Addison-Wesley Professional. 2011
  • Simon Harris. HTML5 Unleashed. Sams. 2013

El programa de la asignatura y la planificación semanal podrían sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.


Dirección web para más información: http://www.it.uc3m.es/jaf/cw/