Clases2021_borrador - ucseiw-team/catedra GitHub Wiki

Clases y Temas 2021

Clase 1 (intro, justificación, web básica) 3/8

  • [menos de 30 mins] Introducción a la asignatura (sin slides)

    • Por qué estamos en esta clase?
    • Dinámica general, etc
    • Revisión planificación y condiciones
  • [1 hora] Justificación del proyecto (faltan slides)

    • Análisis competitivo, alternativas online/offline
    • Entender a los usuarios
      • Perfiles de usuarios
      • Clases de usuarios (pero enfocarnos solo en dividirlos por experiencia en el sitio, no todo lo otro)
    • Escenarios de uso
    • Sustentabilidad de comunidades online (está en slides "Comunidades_Registracion_Flujo Páginas.pdf")
  • [1 hora] Arquitectura web (faltan slides)

    • Client/server
    • Protocolo HTTP
      • Requests y responses, partes
      • Falta de estado, mecanismos para lograrlo
  • [1 hora] Intro tecnologías de front-end: HTML, CSS y JS (hay slides)

    • jQuery básico
  • Dar enunciado Entrega 0 (revisar tps del año pasado, definir grupos, repo e idea, decirles que elijan bien el nombre del repo, no es "entrega0", ni "webbla" si todavía no validaron bla)

    • dejemos que no elijan todavía tecnología hasta que vean las demos
    • tienen 1 semana

Clase 2 (usabilidad, intro frameworks) 10/8

  • [menos de 2 horas] Usabilidad (faltan slides) <-- esto tomó 3 horas

    • Por qué es importante? (Y remarcar que vamos a ver solo algunas cosas sueltas para que se den idea, no profundizamos)
    • UX vs UI (explicar ambos conceptos, que abarca cómo presentar la info, las acciones, cómo informar de resultados, notificaciones, etc)
      • Mostrar ejemplo de "twitter como una tabla", con por ejemplo que responder un tweet sea "tildá primero el tweet que querés responder y después buscá el menú 'responder elegido', y que te lleva a un form vacío con un combo de usuarios ya elegido", que ellos mismos entiendan que no pueden hacer cosas así
    • Registración y aceptación de usuarios (se puede sacar un poco de slides existentes, pero lo reduciría mucho. En "Comunidades_Registracion_Flujo Páginas.pdf")
    • Flujos de páginas (darlo como herramienta para diseñar usabilidad)
    • Flujos de estados (darlo como herramienta para diseñar usabilidad y además calidad de código, y verlo para todo, usuarios y contenido así que comentar workflow de contenido acá, quizás incluso como ejemplo, etc)
    • Mobile no es desktop resizeado, diferente experiencia de usuario
    • Los escenarios de uso se arman pensando en esto
    • Tests de usabilidad, A/B testing
  • [1 hora] Intro Django (linux junto)

  • [1 hora] Introducción a .Net <-- no se llegó en clase 1, se dio como video offline

  • Dar enunciado Entrega 1 (justificación proyecto, alternativas, clases y perfiles de usuarios, escenarios de uso)

    • tienen 1 semana

Clase 3 (expo, forms, deploys) 17/8

  • [menos de 2 horas] Exposición Entrega 1 <-- tomó 2 horas y algo

    • y si hacemos debate y corrección en vivo? no les parece mejor? y ahí mismo tomamos nota de lo que falte arreglar, etc
  • Dar enunciado Entrega 2 (registro y login, flujos páginas y estados usuarios)

    • tienen 1 seman
  • [30 mins] Forms en HTML <-- tomó el tiempo pensado

  • [30 mins] Práctica separados?: Forms en Django / .Net <-- tomó el tiempo pensado

  • [1 hora] Práctica separados?: <-- tomó el tiempo pensado

    • Deploys con Heroku+Django / .Net?
    • Manejo de contenido estático en Django / .Net [no se llegó a dar por la demora en lo primero]

Clase 4 (modularidad, queries y templates) 24/8

  • Suben Entrega 2, pero diría de no hacer exposición y debate de esto porque son logins nomás

  • [menos de 2 horas] Modularidad de software (faltan slides pero mucho se saca de varias que existen) <-- tomó casi 2 horas

    • Necesidad de separar código de lógica vs código de presentación
      • Por qué
      • Frontend vs backend, sistemas de templates vs todo pegado junto
    • Necesidad de separar módulos con funcionalidad diferente
      • Por qué
      • Cómo módulos / libs / etc
      • Como microservicios que se comuniquen de alguna forma (aclaramos que más adelante vamos a ver apis)
      • Api pública vs cosas internas
      • Por qué en general no stored procedures para compartir lógica
    • Necesidad de separar entre mobile vs desktop (modificar lo de las slides de intro mobile)
      • Web mobile vs web responsive vs app
        • Ecosistema de apps
    • Documentación, tipos y herramientas
  • [menos de 1 hora] Práctica separados?: <-- tomó casi 1 hora

    • Templates en Django (herencia, includes, tags y filters) / .Net
    • Queries en Django (filters, orden, select relateds, update, filtros con Q, laziness) / .Net
  • [30 mins] Dar enunciado Entrega 3 (manejo contenido/feature principal parte1 decidido por grupo, modelo datos de eso, flujos estados y páginas de eso)

    • tiempo para charlar con cada grupo lo que creemos que puede incluir la entrega
    • tienen 2 semanas, seguro les van a faltar cosas pero luego viene siguiente entrega que puede re-abarcar esas cosas y con mucho tiempo <-- tomó 1 hora

