https://github.com/vladimiracunadev-create/python-data-science-program
Python Data Science Program — 197 clases en 9 partes. Pauta avanzada derivada de Géron, VanderPlas, Huyen, ISLP y Barocas/Hardt/Narayanan. Recurso personal de aprendizaje, enseñanza y mejora continua.
https://github.com/vladimiracunadev-create/python-data-science-program
bootcamp data-analysis data-science education jupyter machine-learning matplotlib numpy pandas python scikit-learn
Last synced: 23 days ago
JSON representation
Python Data Science Program — 197 clases en 9 partes. Pauta avanzada derivada de Géron, VanderPlas, Huyen, ISLP y Barocas/Hardt/Narayanan. Recurso personal de aprendizaje, enseñanza y mejora continua.
- Host: GitHub
- URL: https://github.com/vladimiracunadev-create/python-data-science-program
- Owner: vladimiracunadev-create
- License: other
- Created: 2026-04-08T15:32:43.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-05-17T23:11:41.000Z (about 1 month ago)
- Last Synced: 2026-05-17T23:47:08.856Z (about 1 month ago)
- Topics: bootcamp, data-analysis, data-science, education, jupyter, machine-learning, matplotlib, numpy, pandas, python, scikit-learn
- Language: Jupyter Notebook
- Homepage: https://vladimiracunadev-create.github.io/python-data-science-program/
- Size: 2.74 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
- Roadmap: ROADMAP.md
Awesome Lists containing this project
README
# 🧭 Python Data Science Program
### **197 clases · 9 partes · pauta avanzada y completa**
**Curso completo de Python y Data Science — desde fundamentos hasta despliegue de modelos en producción**
[](https://github.com/vladimiracunadev-create/python-data-science-program/actions/workflows/ci.yml)
[](https://github.com/vladimiracunadev-create/python-data-science-program/actions/workflows/security.yml)
[](https://github.com/vladimiracunadev-create/python-data-science-program/actions/workflows/deploy-pages.yml)
[](CHANGELOG.md)
[](classes/README.md)
[](classes/parte-0-prerrequisitos/README.md)
[](ROADMAP.md)
[](LICENSE)
[](https://www.python.org/)
[](https://jupyter.org/)
[](https://flask.palletsprojects.com/)
[](https://pandas.pydata.org/)
[](https://scikit-learn.org/)
[](Dockerfile)
[](docs/BUILD_INSTALLER.md)
[](mobile/)
[📚 Índice de clases](classes/README.md) · [📖 Syllabus](docs/syllabus.md) · [🏗️ Arquitectura](docs/ARQUITECTURA_PRODUCTO.md) · [🎯 Evaluación](docs/GUIA_EVALUACION.md)
---
Integra currículo modular extenso, laboratorio interactivo local, portal del alumno, app de escritorio nativa para Windows y app Android.
📖 **¿Qué significa "pauta derivada"?** Cada parte del temario sigue explícitamente la secuencia y los énfasis de cinco libros referentes:
- 🧠 **Géron** ([*Hands-On ML*, 3ª ed.](https://www.oreilly.com/library/view/hands-on-machine-learning/9781098125967/)) → estructura de las partes 1 (ML clásico) y 2 (Deep Learning)
- 📊 **VanderPlas** ([*Python Data Science Handbook*](https://jakevdp.github.io/PythonDataScienceHandbook/)) → parte 0 (NumPy, pandas, matplotlib)
- 🏭 **Huyen** ([*Designing ML Systems*](https://www.oreilly.com/library/view/designing-machine-learning/9781098107956/)) → parte 4 (MLOps en producción)
- 📈 **ISLP** ([*Statistical Learning with Python*](https://www.statlearning.com/)) → parte 3 (estadística inferencial) + rigor matemático de la parte 1
- ⚖️ **Barocas/Hardt/Narayanan** ([*Fairness and ML*](https://fairmlbook.org/)) → parte 7 (ética, fairness, privacidad)
> Detalle completo (qué aporta cada uno, cómo se adapta) en [docs/syllabus.md § Fuentes y pauta](docs/syllabus.md#-fuentes-y-pauta).
> 💡 **Origen y orientación del proyecto:** este repositorio nació como **muestra de habilidades técnicas y pedagógicas**, y hoy se desarrolla como **recurso personal de aprendizaje, enseñanza y mejora continua del propio producto**. Es público y abierto a cualquier persona que quiera aprender, enseñar o contribuir.
---
## 📊 Estado actual del producto
| 🎯 Aspecto | Estado |
|---|---|
| 🏷️ **Versión** | `v2.2.0` |
| 📚 **Clases** | 197 en 9 partes |
| 🗂️ **Estructura** | ✅ scaffold de las 197 clases (`README.md` + `notebook.ipynb`) |
| ✍️ **Contenido pedagógico** | 🟢 **Parte 0 (46 clases) — completa y ampliada** con Definiciones · Errores comunes · FAQ · ⏳ Partes 1-8 en desarrollo |
| 🧭 **Descubribilidad Pages** | ✅ tabla de contenidos automática + badges por clase + banner global de progreso |
| 🧪 **Laboratorio Flask** | ✅ ejecución Python local, captura de gráficos, guardado de notebooks |
| 🖥️ **App Windows** | ✅ código operativo · binario pendiente de rebuild (Edge WebView2, sin navegador) |
| 📱 **App Android** | ✅ código operativo · APK debug (Expo/React Native) |
| 🛡️ **Postura** | local-first — no internet abierta sin capas adicionales |
### 🗺️ Las 9 partes del currículo
Cada parte tiene su **propio README** con narrativa completa: de qué trata, qué problemas resuelve, resultados de aprendizaje, estructura temática y enlaces a las clases.
| # | Parte | Clases | Foco | README |
|---|---|---:|---|---|
| 0️⃣ | Prerrequisitos ✅ | 46 | Python aplicado, NumPy, pandas, visualización, SQL, NoSQL, APIs | [📘 leer](classes/parte-0-prerrequisitos/README.md) |
| 1️⃣ | ML clásico | 43 | Regresión, clasificación, ensembles, no supervisado | [📘 leer](classes/parte-1-machine-learning-clasico/README.md) |
| 2️⃣ | Deep Learning | 56 | Keras, TF, CNN, RNN, Transformers, RL, despliegue | [📘 leer](classes/parte-2-deep-learning/README.md) |
| 3️⃣ | Estadística inferencial | 13 | Hipótesis, A/B testing, inferencia causal, Bayes | [📘 leer](classes/parte-3-estadistica-inferencial/README.md) |
| 4️⃣ | MLOps | 14 | Docker, CI/CD, MLflow, monitoreo, interpretabilidad | [📘 leer](classes/parte-4-mlops/README.md) |
| 5️⃣ | Ingeniería de datos | 8 | Spark, Airflow, lakehouses, streaming | [📘 leer](classes/parte-5-ingenieria-de-datos/README.md) |
| 6️⃣ | Recomendadores | 7 | Filtrado colaborativo, factorización, secuenciales | [📘 leer](classes/parte-6-sistemas-de-recomendacion/README.md) |
| 7️⃣ | Ética, fairness, privacidad | 6 | Sesgo, explicabilidad, marcos normativos | [📘 leer](classes/parte-7-etica-fairness-privacidad/README.md) |
| 8️⃣ | Capstones | 4 | Proyectos integradores end-to-end | [📘 leer](classes/parte-8-capstones/README.md) |
### 🚧 Trabajo pendiente
- 📝 Rellenar contenido pedagógico de las 197 clases (orden recomendado en [`docs/syllabus.md`](docs/syllabus.md) y [`ROADMAP.md`](ROADMAP.md))
- 📱 Migrar el contenido embebido del mobile (`mobile/src/data/classes.js`) a la estructura actual
- 🌐 Migrar el portal `site/` al índice actual
- 📄 Generar PDFs y PPTX por bloque al madurar el contenido de cada parte
---
## 🧭 Rutas recomendadas según perfil
| 👤 Perfil | 📖 Documento de entrada | 🎯 Qué mirar primero |
|---|---|---|
| 🏛️ Institución / evaluador | [docs/GUIA_EVALUACION.md](docs/GUIA_EVALUACION.md) | valor, evidencia y límites reales |
| 🎯 Reclutador técnico | [RECRUITER.md](RECRUITER.md) | evidencia técnica rápida en 5 minutos |
| 🏗️ Stakeholder técnico | [docs/ARQUITECTURA_PRODUCTO.md](docs/ARQUITECTURA_PRODUCTO.md) | capas, flujos y fronteras |
| 📦 Producto / maintainer | [docs/CATALOGO_PRODUCTO.md](docs/CATALOGO_PRODUCTO.md) | superficies, artefactos y reglas de comunicación |
| 👩🏫 Docente | [docs/herramientas-pedagogicas-de-aula.md](docs/herramientas-pedagogicas-de-aula.md) | mediación, problemas de aula y ritmo |
| 🎓 Alumno | [docs/student-guide.md](docs/student-guide.md) | uso del curso y expectativas |
| ⚙️ Operación | [RUNBOOK.md](RUNBOOK.md) | arranque, smoke checks y apagado |
| 🔐 Seguridad | [SECURITY.md](SECURITY.md) | postura actual y riesgos aceptados |
> Si no sabes por dónde entrar, usa [docs/INDEX.md](docs/INDEX.md).
---
## ⏱️ Cómo leer este repo según tiempo disponible
| ⏰ Tiempo | Secuencia recomendada | 🎯 Resultado esperado |
|---|---|---|
| 5 min | `README` → `RECRUITER.md` | evidencia rápida de qué funciona hoy |
| 15 min | `README` → `docs/GUIA_EVALUACION.md` → `docs/CATALOGO_PRODUCTO.md` | entender superficies, arquitectura y criterio de operación |
| 30 min | secuencia anterior + `docs/syllabus.md` + `docs/ARQUITECTURA_PRODUCTO.md` | entender el currículo completo, capas y growth path |
> 📚 La documentación está pensada como sistema, no como inventario de archivos.
---
## 🎛️ Superficies del producto
| Superficie | Rol | Estado |
|---|---|---|
| 🧪 Laboratorio interactivo (`app/`) | entorno local de clase — notebooks, runner, ejecución Python | ✅ operativo |
| 🌐 Portal del alumno (`site/`) | punto de entrada oficial para estudiantes | ✅ operativo |
| 🏛️ Vista institucional (`site/product/`) | presentación visual del producto | ✅ operativa |
| 📚 Currículo modular (`classes/`) | 197 clases en 9 partes: Prerrequisitos, ML clásico, Deep Learning, Estadística inferencial, MLOps, Ingeniería de datos, Recomendadores, Ética, Capstones | 🟢 Parte 0 (46) completa y ampliada · 🟡 Partes 1-8 scaffold operativo, contenido en desarrollo |
| 🖥️ App de escritorio Windows (`launcher.py` + `program.spec` + `installer/`) | ventana nativa con Edge WebView2 — sin navegador, sin Python en el PC del alumno | 🟡 código operativo · binario pendiente de build |
| 📱 App Android (`mobile/`) | Expo/React Native con integración Google Colab | 🟡 código operativo · contenido pendiente de migración |
| 📄 PDFs (`docs/pdfs/`) | guías por clase | 🔄 se regeneran por bloques al madurar el contenido |
| 📊 Presentaciones (`docs/presentaciones/`) | decks `.pptx` por clase | 🔄 se regeneran por bloques al madurar el contenido |
La fuente de verdad de esta taxonomía vive en [docs/CATALOGO_PRODUCTO.md](docs/CATALOGO_PRODUCTO.md).
---
## 📚 Materiales listos para usar
### 🗂️ Currículo (197 clases)
- 🧭 **Índice navegable:** [classes/README.md](classes/README.md)
- 📖 **Pauta completa:** [docs/syllabus.md](docs/syllabus.md)
- 📝 Cada clase: `README.md` (ficha) + `notebook.ipynb` (stub). Los materiales PDF/PPTX se regeneran por bloque al madurar el contenido.
### 📄 PDFs de estudio adicionales
PDFs listos para imprimir o compartir. Viven en `docs/pdfs/` y son independientes del flujo de clases.
| 📑 Documento | Descripción |
|---|---|
| [guia-estudio-repositorio.pdf](docs/pdfs/guia-estudio-repositorio.pdf) | 🗺️ Ruta de lectura rápida del repo para evaluador o reclutador |
| [guia-total-python-data-science.pdf](docs/pdfs/guia-total-python-data-science.pdf) | 📘 Guía ampliada de Python con Data Science investigada con fuentes oficiales |
---
## 🏗️ Arquitectura en una mirada
```mermaid
graph LR
INST["Institución"] --> PRODUCT["site/product/\nVista institucional"]
ALUM["Alumno"] --> PORTAL["site/\nPortal del alumno"]
ALUM --> MOBILE["mobile/\nApp Android"]
DOC["Docente"] --> LAB["app/\nLaboratorio Flask"]
DOC --> WIN["PythonDSProgram.exe\nApp de escritorio Windows"]
PRODUCT --> DOCS["docs/\nDocumentación canónica"]
PORTAL --> DOCS
MOBILE --> CLASSES["classes/\n197 clases · 9 partes"]
MOBILE --> COLAB["Google Colab\n(ejecución de código)"]
LAB --> CLASSES
LAB --> DATA["datasets/\n6 CSV sintéticos"]
LAB --> NOTEBOOKS["app/notebooks/\n6 labs interactivos"]
LAB --> SAVED["app/saved_notebooks/\nTrabajo del alumno"]
WIN --> LAB
```
La arquitectura completa, con flujos y fronteras, está en [docs/ARQUITECTURA_PRODUCTO.md](docs/ARQUITECTURA_PRODUCTO.md).
### 🗺️ Mapa del currículo (9 partes · 197 clases)
```mermaid
graph TD
P0["0️⃣ Prerrequisitos
46 clases"]:::found
P1["1️⃣ ML clásico
43 clases"]:::ml
P2["2️⃣ Deep Learning
56 clases"]:::dl
P3["3️⃣ Estadística inferencial
13 clases"]:::stats
P4["4️⃣ MLOps
14 clases"]:::ops
P5["5️⃣ Ingeniería de datos
8 clases"]:::data
P6["6️⃣ Recomendadores
7 clases"]:::rec
P7["7️⃣ Ética, fairness, privacidad
6 clases"]:::eth
P8["8️⃣ Capstones
4 proyectos"]:::cap
P0 --> P1
P0 --> P3
P1 --> P2
P1 --> P4
P3 --> P1
P2 --> P4
P4 --> P5
P1 --> P6
P2 --> P6
P0 --> P7
P1 --> P8
P2 --> P8
P4 --> P8
classDef found fill:#7c5cff,stroke:#5b3fc7,color:#fff
classDef ml fill:#2e8b57,stroke:#1f6f43,color:#fff
classDef dl fill:#0ea5e9,stroke:#0369a1,color:#fff
classDef stats fill:#f59e0b,stroke:#b45309,color:#fff
classDef ops fill:#ef4444,stroke:#b91c1c,color:#fff
classDef data fill:#8b5cf6,stroke:#6d28d9,color:#fff
classDef rec fill:#ec4899,stroke:#be185d,color:#fff
classDef eth fill:#14b8a6,stroke:#0f766e,color:#fff
classDef cap fill:#facc15,stroke:#a16207,color:#000
```
---
## ⚙️ Capacidades actuales
### 📚 Currículo y pedagogía
- **Currículo (scaffold):** 197 clases en 9 partes — Prerrequisitos (46), ML clásico (43), Deep Learning (56), Estadística inferencial (13), MLOps (14), Ingeniería de datos (8), Recomendadores (7), Ética (6), Capstones (4);
- pauta derivada de **Hands-On ML** (Géron 3ª ed.), **Python Data Science Handbook** (VanderPlas), **Designing ML Systems** (Huyen), **ISLP** (James et al), **Fairness and ML** (Barocas/Hardt/Narayanan);
- cada clase: `README.md` (ficha) + `notebook.ipynb` (stub); materiales adicionales se agregan al madurar;
- **6 datasets** sintéticos: ventas_tienda, retencion_clientes, soporte_tickets, transporte, estudiantes, comentarios_productos;
- guías de instructor, metodología, criterios de evaluación y ética de datos.
### 🧪 Laboratorio interactivo
- app Flask con acceso a las 197 clases desde interfaz web (descubrimiento automático por anidamiento);
- notebooks interactivos precargados con celdas editables y ejecutables;
- ejecución de código Python por celdas con persistencia de sesión;
- captura de gráficos matplotlib como PNG inline;
- guardado de notebooks en JSON local (`app/saved_notebooks/`);
- endpoints `GET /health` y `GET /ready` para healthchecks.
### 🖥️ App de escritorio Windows
- ventana nativa con Edge WebView2 — **sin abrir el navegador del sistema**;
- Flask corre internamente en un puerto libre elegido automáticamente;
- pantalla de carga animada mientras el entorno inicia;
- portable (ZIP) + instalador (Inno Setup) disponibles;
- sin dependencias en el PC del usuario final.
### 📱 App Android
- Expo/React Native (pendiente migrar el contenido embebido al índice actual);
- integración con Google Colab para ejecución de código sin Python local;
- seguimiento de progreso local con AsyncStorage;
- APK debug disponible — producción en roadmap.
### 📊 Presentación y distribución de materiales
- PDFs y PPTX por clase se generan en `docs/pdfs/classes/` y `docs/presentaciones/classes/` por bloques al madurar el contenido pedagógico de cada parte;
- landing pública para alumnos en GitHub Pages (`site/`);
- vista institucional HTML con narrativa de producto (`site/product/`);
- PDFs adicionales de estudio en `docs/pdfs/`.
---
## 🚀 Inicio rápido
### 🅰️ Opción A — app de escritorio Windows (usuarios finales)
El binario distribuible se reconstruye cuando el contenido alcance un primer hito publicable. Mientras tanto, usa el modo desarrollo (Opción B) o la imagen Docker (Opción C/D) para correr el laboratorio local. Ver [docs/BUILD_INSTALLER.md](docs/BUILD_INSTALLER.md) para construir el `.exe` desde fuente.
Requiere (al usar el binario): Edge WebView2 Runtime (preinstalado en Windows 10 v2004+ y Windows 11).
### 🅱️ Opción B — modo desarrollo (entorno virtual)
```bash
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS / Linux
pip install -r requirements.txt
python run_program.py
```
Abre automáticamente `http://127.0.0.1:8000` en el navegador.
### 🐳 Opción C — Docker local
```bash
docker compose up --build
```
### 🛡️ Opción D — Docker endurecido
```bash
docker compose -f docker-compose.prod.yml up -d --build
```
---
## 📦 Build de distribución
```bash
# Instala dependencias de build
pip install pywebview pyinstaller
# Genera bundle + ZIP portable + instalador (requiere Inno Setup 6)
build_windows.bat
```
Ver [docs/BUILD_INSTALLER.md](docs/BUILD_INSTALLER.md) para instrucciones completas.
---
## ✅ Validación y CI/CD
```bash
pytest # suite completa
ruff check . # lint
python -m bandit -r app # seguridad estática
```
Workflows activos:
| ⚙️ Workflow | Qué cubre |
|---|---|
| 🧪 [ci.yml](.github/workflows/ci.yml) | tests, lint, build de contenedor |
| 🔒 [security.yml](.github/workflows/security.yml) | auditoría de dependencias, SAST |
| 🚀 [deploy-pages.yml](.github/workflows/deploy-pages.yml) | despliegue de `site/` a GitHub Pages |
---
## 🔐 Seguridad y límites
### 🛡️ Protecciones activas
- ✅ validación de slugs e identificadores (regex, evita path traversal);
- ✅ límite de payload por request (1 MB);
- ✅ límite de longitud de código (20 KB);
- ✅ timeout de ejecución por celda (30 s) + reinicio de sesión;
- ✅ eviction de sesiones antiguas (100 sesiones máx, TTL 1 hora);
- ✅ CSP estricto sin dependencias CDN externas;
- ✅ defaults de arranque a `127.0.0.1`;
- ✅ nosec justificado para falsos positivos de Bandit en polling loops.
### ⚠️ Límites conocidos
- ❌ no hay autenticación integrada;
- ❌ no hay sandbox fuerte para código no confiable;
- ❌ no hay rate limiting de red;
- ❌ no hay TLS nativo;
- ❌ el runner es para uso local en aula, no para internet abierta.
> 📖 Ver [SECURITY.md](SECURITY.md) para detalle completo.
---
## 🗺️ Mapa documental
| 📄 Documento | Rol |
|---|---|
| 🎯 [RECRUITER.md](RECRUITER.md) | evidencia técnica rápida para evaluadores |
| 📜 [CHANGELOG.md](CHANGELOG.md) | historial de cambios por versión |
| 🤝 [CONTRIBUTING.md](CONTRIBUTING.md) | cómo contribuir al proyecto |
| 🛣️ [ROADMAP.md](ROADMAP.md) | dirección futura del producto |
| ⚙️ [RUNBOOK.md](RUNBOOK.md) | operación diaria |
| 🔐 [SECURITY.md](SECURITY.md) | postura de seguridad y límites |
| 🧭 [docs/INDEX.md](docs/INDEX.md) | índice completo por audiencia y objetivo |
| 📦 [docs/CATALOGO_PRODUCTO.md](docs/CATALOGO_PRODUCTO.md) | fuente de verdad de superficies y artefactos |
| 🏗️ [docs/ARQUITECTURA_PRODUCTO.md](docs/ARQUITECTURA_PRODUCTO.md) | arquitectura funcional con diagramas |
| ✅ [docs/GUIA_EVALUACION.md](docs/GUIA_EVALUACION.md) | ruta ejecutiva de 10 minutos |
| 🖥️ [docs/BUILD_INSTALLER.md](docs/BUILD_INSTALLER.md) | cómo generar el instalador Windows |
| 📱 [docs/MOBILE_APP.md](docs/MOBILE_APP.md) | cómo construir y distribuir la app Android |
| 🧪 [docs/entorno-interactivo.md](docs/entorno-interactivo.md) | el laboratorio Flask y su funcionamiento |
| 🧠 [docs/metodologia-docente.md](docs/metodologia-docente.md) | marco pedagógico del producto |
| 👩🏫 [docs/instructor-guide.md](docs/instructor-guide.md) | playbook de ejecución docente |
| 🎓 [docs/student-guide.md](docs/student-guide.md) | guía de onboarding del alumno |
| 🚢 [docs/despliegue-seguro-y-operacion.md](docs/despliegue-seguro-y-operacion.md) | CI/CD, Docker y hardening |
| ☁️ [docs/MIGRACION_AWS.md](docs/MIGRACION_AWS.md) | migración a la nube AWS — arquitectura, costos y paso a paso |
> 🗂️ Las notas internas del maintainer viven en `docs/maintainer/`.
---
## 🎯 Qué es y qué no es este repo
### ✅ Lo que este repo sí es
- 📚 una base seria de capacitación técnica en Python y Data Science;
- 🧩 un sistema que integra contenido, práctica interactiva y presentación;
- 🖥️ una app de escritorio nativa para distribución en aula sin configuración;
- 🎓 una muestra de criterio pedagógico, operacional y de seguridad;
- 🌱 una propuesta que puede empezar acotada y crecer sin rehacerse.
### ❌ Lo que este repo no vende
- 🚫 una plataforma multiusuario endurecida para internet abierta;
- 🚫 una app móvil ya en producción (el código existe pero el APK se reconstruye con el contenido actual);
- 🚫 una promesa de personalización infinita antes de cerrar condiciones;
- 🚫 profundidad total en todas las direcciones desde la primera versión.
---
## 💡 Idea fuerza
> El valor de este proyecto no depende de competir contra una tecnología puntual. Su valor está en **traducir herramientas a aprendizaje real**, con secuencia pedagógica, criterio docente, operación responsable y una base documental que permite evaluarlo como producto.
---
**¿Te resulta útil? ⭐ Dale una estrella al repo.**
[](https://github.com/vladimiracunadev-create/python-data-science-program/stargazers)
[](https://github.com/vladimiracunadev-create/python-data-science-program/network/members)
[](https://github.com/vladimiracunadev-create)
Hecho con 🧠 y ☕ por [Vladimir Acuña](https://github.com/vladimiracunadev-create)