Atributos
Sigla: 
CI-0137
Créditos: 
4
Horas: 
5
Correquisitos: 
Clasificación: 
Curso propio
Énfasis y ciclo: 
Ingeniería de Software 3.II
Descripción: 

Este es un curso introductorio al conjunto de tecnologías para el desarrollo de aplicaciones en la Web, que abarca tanto fundamentos teóricos como prácticos.  El diseño del curso está enfocado a estudiantes  de  tercer año  de  la  carrera  de  Bachillerato  en  Computación  e Informática, que llevan simultáneamente los cursos de Ingeniería de Software, Bases de Datos, y Proyecto Integrador de Ingeniería de Software y Bases de Datos.  El curso se perfila como un acompañamiento a dichos cursos para el énfasis de Ingeniería de Software.  Se espera que una vez concluido este curso, el estudiante muestre la capacidad de desempeñarse como desarrollador en proyectos de aplicaciones web de mediana complejidad. Se sugiere utilizar aprendizaje basado en problemas y aprendizaje basado en proyectos como estrategias didácticas para lograr los objetivos de aprendizaje de este curso.

Objetivo general: 

El objetivo general del curso es que los estudiantes desarrollen habilidades para la evaluación, el diseño y el desarrollo de aplicaciones web, con el fin de tener la capacidad de colaborar en el desarrollo de proyectos de ingeniería web, mediante la utilización normas, protocolos, patrones de diseño, modelos y arquitecturas vigentes en la industria.

Objetivos específicos: 

Durante este curso el estudiante desarrollará habilidades para:

  1. Explicar el protocolo HTTP, con el fin de desarrollar aplicaciones que funcionen correctamente en él, mediante la implementación, simulación o estudio de un pequeño servidor.
  2. Identificar los fundamentos de composición de diseño gráfico, con el fin de poder evaluar la estética visual de sitios web, mediante la revisión y la aplicación de conceptos utilizados en diseño gráfico.
  3. Describir el ciclo de desarrollo de un sitio web, con el fin de aplicarlo en contextos de ingeniería de software para la Web, mediante la planificación de un proyecto.
  4. Utilizar las tecnologías y técnicas frontales (frontend) y dorsales (backend), con el fin de desempeñarse como desarrollador de  proyectos de ingeniería web, mediante prácticas de laboratorio.
  5. Construir y consumir componentes que interoperan, con el fin de crear aplicaciones compuestas por plataformas heterogéneas o heredadas, mediante la utilización de servicios web.
  6. Construir aplicaciones móviles híbridas y script-nativas, con el fin de ofrecer aplicaciones web en forma móvil, mediante la utilización de estándares web empotrados en dispositivos móviles.
  7. Desarrollar sitios modificables por usuarios, con el fin de proveer sitios que no requieren ser administrados por personal calificado como técnicos web o programadores, mediante la implementación de administración de contenido.
