Nombre | Sección | Github | |
---|---|---|---|
Jaime Navón | 1 | @jnavon | [email protected] |
Nombre | Github | |
---|---|---|
Matias Iordache | @meiordac | [email protected] |
Patricio López | @mrpatiwi | [email protected] |
David Peña | @dnpena | [email protected] |
El objetivo de este curso es que los alumnos conozcan la infraestructura tecnológica sobre los cual descansa la World Wide Web y aprendan a manejar las principales tecnologías que se utilizan para construir sitios y aplicaciones en la plataforma Web. El objetivo es lograr entregar una base conceptual suficiente como para que el alumno pueda 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 el WWW.
- Conocerán la arquitectura tecnológica de sitios y aplicaciones Web.
- Podrán construir sitios con contenido dinámico.
- Podrán construir aplicaciones usando diversas tecnologías y herramientas.
- Estarán capacitados para entender y evaluar los méritos de las nuevas tecnologías.
- 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
- Control de la presentación con CSS
- Una Web de APIs de programación
- Introducción a los servicios web
- REST
- Diseñando un 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
A lo largo del semestre el profesor desarrolla sistemáticamente una aplicación web en clases. Las distintas tecnologías, estándares y técnicas van siendo introducidas a medida que la aplicación se completa, en el momento que se hacen necesarios. Por otra parte, los alumnos trabajan en grupo desarrollando una aplicación propia durante el semestre. Cada dos semanas los alumnos son evaluados por su grado de avance en el proyecto. 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
Se llevarán a cabo tres interrogaciones escritas que cubren el material visto en clases y lo asignado como lectura o estudio personal, más un examen final que cubre todo el material del semestre. Adicionalmente, la nota del examen puede reemplazar a la nota de una de las dos interrogaciones, ya sea se haya rendido o no por alguna razón. El trabajo práctico en el proyecto será evaluado en la siguiente forma: un 50% de la nota corresponderá al promedio de las evaluaciones periódicas parciales y un 50% corresponderá a la entrega del producto final. Para tener derecho a la entrega final debe acreditarse un avance de al menos un 50% al completar la última evaluación parcial. La nota final considera las interrogaciones, el examen práctico, una nota de participación y el proyecto de la siguiente forma:
- Nota Teórica: (I1 + I2 + I3 + Examen + P)/5
- Nota Práctica: (Nota Entregas Parciales) * 0.50 + (Nota Entrega Final) * 0.50
- Nota Final:
- Si nota teórica sobre 4 y nota práctica sobre 4 entonces el promedio de ambas notas.
- En caso contrario la menor entre ambas notas.
La nota de participación contempla actividades de distinto tipo desarrolladas en clases, notas por plantear buenas preguntas, notas por responder correctamente preguntas planteadas, etc.
- 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
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 en el SIDING Específicamente, para los cursos del Departamento de Ciencia de la Computación, rige obligatoria- mente 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. Si un alumno copia un trabajo, obtendrá nota final 1.1 en el curso y se solicitará a la Dirección de Pregrado 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 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.
Los proyectos que se desarrollarán durante el curso serán:
Más información de los proyectos aquí
Hay harta información útil en la Wiki del curso, la pueden encontrar en el menú lateral derecho o presionando aquí.
Para comenzar con la aplicación Rails, pueden revisar esta sección en la wiki.
A modo de máximizar el aprendizaje y diversión, no todas las gemas están permitidas. Es importante que revisen esa sección en la wiki.
La página de Issues se utilizará como foro para preguntas.
Dentro de Issues, las entradas se pueden etiquetar dentro de ciertas categorías predefinidas para mantener el orden y facilitar la búsquda de problemas similares. Una entrada puede tener múltiples etiquetas. Los ayudantes nos encargaremos de ir etiquetando las entradas en el foro.
- Ausencia de material prometido: para solicitar material que no haya sido subido al repositorio.
- Código: sobre métodos, clases, sintaxis, estándares, etc.
- Enunciado o Entrega: sobre el enunciado de alguna entrega.
- Interrogación: sobre fechas, contenido, recorreción de interrogaciones, etc.
- Materia: sobre conceptos y/o temas vistos en clases o fuera de esta.
- Duplicada: pregunta repetida, se hará referencia a la pregunta original.
- Gemas: Consultas si se puede utilizar cierta gema o no.
- Git: Preguntas relacionadas con
git
- I'm a Teapot: broma geek ( ͡° ͜ʖ ͡°)
- Inválida: la pregunta no cumple los estándares o viola el procedimiento descrito abajo.
- Meta-pregunta: pregunta sobre cómo y qué preguntar.
- Tengo un error: para preguntar sobre errores o bugs en códigos.
Antes de postear:
- Buscar en internet hasta encontrar la solución.
- Si pasan horas y el problema persiste, entrar a Issues.
- Buscar si alguien tiene la misma pregunta o problema.
- Si encuestra un post marcado como resueto, pero no te satisface la respuesta, puedes comentar la issue y volver a abrirla.
- En caso de no encontrar un post que te sirva, lo creamos presionando New issue.
- Escribir una entrada explicando bien el problema o pregunta.
- Publicar.
Tanto al publicar como comentar, se debe atenerse 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, dar las gracias y cerrar la issue.