Skip to content

Latest commit

 

History

History
230 lines (180 loc) · 13.5 KB

README.md

File metadata and controls

230 lines (180 loc) · 13.5 KB

IIC2513 — Tecnologías y Aplicaciones Web

Tabla de contenidos


Programa del curso

Equipo

Profesor

Nombre Sección GitHub Email
Rodrigo Saffie 1 @rasaffie [email protected]

Ayudantes

Nombre GitHub Email
Felipe del Río @fdelrio89 [email protected]
Matías Jünemann @mjjunemann [email protected]
Felipe Pezoa @MainScientist [email protected]
María Sepúlveda @mf222 [email protected]
Adrián Soto @alanezz [email protected]

Objetivos

El objetivo de este curso es que los alumnos conozcan la infraestructura tecnológica sobre la cual descansa la World Wide Web. Por otra parte, que aprendan a manejar las principales tecnologías que se utilizan para construir sitios y aplicaciones en la plataforma Web. Además se busca entregar una base conceptual suficiente como para que los alumnos puedan entender las nuevas tecnologías y propuestas que surgen día a día. Al finalizar el curso los alumnos:

  • Conocerán los principales estándares que hacen posible la Web.
  • Conocerán la arquitectura tecnológica de sitios y aplicaciones Web.
  • Podrán construir sitios Web con contenido dinámico.
  • Podrán construir aplicaciones Web usando diversas tecnologías y herramientas.
  • Estarán capacitados para entender y evaluar los méritos de las nuevas tecnologías.

Contenidos

  • Preliminares:
    • Pasado, presente y futuro de la Web.
    • La Web como plataforma de desarrollo.
    • Arquitectura de una aplicación Web típica (modelo MVC).
    • Lenguajes y Frameworks para desarrollo Web.
  • Introducción a Ruby on Rails:
    • Una primera mirada al framework.
    • Introducción al lenguaje de programación Ruby.
    • Presentación de la aplicación que desarrollaremos en clases.
  • Desarrollo de una aplicación típica:
    • Controladores y Vistas.
    • El Protocolo HTTP.
    • XML, HTML y XHTML.
    • Modelo.
    • Clases, tablas, migraciones y scaffolds.
    • Validación de la entrada (input).
    • Control de la presentación con CSS.
  • Una Web de APIs de programación:
    • Introducción a los servicios Web.
    • REST.
    • Diseñando una API RESTful.
  • Aplicaciones Web de cliente enriquecido (RIA):
    • JavaScript y el DOM.
    • Introducción a jQuery.
    • AJAX: Mejorando la experiencia del usuario.
    • El futuro de aplicaciones internet ricas: HTML5.
  • Aspectos finales:
    • Introducción a aspectos de seguridad.
    • Protocolo seguro HTTPS.
    • Aspectos de performance.

Metodología

Para complementar el contenido visto en clases, el profesor desarrollará sistemáticamente una aplicación Web a lo largo del semestre. Las distintas tecnologías, estándares y técnicas van siendo introducidas a medida que la aplicación se completa, y en el momento que se hacen necesarias.

Se espera un trabajo personal significativo por parte de los alumnos, ya sea:

  • Lectura y estudio de aspectos específicos del lenguaje y/o del framework.
  • Lecturas complementarias que profundizan y amplían lo que se discute en clases.
  • Desarrollo del proyecto a lo largo del semestre.

Evaluación

Interrogaciones

El curso contará con 3 interrogaciones a lo largo del semestre. El contenido de estas será el material visto en clases y posibles lecturas. Su hora de inicio será las 18:30, en las siguientes fechas:

Interrogación ¿Cuándo?
Interrogación #1 lunes 3 de abril
Interrogación #2 jueves 4 de mayo
Interrogación #3 jueves 1 de junio

Examen