Contenidos: 
Objetivo específico Eje temático Desglose
1 Internet y el protocolo HTTP La red Internet: capas, servicios, sockets, world wide web, protocolo HTTP, ejemplos de comunicación, servidores multiprocesos, multihilos y por eventos.
2 Diseño gráfico para sitios web Diagramación y composición: proceso de diseño, rejillas, balance, unidad, énfasis, diagramaciones, tamaño (fijo, fluido, adaptable), resolución. Color: psicología, temperatura, valor cromático, teoría, paletas, herramientas. Textura: punto, línea, figura, volumen y profundidad, patrones, construcción de textura. Tipografía: fuentes web, espaciado, alineamiento, familias, herramientas. Imágenes: usos legítimos, ajustes, formatos y resoluciones, tratamientos creativos.
3 Ciclo de vida de sitios web Definición del proyecto: descubrimiento, clarificación y planificación. Desarrollo de la estructura del sitio: relativo al contenido, relativo al sitio y relativo a la página. Diseño visual y pruebas: creación, confirmación y entrega a producción. Producción y control de calidad: preparación, construcción y pruebas. Lanzamiento: entrega, lanzamiento y mantenimiento.
4 Tecnologías y técnicas de frente (frontend) X/HTML: HTML y serialización XML de HTML, gramática (entidades, etiquetas más comunes, listas, tablas, enlaces), formularios HTML y xforms. Hojas de estilo: utilidad (presentación contra estructura), lenguajes de estilos, especificación (en línea, en el encabezado, externa -preferida y alterna-), tipos de medios, consultas de medios, modelo de caja, lenguajes preprocesadores de estilos, cuadrículas. JavaScript: inclusión de JavaScript en HTML (en línea y externo), gramática (variables y tipos de datos, operadores, estructuras de control, comentarios, funciones, objetos, prototipos, excepciones), modelo de objetos del documento, eventos, validación de frente, marcos de desarrollo (bibliotecas) JavaScript. Detección de características del navegador: polyfills. AJAX y AJAJ: tecnologías involucradas, XMLHTTPRequest, JSON. Marcos de desarrollo de frente.
4 Tecnologías y técnicas de dorso (backend) Lenguajes de servidor: CGI, recuento de lenguajes en el lado del servidor, principal lenguaje de servidor del curso en mayor detalle. Lenguaje de servidor del curso: cookies y sesiones, plantillas, XML/XSLT, acceso a bases de datos, emparejadores objeto-relacional, patrón modelo-vista-controlador. Seguridad de aplicaciones web. Marcos de desarrollo: instalación, generación de código, desarrollo, componentes. Buenas prácticas en el desarrollo de aplicaciones web. Servidores basados en eventos.
5 Servicios web Servicios web: clientes y servidores (XML-RPC, SOAP y RESTful). Ejemplos.
6 Administración de contenidos Construcción de aplicaciones web de una única página: HTML, CCS y JavaScript. Empotrado de HTML en móviles: plataformas, objeto WebView, rendimiento de WebView, personalización de plataforma por medio de CSS. Aplicaciones script-nativas.
7 Administración de contenidos Ciclo de vida de la administración de contenido: planificación, implementación, inserción de contenido, mantenimiento. Desarrollo de extensiones.
Bibliografía: 

Libro de texto recomendado:

  1. Mendez, Michael. “The missing link: an introduction to web development and programming”, 2014

Otra bibliografía de apoyo:

  1. Basham, Bryan. “Head first servlets and JSP”, 2da edición. Beijing, Sebastopol.
  2. Beaird, Jason. “The principles of beautiful web design”, 2da edición. Noviembre, 2010.
  3. Ceballos, Fco. Javier.  “Java 2. Interfaces gráficas y aplicaciones para Internet”, 3a edición. Alfaomega Ra-Ma.
  4. Deitel, Paul J. “Internet & World Wide Web : how to program”, 4a edición. Upper Saddle River, N.J., Pearson/Prentice Hall : Deitel, 2008.
  5. Diaz, Ma. Paloma, Montero, Susana y Aedo-Cuevas, Ignacio.  “Ingeniería de la web y patrones de diseño”,  Pearson Educación, 2005
  6. Goldstein, Alexis, Lazaris, Louis y Weyl Estelle.  “HTML5 & CSS3 for the real world”, 1a edición. Sitepoint. 2011.
  7. Kelly Goto and Emily Cotler. “Web Redesign 2.0: Workflow that Works”, 2a edición. Peachpit Press, Berkeley, 2004.
  8. Raskin, Jef.  “Diseño de sistemas interactivos”. Addison Wesley.
  9. Ray, Erik T. “Learning XML”, 2da edición, Beijing ; Cambridge, Mass. : O'Reilly, 2003
  10. Sklar, David. “Learning PHP 5”, 1a edición, Sebastopol, CA : O'Reilly, 2004
  11. Zakas, Nicholas C. “Professional Ajax”. Indianapolis, IN : Wiley Pub.,  2006
     
LIberación de responsabilidad: 

Este no es un documento oficial. Documentos oficiales se entregan en la secretaría de la escuela.