Este repositório reúne o material do minicurso de dois encontros oferecido no Simpósio de Matemática (SiM) 2025 no ICMC-USP. O foco é ensinar SQL de forma aplicada, combinando consultas em um banco SQLite com um fluxo moderno em Python que usa Polars para manipulação de dados e Altair para visualização declarativa.
notebooks/: contém os notebooks principais do curso.dia1_fundamentos.ipynb: introdução ao ecossistema SQL + Python, consultas básicas e primeiras visualizações.dia2_relacoes.ipynb: consultas relacionais, agregações avançadas e narrativas visuais com Altair.dia1_teoria_slides.ipynb: “slides” executáveis para a abertura do primeiro dia, com exemplos mínimos de SQL, Pandas × Polars e Altair × Matplotlib.dia2_teoria_slides.ipynb: “slides” executáveis para o dia dois, cobrindo junções, CTEs, comparações Pandas × Polars e visualizações paralelas em Altair e Matplotlib.
- Python 3.10+
- Bibliotecas:
polars[connectorx,sqlalchemy],pandas,altair,vl-convert-python,adbc-driver-sqlite,duckdb,kaleido,requests,tqdm,ftfy,IPython,matplotlib - Banco de dados
inep.db(não incluso por questões de tamanho; ver seção a seguir).
- Crie e ative um ambiente virtual (opcional, mas recomendado).
- Instale as dependências:
pip install "polars[connectorx,sqlalchemy]" pandas altair vl-convert-python adbc-driver-sqlite duckdb kaleido requests tqdm ftfy ipython matplotlib- Coloque o arquivo
inep.dbna raiz do repositório.
- Inicie o Jupyter Lab, Google Colab ou VS Code com suporte a notebooks.
- Abra
notebooks/dia1_fundamentos.ipynbe execute as células na ordem. - Repita o processo para
notebooks/dia2_relacoes.ipynb. - Utilize
notebooks/dia1_teoria_slides.ipynbenotebooks/dia2_teoria_slides.ipynbcomo material de apoio introdutório; eles são independentes e contêm células%pip installpara preparar o ambiente automaticamente. - Cada notebook possui desafios interativos com soluções comentadas.
O arquivo é derivado dos microdados do Censo da Educação Superior do INEP. Para recriá-lo, execute as seções iniciais de preparação em notebooks/dia1_fundamentos.ipynb ou notebooks/dia2_relacoes.ipynb. As funções fornecidas baixam os microdados oficiais, selecionam as colunas relevantes e persistem tudo no SQLite automaticamente, gerando inep.db localmente sem necessidade de scripts adicionais.
- Material elaborado por André Moreira Souza.
- Dados públicos: microdados do Censo da Educação Superior (INEP).
- Ferramentas centrais: SQLite, Polars, Altair, Jupyter Notebook.
Este projeto está licenciado sob os termos da licença MIT. Consulte o arquivo LICENSE para mais detalhes.