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
- Web mobile vs web responsive vs app
- Documentación, tipos y herramientas
- Necesidad de separar código de lógica vs código de presentación
-
[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.