Turma 2026/2
Sistemas de Machine Learning — 3ª edição. Disciplina conduzida integralmente por Challenge-Based Learning: dois desafios práticos, desenvolvidos em grupos, do problema de negócio ao sistema em produção.
Ementa
Projeto, construção, implantação, monitoramento e manutenção de sistemas de software baseados em machine learning. Enquadramento de problemas de negócio como problemas de ML; engenharia de dados, dados de treinamento e engenharia de features; desenvolvimento de modelos e avaliação offline; serviço de predição e deploy; mudanças de distribuição, monitoramento, teste em produção e aprendizado contínuo; infraestrutura de MLOps; o lado humano do machine learning (experiência do usuário, equipe e IA responsável).
A disciplina é conduzida integralmente por Challenge-Based Learning (CBL), com dois desafios práticos desenvolvidos em grupos ao longo do semestre. Não há aulas expositivas: os grupos recebem desafios reais, abertos e significativos, e os resolvem com mentoria dos professores em todas as aulas, percorrendo as três fases do CBL — Engage (da Big Idea à Essential Question até o challenge statement), Investigate (guiding questions, activities e resources) e Act (implementação, teste com evidências e apresentação a uma audiência real).
Objetivo geral: capacitar o estudante a construir sistemas de software com IA — não apenas treinar modelos. O código de ML é uma fração pequena de um sistema real (Sculley et al., 2015), e a disciplina cobre o sistema inteiro, pelas 11 frentes do livro-base.
Conteúdo programático — as 11 frentes do livro-base
- Visão geral dos sistemas de machine learning
- Introdução ao design de sistemas de machine learning
- Fundamentos de engenharia de dados
- Treinando os dados (amostragem, rotulagem, classes desbalanceadas, data augmentation)
- Engenharia de features (incl. data leakage)
- Desenvolvimento de modelo e avaliação offline
- Serviço de predição e deploy de modelo
- Mudanças na distribuição de dados e monitoramento
- Aprendizado contínuo e teste em produção
- Infraestrutura e ferramentas para MLOps
- O lado humano do machine learning (UX, equipe, IA responsável)
Tópicos complementares: aplicações com LLMs e agentes de IA (prompts, integração de APIs, RAG, orquestração de agentes com ferramentas e guardrails) e Spec-Driven Development — desenvolvimento de software guiado por especificações, com agentes de codificação e revisão crítica de código gerado por IA.
Avaliação
Coerente com o CBL, a avaliação considera processo e resultado, com base em evidências:
| Componente | Descrição |
|---|---|
| Participação nas aulas | Presença ativa, engajamento no grupo, evolução no desafio e contribuição individual, observadas aula a aula pelos professores/mentores. |
| Projeto desenvolvido | A solução de cada desafio: funcionando, testada, documentada e apresentada a uma audiência real, incluindo o registro do processo (documentar–refletir–compartilhar). |
Os critérios detalhados (rubrica) de cada desafio serão publicados junto com o seu lançamento.
Calendário
O semestre é organizado em dois ciclos, um por desafio, com uma semana de descompressão entre eles:
| Período | Bloco | Marcos |
|---|---|---|
| 10/08 a 07/10 (17 aulas) | Desafio 1 — Verdade ou Fake? Sistema de ML de ponta a ponta: detecção de fake news |
Engage: 12–17/08 · Investigate: 19–26/08 · Act: 31/08–05/10 · Apresentação final: 07/10 |
| 12/10 a 16/10 | Semana de descompressão | 12/10 feriado; 14/10 retrospectiva do Desafio 1, sem entregas |
| 19/10 a 14/12 (15 aulas) | Desafio 2 — Operação em produção Serving, monitoramento, drift, aprendizado contínuo e governança |
Engage: 19–21/10 · Investigate: 26/10–04/11 · Act: 09/11–09/12 · Apresentação final: 14/12 |
Feriados sem aula: 07/09 (Independência), 12/10 (Nossa Senhora Aparecida), 28/10 (Servidor Público) e 02/11 (Finados).
Calendário aula a aula
| Data | Aula | Fase CBL | Pauta | Slides |
|---|---|---|---|---|
| Desafio 1 — Verdade ou Fake? (sistema de ML de ponta a ponta) | ||||
| 10/08 (seg) | 1 | — | Apresentação da disciplina + formação dos grupos (5 estudantes) | |
| 12/08 (qua) | 2 | Engage | Lançamento do Desafio 1 · Big Idea → Essential Question | |
| 17/08 (seg) | 3 | Engage | Challenge statement por grupo: quando usar ML e o que é ML em produção | |
| 19/08 (qua) | 4 | Investigate | Guiding questions · objetivos de negócio → objetivos de ML, requisitos | — |
| 24/08 (seg) | 5 | Investigate | Fontes e formatos de dados · batch × streaming · plano de ingestão | — |
| 26/08 (qua) | 6 | Investigate | Ingestão e preparação de dados + análise exploratória | — |
| 31/08 (seg) | 7 | Act | Amostragem e rotulagem dos dados do desafio | — |
| 02/09 (qua) | 8 | Act | Classes desbalanceadas e data augmentation | — |
| 07/09 (seg) | Feriado — Independência do Brasil | |||
| 09/09 (qua) | 9 | Act | Engenharia de features + prevenção de data leakage | — |
| 14/09 (seg) | 10 | Act | Baselines e seleção de modelos candidatos | — |
| 16/09 (qua) | 11 | Act | Treinamento, depuração e iteração de modelos | — |
| 21/09 (seg) | 12 | Act | Métricas e avaliação offline + documentação de experimentos | — |
| 23/09 (qua) | 13 | Act | Servindo o modelo como API (deploy simples, mitos de deploy) | — |
| 28/09 (seg) | 14 | Act | Integração da solução + versionamento de código, dados e modelos | — |
| 30/09 (qua) | 15 | Act | Viés, limitações e IA responsável na solução do grupo | — |
| 05/10 (seg) | 16 | Act | Demo interna + feedback entre grupos + preparação da entrega | — |
| 07/10 (qua) | 17 | Act | Apresentação final do Desafio 1 (audiência real) | — |
| Semana de descompressão | ||||
| 12/10 (seg) | Feriado — Nossa Senhora Aparecida | |||
| 14/10 (qua) | 18 | — | Retrospectiva do Desafio 1, sem entregas | — |
| Desafio 2 — Operação em produção | ||||
| 19/10 (seg) | 19 | Engage | Lançamento do Desafio 2 · Big Idea → Essential Question | — |
| 21/10 (qua) | 20 | Engage | Challenge statement por grupo + requisitos de produção | — |
| 26/10 (seg) | 21 | Investigate | Predição batch × online · nuvem × borda · compressão de modelo | — |
| 28/10 (qua) | Feriado — Dia do Servidor Público | |||
| 02/11 (seg) | Feriado — Finados | |||
| 04/11 (qua) | 22 | Investigate | Por que sistemas de ML falham? Falhas e mudanças de distribuição | — |
| 09/11 (seg) | 23 | Act | Serving em produção: containers e automação do pipeline (CI/CD) | — |
| 11/11 (qua) | 24 | Act | Monitoramento e observabilidade: logs, métricas e alertas | — |
| 16/11 (seg) | 25 | Act | Detecção de drift no sistema do grupo | — |
| 18/11 (qua) | 26 | Act | Teste em produção: A/B, canário e shadow | — |
| 23/11 (seg) | 27 | Act | Aprendizado contínuo e estratégia de retreino | — |
| 25/11 (qua) | 28 | Act | Plataformas de ML: construir × comprar e custo total | — |
| 30/11 (seg) | 29 | Act | Experiência do usuário com predições + IA responsável | — |
| 02/12 (qua) | 30 | Act | Demo interna + feedback entre grupos | — |
| 07/12 (seg) | 31 | Act | Refinamento final da solução | — |
| 09/12 (qua) | 32 | Act | Ensaio da apresentação + documentação final | — |
| 14/12 (seg) | 33 | Act | Apresentação final do Desafio 2 + encerramento do semestre | — |
Slides
Materiais apresentados em aula, em PDF. Novos slides são publicados aqui ao longo do semestre.
Referências
HUYEN, Chip. Projetando Sistemas de Machine Learning. O'Reilly / Novatec, edição brasileira. (Livro-base — 11 capítulos.)
SCULLEY, D. et al. Hidden Technical Debt in Machine Learning Systems. NeurIPS, 2015.
CS329S: Machine Learning Systems Design — Stanford (Chip Huyen)
SERBAN, A. et al. Adoption and Effects of Software Engineering Best Practices in Machine Learning. ESEM, 2020.
KÄSTNER, C.; KANG, E. Teaching Software Engineering for AI-Enabled Systems. ICSE-SEET, 2020.
GitHub Spec Kit — toolkit para Spec-Driven Development
NICHOLS, M.; CATOR, K. Challenge Based Learning. Apple — ACOT², 2008.
GALLAGHER, S.; SAVAGE, T. Challenge-based learning in higher education: an exploratory literature review. Teaching in Higher Education, 2020.
DOULOUGERI, K. et al. Challenge-based learning implementation in engineering education: a systematic literature review. Journal of Engineering Education, 2024.