El curso contará con un examen obligatorio. La nota del examen puede reemplazar la peor nota de una de las tres interrogaciones, ya sea que se haya rendido o no. De todas formas, la inasistencia a una evaluación debe ser justificada como lo explica la DIPRE.

La fecha del examen es el viernes 30 de junio.

Proyecto práctico

A lo largo del semestre los estudiantes trabajarán en grupos de 2 personas para desarrollar una aplicación Web.

El proyecto será evaluado periódicamente, con al menos 6 entregas y una presentación final.

Nota final

La nota final considera las interrogaciones, el examen y el proyecto de la siguiente forma:

  • Nota Teórica: (I1 + I2 + I3 + 2 * Ex - min(I1, I2, I3, Ex)) / 4
  • Nota Práctica: 0.5 * (Promedio entregas parciales) + 0.5 * (Entrega final)
    • Si el promedio de las entregas parciales es menor a 3.95, la nota práctica será el mínimo entre esta y 3.9. De esta forma, reprobar las entregas parciales significa reprobar el curso
  • Nota Final:
    • Si notas teórica y práctica son mayores o iguales a 3.95, entonces es el promedio simple entre ambas
    • En caso contrario, la menor entre ambas

Bibliografía

  • Ruby, Rails
    • Flanagan, D.; Matsumoto, Y. "The Ruby Programming Language", O'Reilly 2008
    • Fulton H. "The Ruby Way: Solutions and Techniques in Ruby Programming", Addisson Wesley 2006
    • Ruby S. "Agile Web Development with Rails (4th Ed)" The Pragmatic Programmer 2011
    • Carneiro C.; Al Barazi R. "Beginning Rails 3", Apress 2010
    • Hardy H.; Carneiro C. "Beginning Rails: From Novice to Professional", Apress 2007
    • Fernandez, O. "The Rails 3 Way", Pearson Ed. 2011
  • Design, HTML, XHTML, CSS, Standards
    • Beaird J. "The principles of beautiful Web Design" Sitepoint 2007
    • Vora P. "Web Application Design Patterns" Morgan Kaufman 2009
    • Niederst J. "Learning Web Design: A Beginner's Guide to (X)HTML, StyleSheets, and Web Graphics", OReilly 2007
    • Zeldman, J. "Designing with Web Standards (3rd Ed)", New Riders 2009
    • McFarland, D. "CSS: The Missing Manual", OReilly 2009
    • Collison, S. "Beginning CSS Web Development: From Novice to Professional" APress 2006
    • Lawson B., Sharp R. "Introducing HTML5", New Riders 2011
    • Keith J. "HTML 5 for Web Designers" A book apart 2011
  • Javascript
    • Resig J. "Pro JavaScript Techniques" APress 2006
    • Quigley E. "JavaScript by Example", Pearson 2011
    • Powers, S. "Learning JavaScript" OReilly 2006
    • Keith, J. "DOM Scripting: Web Design with JavaScript and the Document Object Model" APress 2005
    • Jonathan Chaffer J.; Swedberg K. "Learning JQuery 1.3" Packt Publishing 2007
  • XML
    • Ray E. "Learning XML" O´Reilly 2003
    • Hunter D., Ayers D., Rafter J., Van Der Vlist J., Fawcett J "Beginning XML" Wrox 2007
    • Rusty, E. "XML 1.1 Bible (3rd Ed)" Wiley 2004
    • Rusty, E. and Means W.S. "XML in a Nutshell, Third Edition" OReilly 2004

Wiki

Tendremos mucha información útil en la wiki del curso, la cual pueden encontrar en el menú superior de este repositorio.

Getting Started

Para comenzar con la aplicación Rails, pueden revisar esta sección en la wiki.

Gemas

Con el objetivo de maximizar el aprendizaje, no todas las gemas existentes están permitidas. Es importante que revisen esta sección en la wiki para conocer qué pueden usar en sus proyectos.

Foro

La página de Issues se utilizará como foro para preguntas.

Etiquetas

