🎞️ Slides 📝 Material ← Módulo
Projeto 6 · Engenharia de Software Plano de Ensino

Aula 1 — Filtragem Colaborativa baseada em Item

Plano operacional do dia: do problema da descoberta à recomendação escalável estilo Amazon. Da matriz usuário×item à matriz item×item, com Adjusted Cosine, predição e conexão com a Sprint 1.

← Voltar ao Módulo

Identificação

Curso
Engenharia de Software
Módulo
Projeto 6 — SOA Mobile
Aula
1 de 10
Carga horária do dia
6h (2h + 2h + 2h)
Modalidade
Presencial · Metodologia ativa
Pré-aula
Autoestudo guiado

Resumo

A primeira aula do módulo aborda o algoritmo central que vai dar vida ao app da Sprint 1: Filtragem Colaborativa baseada em Item. Saímos do problema da descoberta (catálogo grande, atenção curta) e percorremos as 4 famílias de SR até nos fixarmos no item-based. A matemática começa em forma de geometria — itens como vetores em Rn — passa por similaridade de cosseno, Pearson e Adjusted Cosine, e termina no algoritmo de predição.

O fechamento conecta o algoritmo ao sistema distribuído (RM-ODP), à arquitetura SOA do módulo e às 4 entregas obrigatórias da Sprint 1, incluindo o workshop com o parceiro.

Objetivos de aprendizagem

  • OA-1Distinguir as 4 famílias de sistemas de recomendação (collaborative, content-based, knowledge-based, hybrid) e suas aplicações.
  • OA-2Comparar abordagens user-based e item-based identificando pontos de escalabilidade.
  • OA-3Calcular similaridade entre itens usando cosseno e Adjusted Cosine, justificando o ajuste pelo viés individual.
  • OA-4Construir matriz item×item e aplicar o algoritmo de predição para um par (usuário, item).
  • OA-5Avaliar um recomendador com métricas offline (precision@k, recall@k, MAP, NDCG).
  • OA-6Mapear o sistema no RM-ODP e relacionar com as entregas da Sprint 1.

Pré-requisitos

  • Álgebra linear básica: produto interno, normas e vetores em Rn.
  • Estatística mínima: média e desvio (para entender o viés individual).
  • Python operante (NumPy ou Pandas) para os exercícios práticos.
  • TAPI lido — equipes formadas com domínio do parceiro do projeto.

Cronograma do dia

Três blocos de duas horas. Autoestudo prepara o vocabulário matemático, a instrução PE consolida o algoritmo e a janela de desenvolvimento foca em destravar a Sprint 1.

📚 Bloco 1 · Autoestudo

10h00 — 12h00

Estudo individual orientado pelo material da aula 1.

  • Leitura do Material da Aula 1 (filtragem colaborativa, similaridade, predição).
  • Revisar produto interno e norma vetorial; lápis e papel para reproduzir cosseno entre 2 vetores 4D.
  • Mapear, no domínio do parceiro, o que significa "item" e o que significa "rating" (explícito ou implícito).
  • Caderno de bordo: anotar 2 dúvidas concretas sobre Adjusted Cosine.

🎓 Bloco 2 · Instrução PE — Aula em metodologia ativa

14h00 — 16h00

Encontro síncrono com o professor especialista. 15 minutos de daily seguidos de 1h45 de aula em metodologia ativa.

  • 14h00 — 14h15 · Daily da equipe.
  • 14h15 — 16h00 · Algoritmo item-based, similaridade, predição e mapeamento RM-ODP.

🍴 Intervalo · Almoço

12h00 — 14h00

Janela livre. Recomenda-se não tratar conteúdo da aula nesse período.

🛠️ Bloco 3 · Desenvolvimento do projeto · Workshop do Parceiro

16h00 — 18h00

Janela de trabalho da equipe + preparação coordenada para o workshop com o parceiro.

  • Mapear, em docs/recomendador/dominio.md, "usuário", "item", "rating" e fontes de dados.
  • Implementar protótipo em Python que calcula similaridade entre 2 itens reais do parceiro.
  • Listar perguntas únicas para o workshop — sem perguntas duplicadas ou sombreadas entre grupos.
  • Iniciar esboço dos 4 artefatos da Sprint 1 (a equipe define dono e prazo de cada um).
  • Abrir Merge Request feat(reco): protótipo de similaridade.

Detalhamento da instrução PE (14h00 — 16h00)

