Python, Ciência de Dados e IA — do Zero ao Deploy
Introdução à Modelagem Econômica e Ciência de Dados · Faculdade de Economia / UFJF - 2o Semestre de 2025 · Integrado ao Ecossistema Google (UFJF)
Descrição
Curso prático e progressivo que começa pelos fundamentos de Python e segue até aplicações completas de Ciência de Dados e Machine Learning, integrando bancos de dados (SQLite), visualizações (Matplotlib, Plotly), desenvolvimento de apps (Streamlit), modelos e datasets (Hugging Face) e automações no-code (n8n) com agentes de IA. Forte uso de Google Colab como ambiente de desenvolvimento (nuvem) e do ecossistema Google disponível à UFJF (Drive, Sheets, Forms e, quando possível, BigQuery entre outros).
Objetivos de aprendizagem
- Escrever código Python idiomático e organizado (funções, módulos, testes básicos).
- Manipular dados com Pandas e Polars; operar vetorização/álgebra com NumPy e SciPy.
- Explorar, limpar e visualizar dados com Matplotlib e Plotly.
- Construir pipelines de Machine Learning com scikit-learn (pré-processamento, modelagem, validação).
- Persistir dados em SQLite e integrá-los ao fluxo analítico.
- Criar e publicar aplicativos de dados com Streamlit.
- Usar Hugging Face (modelos/datasets) e entender o panorama de IA generativa (ChatGPT, Google AI).
- Orquestrar fluxos no-code com n8n e integrar agentes de IA.
- Entregar um projeto aplicado completo, versionado e reprodutível, com uma aplicação prática em Economia e/ou Finanças.
Público-alvo: alunos(as) e profissionais de Economia/ADM/Engenharias/Estatística/Computação. Pré-requisitos: lógica básica (sem exigência prévia de Python); desejável estatística descritiva.
Ementa
- Fundamentos de Python: sintaxe, tipos, estruturas, funções, módulos, ambiente.
- NumPy, SciPy: vetorização, álgebra linear, otimização, estatística.
- Pandas e Polars: DataFrames, IO, limpeza, joins, groupby, performance.
- Visualização: Matplotlib (estático), Plotly (interativo).
- Machine Learning com scikit-learn: pipeline, features, validação, métricas, modelos clássicos.
- Banco de dados: SQLite, SQL básico, integração com Python.
- Apps: Streamlit (layout, interatividade, deploy).
- Modelos e datasets: Hugging Face (uso prático).
- IA generativa e agentes: ChatGPT, Google AI (visão geral), uso responsável.
- No-code: n8n para automações e integração com agentes.
- Boas práticas: versionamento (Git/GitHub), reprodutibilidade, documentação.
Programação por semanas (15 semanas)
Semanas 1–3 — Fundamentos de Python
- Semana 1 — Python Fundamentos I: Colab + Drive; execução de células; boas práticas de notebook; tipos primitivos, variáveis, operadores, input/output; controle de fluxo; estilo (PEP8).
- Semana 2 — Python Fundamentos II: listas, tuplas, dicionários, conjuntos; compreensões; funções (parâmetros, retorno, docstrings); erros e exceções; módulos nativos úteis (
pathlib
,datetime
,json
). - Semana 3 — Python Fundamentos III: módulos e pacotes; organização do projeto; testes básicos com
pytest
(noções); logging; tipagem estática commypy
(noções); IO (CSV/JSON) e leitura no Drive via Colab.
Semanas 4–7 — Base de Dados & Visualização
- Semana 4 — NumPy + SciPy: arrays, broadcasting, álgebra linear; comparação loops × vetorização; SciPy (otimização, estatística, integração). Entrega Projeto – Etapa 0: tema, dados candidatos, objetivos e riscos (Form + mini-brief).
- Semana 5 — Pandas “core”: DataFrame, seleção, joins, groupby, datas; qualidade de dados (missing/outliers) e dtypes; leitura de Sheets. Projeto: ingestão e limpeza inicial + dicionário de dados.
- Semana 6 — Polars & performance: paradigma columnar; lazy API; otimizações de consulta; comparativos Pandas × Polars. Projeto: refatorar ETL com foco em performance.
- Semana 7 — Visualização: Matplotlib (essenciais, composição, boas práticas) e Plotly (interatividade, mapas simples). Projeto: EDA com dashboard exploratório.
Semanas 8–9 — Machine Learning com scikit-learn
- Semana 8 — ML I:
Pipeline
eColumnTransformer
; treino/validação/teste; modelos base (regressão linear/logística, árvores, k-NN); métricas. Projeto — Etapa 1: baseline + métricas. - Semana 9 — ML II: regularização, SVM, ensembles (RandomForest/GBM); tuning (Grid/Random/Bayes noções), cross-validation, leakage. Projeto: experimento comparativo + relatório.
Semanas 10–12 — Persistência, Apps e IA
- Semana 10 — SQLite e integração: SQL básico (DDL/DML); índices; Python ↔ SQLite; orquestrar ETL → DB → modelo. Projeto: persistência do dataset “golden” em SQLite.
- Semana 11 — Streamlit: estrutura do app, inputs, gráficos, cache; carregar do SQLite; exibir previsões e EDA interativo. Projeto — Etapa 2: MVP do aplicativo.
- Semana 12 — Hugging Face + IA generativa: hub de modelos/datasets; pipelines; panorama ChatGPT e Google AI (uso responsável). Projeto: componente opcional de NLP/GenAI integrado.
Semanas 13–15 — Orquestração, Boas Práticas e Fechamento
- Semana 13 — n8n & agentes: fluxos no-code; webhooks; integrar app/modelo num fluxo automatizado; boas práticas de orquestração. Projeto: automação mínima do ciclo (ex.: ingestão → predição → notificação).
- Semana 14 — Reprodutibilidade & Ética: Git/GitHub (estrutura, README, requisitos); seeds e versões; dados sintéticos; ética, viés e governança. Projeto — Etapa 3: polimento do app + documentação + reprodutibilidade.
- Semana 15 — Apresentações finais: demonstrações dos projetos; feedbacks; limitações; próximos passos. Projeto — Entrega Final: app funcional, relatório (4–8 págs) e repositório completo.
Avaliação
Componentes e pesos
- Exercícios práticos (notebooks curtos): 20%
- Checkpoints do Projeto (Etapas 0–3): 40%
- Projeto Final (app + relatório + repositório): 35%
- Participação (discussões, peer-review): 5%
Cronograma das entregas
- S4 - 21/10/2025: Etapa 0 (tema/escopo/dados)
- S8 - 18/11/2025: Etapa 1 (baseline + métricas)
- S11 - 16/12/2025: Etapa 2 (MVP Streamlit)
- S14 - 20/01/2025: Etapa 3 (polimento + doc + reprodutibilidade)
- S15 - 23/01/2025: Entrega Final (demo + PDF + repo)
Bibliografia & Referências
Documentações oficiais
- (GitHub) Documentação oficial - https://docs.github.com/en
- (Hugging Face) Documentação oficial - https://huggingface.co/docs
- (Matplotlib) Documentação oficial - https://matplotlib.org/stable/index.html
- (n8n) Documentação oficial - https://docs.n8n.io/
- (Numpy) Documentação oficial - https://numpy.org/doc/
- (Pandas) Documentação oficial - https://pandas.pydata.org/docs/
- (Polars) Documentação oficial - https://docs.pola.rs/api/python/stable/reference/index.html
- (Plotly) Documentação oficial - https://plotly.com/python/
- (Python) Documentação oficial - https://www.python.org/doc/
- (Scikit-learn) Documentação oficial - https://scikit-learn.org/stable/index.html
- (SciPy) Documentação oficial - https://docs.scipy.org/doc//scipy/index.html
- (SQLite) Documentação oficial - https://sqlite.org/docs.html
- (Streamlit) Documentação oficial - https://docs.streamlit.io/
Livros
- Géron, Aurélien (2022) — Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems (3ª ed.), O'Reilly Media.
- Grus, Joel (2021) — Data Science do Zero: Noções Fundamentais com Python (2ª ed.), O'Reilly Media.
- McKinney, Wes (2022) — Python for Data Analysis: : Data Wrangling with pandas, NumPy, and Jupyter (3rd ed.), O'Reilly Media.
- VanderPlas, Jake (2023). Python Data Science Handbook: Essential Tools for Working with Data (2nd ed.), O'Reilly Media.
Nenhum comentário:
Postar um comentário