Skip to content

IIC2513-2015-2/syllabus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Tabla de contenidos

Programa

Equipo

Profesor

Nombre Github Email
Raúl Montes @raulmt raulmt@gmail.com

Ayudantes

Nombre Github Email
Pedro Aste @wachunei ppaste@uc.cl
Patricio López @mrpatiwi pelopez2@uc.cl
Thomas Hepner @ThomasHepner thepner1@uc.cl

Objetivos

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 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 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.

Metodología

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.

Evaluación

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 tres 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 y el proyecto de la siguiente forma:

  • Nota Teórica: (I1 + I2 + I3 + 2 * Ex - min(I1, I2, I3, Ex)) / 4
  • Nota Práctica: (Promedio entregas parciales) * 0.5 + (Entrega final) * 0.5
  • Nota final:
    • Si notas Teórica y Práctica son mayores o iguales a 4 entonces es el promedio de ambas.
    • En caso contrario, la menor entre ambas
  • Fechas:
    • I1: 10 de Septiembre
    • I2: 14 de Octubre
    • I3: 11 de Noviembre
    • Exámen: 30 de Noviembre

Bibliografia

  • 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

Politica de Integridad Academica

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.

Proyectos

Próximamente estarán publicados los proyectos a trabajar este semestre y los respectivos grupos.

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 esta sección en la wiki.

Foro

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

Dentro de Issues, las entradas se pueden etiquetar dentro de ciertas categorías 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.

  • Material: para discutir sobre el material entregado.
  • 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 ésta.
  • 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
  • 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.

Procedimiento

Antes de postear:

  • Busca en Internet para encontrar la solución.
  • Si pasan horas y el problema persiste, entra a Issues.
  • Busca si alguien tiene la misma pregunta o problema.
    • 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, lo creas 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.