Desarrollo de Aplicaciones Web

Créditos 3
Semestre 2016-20
Profesor Mario Linares Vásquez - m.linaresv at uniandes.edu.co
Horario MJ 8:00 - 9:20
Atención a estudiantesML652 MJ 10:00 - 11:00, 14:30 - 16:00
MonitoresPedro Antonio Otoya Visbal - pa.otoya757 at uniandes.edu.co, Felipe Otalora Romero - f.otalora10 at uniandes.edu.co

Propósito

El propósito de este curso es ofrecer a los participantes las bases para entender el desarrollo de aplicaciones web en la actualidad, para esto se realiza un recorrido desde sus comienzos hasta hoy reconociendo en cada momento los factores claves que generaron los hitos del desarrollo web.

Se estudiará y practicará con las tecnologías de tres etapas diferentes de las aplicaciones web:

  • Aplicaciones con cliente estático
  • Aplicaciones con cliente dinámico primera generación
  • Aplicaciones con cliente dinámico segunda generación (Single Page Applications).

El curso tiene su enfoque principal en el desarrollo de Single Page Applications.

Objetivos de aprendizaje

Al finalizar el curso el estudiante debe estar en capacidad de:

  • Reconocer y explicar los hitos principales en la evolución del desarrollo web
  • Enumerar y explicar los factores principales que han generado los grandes cambios en las tecnologías de desarrollo de las aplicaciones web
  • Explicar el protocolo HTTP desde la perspectiva del desarrollo web: desarrollar un cliente y un servidor básicos del protocolo
  • Desarrollar aplicaciones utilizando las distintas tecnologías y modelos de desarrollo que existen para las aplicaciones web: servidores con y sin estado, clientes estáticos, clientes dinámicos.
  • Desarrollar aplicaciones web asíncronas utilizando ajax
  • Desarrollar aplicaciones restful en javascript utilizando Angular como framework.

Metodología

Este es un curso eminentemente práctico. Se realizarán clases teórico/prácticas con lecturas que ilustran el desarrollo web en el mundo hoy, sus retos, ventajas y posibilidades. Los estudiantes desarrollarán talleres individuales y también en grupos de trabajo en donde se reforzarán los conceptos teóricos. En el curso se desarrollarán tareas y proyectos para aplicar los conceptos.

En la wiki del curso estará disponible un conjunto de talleres, tutoriales, ejercicios propuestos, ejemplos, etc. para ser utilizados dentro y fuera de la clase. Para los quizzes y parciales se utilizará SICUA.

Propuesta de Temas

Conceptos básicos/Tecnologías del lado del cliente:
  1. Introducción: Aplicaciones web/Servidores web, contenedores, servidores aplicaciones, Protocolo HTTP.
  2. Tecnologías del lado del cliente: HTML, CSS, JS, JQUERY.
Tecnologías del lado del servidor:
  1. Estilos arquitectónicos/Patrones de diseño/ Aplicaciones JEE
  2. Servlets/JSPs/Expressionlanguage/JSF
  3. Llamadas asíncronas, AJAX, Web Services
Frameworks para JS:
  1. Javascript avanzado: objetos, funciones, prototipos, call, apply, “this”, desempeño
  2. Patrones de diseño para aplicaciones web orientadas al usuario
  3. Aplicaciones responsivas basadas en SPA (Single Page Application)
  4. Angular JS: conceptos básicos, módulos, vistas

Evaluación

2 Parciales 40%
Talleres, quizzes (sorpresa) y trabajo en clase 20%
Proyectos 45%

Para aprobar el curso la nota calculada debe ser al menos de 3.00. Las definitivas se darán en dos decimales. Las notas finales tendrán dos decimales. Las reglas del redondeo que se aplican al segundo decimal son: Si el tercer decimales menor que 5, el anterior no se modifica. Si es mayor o igual que 5, el anterior se incrementa en una unidad.

La asistencia a clase es obligatoria. Cada estudiante debe firmar una hoja de asistencia que el profesor entregará durante la clase. Es responsabilidad del estudiante firmar la hoja de asistencia. El estudiante que no asista a por lo menos el 80% de las clases, no podrá aprobar el curso.

Los talleres se realizarán durante la clase los días martes, y la correspondiente entrega será al final de la clase. El jueves de la semana anterior al martes del taller, se hará entrega del material respectivo al taller, de tal forma que los estudiantes tendrán tiempo suficiente para: (i) realizar las lecturas sugeridas, (ii) revisar los ejemplos que soportan el taller, y (iii) preparar el código/artefactos requeridos para el taller. Los equipos se realizarán en equipos de dos estudiantes, o de forma individual dependiendo del taller; el algunos casos la selección de los miembros de cada equipo se hará de forma aleatoria.

El proyecto (3 iteraciones) se implementará en equipos de 4 estudiantes. Las 3 iteraciones se entregarán en la fechas indicadas a más tardar al terminar la clase; cada entrega debe incluir:

  • Documentación de diseño: requerimientos (casos de uso, o historias de usuario, o listados de características, etc), especificación de componentes (diagrama y descripción), modelo de base de datos
  • Documentación técnica: manual de instalación, manual de usuario, tecnologías usadas, descripción de dependencias
  • Código fuente de la aplicación
  • Archivo desplegable y recursos de instalación (ej., script de bases de datos), listo para instalar de acuerdo con las instrucciones en el manual de instalación.

La entrega final incluirá una presentación del proyecto a toda la clase.

Los parciales son teóricos e individuales.

Bibliografía

Libros

  1. Head First Web Design. Ethan Watrall, Jeff Siarto. 2008
  2. Learning Web Design, 4th Edition. A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics. Jennifer Niederst Robbins. 2012
  3. JavaScript: The Good Parts. Douglas Rockford. 2008
  4. Head First Servlets and JSPs, 2nd Edition. Bryan Basham, Kathy Sierra, Bert Bates. 2008
  5. Designing Web Interfaces. Principles and Patterns for Rich Interactions. Bill Scott, Theresa Neil. 2009
  6. Creating Flat Design Websites. António Pratas. 2014
  7. Pro AngularJS (Expert's Voice in Web Development). Adam Freeman. 2014
  8. AngularJS Up & Running. Shyam Sephardi & Brad Green. 2014

Recursos en línea

Créditos

Este curso fue diseñado y preparado por:

Profesores

  • Mario Linares Vásquez
  • Rubby Casallas
  • Jaime Chavarriaga
  • Camilo Álvarez

Asistentes

  • Daniel Escobar
  • Juan Camilo Bages
  • Sebastian Valencia
inicio.txt · Última modificación: 2016/11/17 16:41 por m.linaresv
Departamento de Ingeniería de Sistemas y Computación - Facultad de Ingeniería - Universidad de los Andes
CC Attribution-Noncommercial-Share Alike 3.0 Unported
Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0