Clase 5 (frontend y apis) 31/8

  • [menos de 2 horas] APIs web (hay slides, pero a modificar, engencharlo con que es algo necesario por lo visto en modularidad)

    • Idea general (en vez de pedir html, pidamos acciones y datos en formato legible por programas)
    • Json
    • REST
    • Integración con Redes Sociales y OAuth
    • AJAX <-- tomó 2 horas 10
  • [1 hora] Frameworks de frontend MV/VM (hay slides, pero hay que separar lo de AJAX para llevarlo a lo anterior)

    • [todo lo que ya tenemos] <-- tomó xx
  • [30 mins] AJAX (principalmente frontend, con algo de backend solo para poder tener un ejemplo)

  • [30 mins] API REST en Django / .Net <-- tomó 1 hora entre las dos cosas pero sin explicar DRF

Clase 6 (expo, dns y encodings) 7/9

  • [menos de 2 horas] Exposición Entrega 3

    • y si hacemos debate y corrección en vivo? no les parece mejor? y ahí mismo tomamos nota de lo que falte arreglar, etc <-- tomó 1 hora porque hubo menos grupos y bastante incompletos
  • [1 hora] DNS (hay slides, no cambia nada)

    • [todo lo que ya tenemos] <-- tomó más de 1 hora
  • [30 mins] Unicode y encodings (hay slides, no cambia nada, nomás asociar a "ya que vimos cómo cargar data...")

    • [todo lo que ya tenemos] <-- tomó 1 hora
  • Dar enunciado Entrega 4 pero durante la semana, en base a lo que se vea en la expo, y seguro va a tener parte de re-entrega de la entrega 3, pero tendrían tiempo (manejo contenido/feature principal parte2 decidido por grupo)

    • tienen 3 semanas, para esta y lo que falte de la anterior

1 FERIADO Y 1 SEMANA DE EXAMENES EN EL MEDIO

Clase 7 (expo, búsqueda) 28/9

  • [menos de 2 horas] Exposición Entrega 4

    • y si hacemos debate y corrección en vivo? no les parece mejor? y ahí mismo tomamos nota de lo que falte arreglar, etc
  • [1 hora] Búsqueda y urls amigables (hay slides, no cambia)

    • [todo lo que ya tenemos]
  • [1 hora] Práctica separados?: Full text search en Django / .Net

  • Dar enunciado Entrega 5 (búsqueda, denuncias, board moderación) <-- movida una semana porque ellos venían mal, era posible venir bien

    • tienen 1 semana

Clase 8 (escalabilidad, virtualización) 5/10

  • Suben Entrega 5, pero diría de no hacer exposición y debate de esto porque son solo las búsquedas

  • [menos de 2 horas] Escalabilidad (ya hay slides) <-- llevó 2 horas y algo

    • [todo lo que ya tenemos, y agregar:]
    • Docker, virtualización
    • Desnormalización de db
  • [menos de 1 hora] Práctica: <-- llevó 1 hora

    • Ejemplo docker
  • Dar enunciado Entrega 6 de promoción (escalabilidad con docker)

    • tienen 2 semanas (porque hay parcial en el medio)
  • [30 mins] Consultas para el parcial

Clase 9 (parcial) 12/10

  • Parcial <-- movido al 19/10

Clase 10 (CI, TDD) 19/10

  • Suben Entrega 6, pero diría de no hacer exposición y debate de esto porque son solo las cosas de docker

  • [30 mins] Revisión parcial

  • [1 hora] Unit testing / TDD (faltan slides) (les parece que empecemos a evaluar esto y que sea tema "en serio" ya?)

    • Darlo con python como ejemplo, pero avisando que se puede en ambos? Porque se entiende viendo código, si no es jodido <-- dado como tema real que se evalua, tomó 1 hora, se adelantó al 12/10
  • [1 hora] Integración Continua (faltan slides) (les parece que empecemos a evaluar esto y que sea tema "en serio" ya?)

    • Demo no práctica, mostrando algo de nuestros laburos <-- dado como tema real que se evalua, tomó 1 hora, se adelantó al 12/10
  • [30 mins] Consultas para el recuperatorio

Clase 11 (recuperatorio) 26/10

  • Recuperatorio
  • Entrega final

1 FERIADO

Clase 12 (seguridad, propiedad de info) 9/11

  • [1 hora] Seguridad (ya hay slides)

    • [todo lo que ya tenemos] <-- dado como tema real que se evalua, tomó 1 hora, se adelantó al 12/10
  • [1 hora o menos?] Propiedad de información (reacomodar slides tomando de lo que hay)

    • Licencias de Software
    • Licencia del contenido
    • Privacidad (de esto falta agregar, meter cosas como lo de cookies de terceros, privacidad de los datos guardados, etc)
  • [2 horas] Exposición final de trabajos

Se fueron estos temas:

  • Modelo de datos (como "tema" no dábamos nada realmente, solo un par de cosas que fueron a parar a otros temas)
  • Fat vs Skinny (outdated, poca utilidad)
  • Modelo de datos de contenido: una tabla vs muchas (outdated, poca utilidad)
  • Foros de discusión (outdated, poca utilidad)

Problema entregas y demoras

Nueva fecha para todas las entregas de regularización: 26/10. Luego de eso tenemos que hacer corrección rápida para que lleguen a arreglar, y nosotros a volver a re-corregir antes del fin de la materia.

La entrega de promoción se puede entregar un poco después pero sin bucle de corrección. Si se entrega antes, tiene re-corrección.