Dentro de Issues, las entradas se pueden etiquetar con ciertas categorías para mantener el orden y facilitar la búsqueda de problemas similares. Una entrada puede tener múltiples etiquetas. Aunque el equipo docente irá etiquetando según corresponda, también puedes adelantarte y clasificar tu pregunta en las categorías que correspondan:

  • Material: para discutir sobre el material entregado por el equipo docente
  • Código: sobre métodos, clases, sintaxis, estándares, etc
  • Enunciado o Entrega: sobre el enunciado o situación relacionada a alguna entrega de proyecto
  • Interrogación: sobre fechas, contenido, recorreción de interrogaciones, etc
  • Contenido: sobre conceptos y/o temas vistos en clases o fuera de éstas
  • Duplicada: pregunta repetida, se hará referencia a la pregunta original
  • Gemas: Consultas acerca de si se puede utilizar cierta gema que no está explícitamente indicada en la Wiki
  • Git: Preguntas relacionadas con git
  • Inválida: la pregunta no cumple los estándares o viola el procedimiento descrito abajo
  • Tengo un error: para preguntar sobre errores o bugs en códigos antes de caer en la desesperación (pero luego de haber buscado apropiadamente en Internet...)

Procedimiento

Antes de publicar:

  • Busca en la Web y en los issues de este repositorio la solución
    • Si encuentras un post marcado como resuelto, pero no te satisface la respuesta, puedes comentar la issue y volver a abrirla
  • En caso de no encontrar un post que te sirva, crea uno presionando New issue
    • Escribe una entrada explicando bien el problema o pregunta
    • Publica

Tanto al publicar como comentar, debes atenerte a las normas del curso. Además, debes utilizar Markdown cuando sea necesario. Por ejemplo, cuando se necesita mostrar código o mensajes de error.

Una vez resuelto el problema, da las gracias y cierra el issue.

Política de integridad académica

Los alumnos de la Escuela de Ingeniería de la Pontificia Universidad Católica de Chile deben mantener un comportamiento acorde a la Declaración de Principios de la Universidad. En particular, se espera que mantengan altos estándares de honestidad académica. Cualquier acto deshonesto o fraude académico está prohibido; los alumnos que incurran en este tipo de acciones se exponen a un Procedimiento Sumario. Es responsabilidad de cada alumno conocer y respetar el documento sobre Integridad Académica publicado por la Dirección de Docencia de la Escuela de Ingeniería (disponible en SIDING).

Específicamente, para los cursos del Departamento de Ciencia de la Computación, rige obligatoriamente la siguiente política de integridad académica. Todo trabajo presentado por un alumno para los efectos de la evaluación de un curso debe ser hecho individualmente por el alumno, sin apoyo en material de terceros. Por trabajo se entiende en general las interrogaciones escritas, las tareas de programación u otras, los trabajos de laboratorio, los proyectos, el examen, entre otros.

En particular, si un alumno copia un trabajo, o si a un alumno se le prueba que compró o intentó comprar un trabajo, obtendrá nota final 1.1 en el curso y se solicitará a la Dirección de Docencia de la Escuela de Ingeniería que no le permita retirar el curso de la carga académica semestral.

Por copia se entiende incluir en el trabajo presentado como propio, partes hechas por otra persona. En caso que corresponda a copia a otros alumnos, la sanción anterior se aplicará a todos los involucrados. En todos los casos, se informará a la Dirección de Docencia de la Escuela de Ingeniería para que tome sanciones adicionales si lo estima conveniente.

Obviamente, está permitido usar material disponible públicamente, por ejemplo, libros o contenidos tomados de Internet, siempre y cuando se incluya la referencia correspondiente.

Lo anterior se entiende como complemento al Reglamento del Alumno de la Pontificia Universidad Católica de Chile. Por ello, es posible pedir a la Universidad la aplicación de sanciones adicionales especificadas en dicho reglamento.