Instrução estruturada em blocos curtos de exposição alternados com prática em pares. Nenhum bloco expositivo passa de 15 minutos sem interação direta dos alunos.

14h00
14h15

DailyDaily de abertura

Cada aluno responde em 1 minuto: o que aprendi no autoestudo / qual o item e rating no domínio do parceiro / minha dúvida concreta. O professor mapeia em quadro as dúvidas para encaixar nos blocos seguintes.

14h15
14h30

TalkO problema da descoberta · 4 famílias de SR

Exposição (12 min) com referência à long tail e à mudança de papel da curadoria. Encerra com a turma classificando 5 sistemas reais (Spotify, Amazon, Netflix, LinkedIn, YouTube) em uma das 4 famílias.

14h30
14h50

AtivaUser-based vs Item-based — debate em pares

Em duplas, alunos recebem um cenário do parceiro e defendem qual abordagem (user vs item) escolheriam. Apresentação de 2 duplas com argumentos opostos. Consolidação no quadro com critério de escalabilidade.

14h50
15h10

CodingSimilaridade na prática · Cosseno → Adjusted Cosine

Live coding em Python: cosseno puro entre 2 itens da matriz exemplo. Pares replicam e recalculam com Adjusted Cosine, observando como o viés individual muda o resultado.

15h10
15h30

AtivaPredição — exercício em grupo

Cada grupo recebe um par (usuário u, item i) e calcula a predição usando a fórmula. O quadro consolida as predições e debate-se se a recomendação faz sentido para o usuário.

15h30
15h45

TalkAmazon 2003 · Métricas e RM-ODP

Por que item-based venceu na indústria, métricas offline (precision@k, recall@k, MAP, NDCG) e mapeamento do recomendador nas 5 visões do RM-ODP — o algoritmo é só uma delas.

15h45
16h00

AtivaSprint 1 e workshop do parceiro

Apresentação das 4 entregas obrigatórias da Sprint 1 e do protocolo do workshop. Cada equipe define imediatamente dono e prazo dos artefatos no caderno de bordo. Síntese: cada aluno escreve "a aula 1 me ensinou que...".

Estratégias de metodologia ativa

  • Geometria primeiro, fórmula depois — similaridade é apresentada como cosseno do ângulo antes de qualquer notação.
  • Aprendizagem por contraste — debate cosseno puro vs. Adjusted Cosine sobre os mesmos vetores força a percepção do viés.
  • Cenário do parceiro como laboratório — toda decisão é tomada em cima do domínio real do projeto, evitando exemplo abstrato.
Princípio orientador

O algoritmo de recomendação não é o produto. O produto é o sistema distribuído que entrega recomendação ao usuário a tempo.

Recursos e ferramentas

CategoriaRecursoUso
Slidesslides/slide-lesson-1.htmlExposição na instrução PE
Materialmaterials/lesson-1-material.htmlAutoestudo
LinguagemPython 3 + NumPy/PandasProtótipo de similaridade
AmbienteJupyter Notebook ou Google ColabCálculos e gráficos
Repositóriodocs/recomendador/dominio.mdMapeamento do domínio do parceiro

Verificação de aprendizagem

Avaliação formativa ao longo do dia, sem prova somativa.

  • CR-1Defendeu a escolha entre user-based e item-based no cenário do parceiro com argumento de escalabilidade.
  • CR-2Calculou cosseno e Adjusted Cosine entre 2 itens, explicando a diferença numérica.
  • CR-3Aplicou o algoritmo de predição em par (usuário, item) chegando a um valor coerente.
  • CR-4Mapeou no caderno de bordo o que é "item" e "rating" no domínio do parceiro.
  • CR-5Abriu Merge Request feat(reco): protótipo de similaridade com cálculo entre 2 itens reais até as 18h00.
Critério mínimo

Aluno que sair às 18h sem protótipo de similaridade rodando e perguntas únicas para o workshop está em débito técnico para a aula 2.

Conexão com a aula 2

A aula 2 amplia para uma visão unificada de filtragem colaborativa, contrastando user-based e item-based em um mesmo pipeline.

  • O protótipo de hoje vira a base do pipeline da aula 2.
  • O domínio mapeado em docs/recomendador/dominio.md não pode ser trocado entre as aulas.
Para o autoestudo da aula 2

Antes das 10h: ler material da aula 2, listar 3 limitações que o item-based puro tem no domínio do parceiro e estudar Pearson em paralelo a Adjusted Cosine.

Inteli Logo