You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
366 lines
14 KiB
366 lines
14 KiB
# AGENTS.md
|
|
|
|
## Resumen del Proyecto
|
|
|
|
Data Science for Beginners es un plan de estudios completo de 10 semanas y 20 lecciones creado por los Azure Cloud Advocates de Microsoft. El repositorio es un recurso de aprendizaje que enseña conceptos fundamentales de ciencia de datos a través de lecciones basadas en proyectos, incluyendo notebooks de Jupyter, cuestionarios interactivos y tareas prácticas.
|
|
|
|
**Tecnologías Clave:**
|
|
- **Jupyter Notebooks**: Medio principal de aprendizaje utilizando Python 3
|
|
- **Bibliotecas de Python**: pandas, numpy, matplotlib para análisis y visualización de datos
|
|
- **Vue.js 2**: Aplicación de cuestionarios (carpeta quiz-app)
|
|
- **Docsify**: Generador de sitios de documentación para acceso offline
|
|
- **Node.js/npm**: Gestión de paquetes para componentes JavaScript
|
|
- **Markdown**: Todo el contenido de las lecciones y documentación
|
|
|
|
**Arquitectura:**
|
|
- Repositorio educativo multilingüe con extensas traducciones
|
|
- Estructurado en módulos de lecciones (1-Introducción hasta 6-Ciencia-de-Datos-en-el-Mundo)
|
|
- Cada lección incluye README, notebooks, tareas y cuestionarios
|
|
- Aplicación de cuestionarios Vue.js independiente para evaluaciones antes/después de las lecciones
|
|
- Soporte para GitHub Codespaces y contenedores de desarrollo en VS Code
|
|
|
|
## Comandos de Configuración
|
|
|
|
### Configuración del Repositorio
|
|
```bash
|
|
# Clone the repository (if not already cloned)
|
|
git clone https://github.com/microsoft/Data-Science-For-Beginners.git
|
|
cd Data-Science-For-Beginners
|
|
```
|
|
|
|
### Configuración del Entorno de Python
|
|
```bash
|
|
# Create a virtual environment (recommended)
|
|
python -m venv venv
|
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
|
|
# Install common data science libraries (no requirements.txt exists)
|
|
pip install jupyter pandas numpy matplotlib seaborn scikit-learn
|
|
```
|
|
|
|
### Configuración de la Aplicación de Cuestionarios
|
|
```bash
|
|
# Navigate to quiz app
|
|
cd quiz-app
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm run serve
|
|
|
|
# Build for production
|
|
npm run build
|
|
|
|
# Lint and fix files
|
|
npm run lint
|
|
```
|
|
|
|
### Servidor de Documentación Docsify
|
|
```bash
|
|
# Install Docsify globally
|
|
npm install -g docsify-cli
|
|
|
|
# Serve documentation locally
|
|
docsify serve
|
|
|
|
# Documentation will be available at localhost:3000
|
|
```
|
|
|
|
### Configuración de Proyectos de Visualización
|
|
Para proyectos de visualización como meaningful-visualizations (lección 13):
|
|
```bash
|
|
# Navigate to starter or solution folder
|
|
cd 3-Data-Visualization/13-meaningful-visualizations/starter
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm run serve
|
|
|
|
# Build for production
|
|
npm run build
|
|
|
|
# Lint files
|
|
npm run lint
|
|
```
|
|
|
|
|
|
## Flujo de Trabajo de Desarrollo
|
|
|
|
### Trabajando con Jupyter Notebooks
|
|
1. Inicia Jupyter en la raíz del repositorio: `jupyter notebook`
|
|
2. Navega a la carpeta de la lección deseada
|
|
3. Abre los archivos `.ipynb` para trabajar en los ejercicios
|
|
4. Los notebooks son autónomos con explicaciones y celdas de código
|
|
5. La mayoría de los notebooks utilizan pandas, numpy y matplotlib; asegúrate de que estén instalados
|
|
|
|
### Estructura de las Lecciones
|
|
Cada lección típicamente contiene:
|
|
- `README.md` - Contenido principal de la lección con teoría y ejemplos
|
|
- `notebook.ipynb` - Ejercicios prácticos en Jupyter notebook
|
|
- `assignment.ipynb` o `assignment.md` - Tareas prácticas
|
|
- Carpeta `solution/` - Notebooks y código de solución
|
|
- Carpeta `images/` - Materiales visuales de apoyo
|
|
|
|
### Desarrollo de la Aplicación de Cuestionarios
|
|
- Aplicación Vue.js 2 con recarga en caliente durante el desarrollo
|
|
- Cuestionarios almacenados en `quiz-app/src/assets/translations/`
|
|
- Cada idioma tiene su propia carpeta de traducción (en, fr, es, etc.)
|
|
- La numeración de los cuestionarios comienza en 0 y llega hasta 39 (40 cuestionarios en total)
|
|
|
|
### Agregar Traducciones
|
|
- Las traducciones se colocan en la carpeta `translations/` en la raíz del repositorio
|
|
- Cada idioma tiene una estructura completa de lecciones reflejada desde el inglés
|
|
- Traducción automatizada mediante GitHub Actions (co-op-translator.yml)
|
|
|
|
## Instrucciones de Pruebas
|
|
|
|
### Pruebas de la Aplicación de Cuestionarios
|
|
```bash
|
|
cd quiz-app
|
|
|
|
# Run lint checks
|
|
npm run lint
|
|
|
|
# Test build process
|
|
npm run build
|
|
|
|
# Manual testing: Start dev server and verify quiz functionality
|
|
npm run serve
|
|
```
|
|
|
|
### Pruebas de Notebooks
|
|
- No existe un marco de pruebas automatizado para notebooks
|
|
- Validación manual: Ejecuta todas las celdas en secuencia para asegurarte de que no haya errores
|
|
- Verifica que los archivos de datos sean accesibles y que los resultados se generen correctamente
|
|
- Comprueba que las visualizaciones se rendericen adecuadamente
|
|
|
|
### Pruebas de Documentación
|
|
```bash
|
|
# Verify Docsify renders correctly
|
|
docsify serve
|
|
|
|
# Check for broken links manually by navigating through content
|
|
# Verify all lesson links work in the rendered documentation
|
|
```
|
|
|
|
### Verificaciones de Calidad de Código
|
|
```bash
|
|
# Vue.js projects (quiz-app and visualization projects)
|
|
cd quiz-app # or visualization project folder
|
|
npm run lint
|
|
|
|
# Python notebooks - manual verification recommended
|
|
# Ensure imports work and cells execute without errors
|
|
```
|
|
|
|
|
|
## Guías de Estilo de Código
|
|
|
|
### Python (Jupyter Notebooks)
|
|
- Sigue las guías de estilo PEP 8 para código Python
|
|
- Usa nombres de variables claros que expliquen los datos que se están analizando
|
|
- Incluye celdas de markdown con explicaciones antes de las celdas de código
|
|
- Mantén las celdas de código enfocadas en conceptos u operaciones individuales
|
|
- Utiliza pandas para manipulación de datos, matplotlib para visualización
|
|
- Patrón común de importación:
|
|
```python
|
|
import pandas as pd
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
```
|
|
|
|
|
|
### JavaScript/Vue.js
|
|
- Sigue la guía de estilo de Vue.js 2 y las mejores prácticas
|
|
- Configuración de ESLint en `quiz-app/package.json`
|
|
- Usa componentes de archivo único de Vue (.vue files)
|
|
- Mantén una arquitectura basada en componentes
|
|
- Ejecuta `npm run lint` antes de confirmar cambios
|
|
|
|
### Documentación en Markdown
|
|
- Usa una jerarquía clara de encabezados (# ## ### etc.)
|
|
- Incluye bloques de código con especificadores de lenguaje
|
|
- Agrega texto alternativo para imágenes
|
|
- Enlaza a lecciones y recursos relacionados
|
|
- Mantén longitudes de línea razonables para facilitar la lectura
|
|
|
|
### Organización de Archivos
|
|
- Contenido de las lecciones en carpetas numeradas (01-definiendo-ciencia-de-datos, etc.)
|
|
- Soluciones en subcarpetas dedicadas `solution/`
|
|
- Las traducciones reflejan la estructura en inglés en la carpeta `translations/`
|
|
- Mantén los archivos de datos en `data/` o carpetas específicas de las lecciones
|
|
|
|
## Construcción y Despliegue
|
|
|
|
### Despliegue de la Aplicación de Cuestionarios
|
|
```bash
|
|
cd quiz-app
|
|
|
|
# Build production version
|
|
npm run build
|
|
|
|
# Output is in dist/ folder
|
|
# Deploy dist/ folder to static hosting (Azure Static Web Apps, Netlify, etc.)
|
|
```
|
|
|
|
### Despliegue de Azure Static Web Apps
|
|
La aplicación quiz-app puede desplegarse en Azure Static Web Apps:
|
|
1. Crea un recurso de Azure Static Web App
|
|
2. Conéctalo al repositorio de GitHub
|
|
3. Configura los ajustes de construcción:
|
|
- Ubicación de la aplicación: `quiz-app`
|
|
- Ubicación de salida: `dist`
|
|
4. El flujo de trabajo de GitHub Actions se encargará del despliegue automático al realizar un push
|
|
|
|
### Sitio de Documentación
|
|
```bash
|
|
# Build PDF from Docsify (optional)
|
|
npm run convert
|
|
|
|
# Docsify documentation is served directly from markdown files
|
|
# No build step required for deployment
|
|
# Deploy repository to static hosting with Docsify
|
|
```
|
|
|
|
### GitHub Codespaces
|
|
- El repositorio incluye configuración de contenedor de desarrollo
|
|
- Codespaces configura automáticamente el entorno de Python y Node.js
|
|
- Abre el repositorio en Codespace a través de la interfaz de GitHub
|
|
- Todas las dependencias se instalan automáticamente
|
|
|
|
## Guías para Pull Requests
|
|
|
|
### Antes de Enviar
|
|
```bash
|
|
# For Vue.js changes in quiz-app
|
|
cd quiz-app
|
|
npm run lint
|
|
npm run build
|
|
|
|
# Test changes locally
|
|
npm run serve
|
|
```
|
|
|
|
### Formato del Título de PR
|
|
- Usa títulos claros y descriptivos
|
|
- Formato: `[Componente] Breve descripción`
|
|
- Ejemplos:
|
|
- `[Lección 7] Corrige error de importación en notebook de Python`
|
|
- `[Aplicación de Cuestionarios] Agrega traducción al alemán`
|
|
- `[Documentación] Actualiza README con nuevos requisitos`
|
|
|
|
### Verificaciones Requeridas
|
|
- Asegúrate de que todo el código se ejecute sin errores
|
|
- Verifica que los notebooks se ejecuten completamente
|
|
- Confirma que las aplicaciones Vue.js se construyan correctamente
|
|
- Comprueba que los enlaces de la documentación funcionen
|
|
- Prueba la aplicación de cuestionarios si fue modificada
|
|
- Verifica que las traducciones mantengan una estructura consistente
|
|
|
|
### Guías de Contribución
|
|
- Sigue el estilo y los patrones de código existentes
|
|
- Agrega comentarios explicativos para lógica compleja
|
|
- Actualiza la documentación relevante
|
|
- Prueba los cambios en diferentes módulos de lecciones si aplica
|
|
- Revisa el archivo CONTRIBUTING.md
|
|
|
|
## Notas Adicionales
|
|
|
|
### Bibliotecas Comunes Utilizadas
|
|
- **pandas**: Manipulación y análisis de datos
|
|
- **numpy**: Computación numérica
|
|
- **matplotlib**: Visualización y gráficos de datos
|
|
- **seaborn**: Visualización estadística de datos (algunas lecciones)
|
|
- **scikit-learn**: Aprendizaje automático (lecciones avanzadas)
|
|
|
|
### Trabajando con Archivos de Datos
|
|
- Archivos de datos ubicados en la carpeta `data/` o directorios específicos de las lecciones
|
|
- La mayoría de los notebooks esperan archivos de datos en rutas relativas
|
|
- Los archivos CSV son el formato principal de datos
|
|
- Algunas lecciones utilizan JSON para ejemplos de datos no relacionales
|
|
|
|
### Soporte Multilingüe
|
|
- Más de 40 traducciones de idiomas mediante GitHub Actions automatizadas
|
|
- Flujo de trabajo de traducción en `.github/workflows/co-op-translator.yml`
|
|
- Traducciones en la carpeta `translations/` con códigos de idioma
|
|
- Traducciones de cuestionarios en `quiz-app/src/assets/translations/`
|
|
|
|
### Opciones de Entorno de Desarrollo
|
|
1. **Desarrollo Local**: Instala Python, Jupyter, Node.js localmente
|
|
2. **GitHub Codespaces**: Entorno de desarrollo instantáneo basado en la nube
|
|
3. **Contenedores de Desarrollo en VS Code**: Desarrollo local basado en contenedores
|
|
4. **Binder**: Lanza notebooks en la nube (si está configurado)
|
|
|
|
### Guías de Contenido de las Lecciones
|
|
- Cada lección es autónoma pero se basa en conceptos previos
|
|
- Cuestionarios previos a la lección evalúan conocimientos previos
|
|
- Cuestionarios posteriores a la lección refuerzan el aprendizaje
|
|
- Las tareas proporcionan práctica práctica
|
|
- Los sketchnotes ofrecen resúmenes visuales
|
|
|
|
### Solución de Problemas Comunes
|
|
|
|
**Problemas con el Kernel de Jupyter:**
|
|
```bash
|
|
# Ensure correct kernel is installed
|
|
python -m ipykernel install --user --name=datascience
|
|
```
|
|
|
|
**Fallos en npm Install:**
|
|
```bash
|
|
# Clear npm cache and retry
|
|
npm cache clean --force
|
|
rm -rf node_modules package-lock.json
|
|
npm install
|
|
```
|
|
|
|
**Errores de Importación en Notebooks:**
|
|
- Verifica que todas las bibliotecas requeridas estén instaladas
|
|
- Comprueba la compatibilidad de la versión de Python (se recomienda Python 3.7+)
|
|
- Asegúrate de que el entorno virtual esté activado
|
|
|
|
**Docsify No Carga:**
|
|
- Verifica que estés sirviendo desde la raíz del repositorio
|
|
- Comprueba que `index.html` exista
|
|
- Asegúrate de tener acceso adecuado a la red (puerto 3000)
|
|
|
|
### Consideraciones de Rendimiento
|
|
- Los conjuntos de datos grandes pueden tardar en cargarse en los notebooks
|
|
- La renderización de visualizaciones puede ser lenta para gráficos complejos
|
|
- El servidor de desarrollo de Vue.js permite recarga en caliente para iteración rápida
|
|
- Las construcciones de producción están optimizadas y minificadas
|
|
|
|
### Notas de Seguridad
|
|
- No se deben comprometer datos sensibles ni credenciales
|
|
- Usa variables de entorno para cualquier clave API en lecciones en la nube
|
|
- Las lecciones relacionadas con Azure pueden requerir credenciales de cuenta de Azure
|
|
- Mantén las dependencias actualizadas para parches de seguridad
|
|
|
|
## Contribuyendo a las Traducciones
|
|
- Traducciones automatizadas gestionadas mediante GitHub Actions
|
|
- Correcciones manuales son bienvenidas para mejorar la precisión de las traducciones
|
|
- Sigue la estructura de carpetas de traducción existente
|
|
- Actualiza los enlaces de los cuestionarios para incluir el parámetro de idioma: `?loc=fr`
|
|
- Prueba las lecciones traducidas para verificar su correcta visualización
|
|
|
|
## Recursos Relacionados
|
|
- Plan de estudios principal: https://aka.ms/datascience-beginners
|
|
- Microsoft Learn: https://docs.microsoft.com/learn/
|
|
- Student Hub: https://docs.microsoft.com/learn/student-hub
|
|
- Foro de Discusión: https://github.com/microsoft/Data-Science-For-Beginners/discussions
|
|
- Otros planes de estudios de Microsoft: ML for Beginners, AI for Beginners, Web Dev for Beginners
|
|
|
|
## Mantenimiento del Proyecto
|
|
- Actualizaciones regulares para mantener el contenido actualizado
|
|
- Contribuciones de la comunidad son bienvenidas
|
|
- Problemas rastreados en GitHub
|
|
- PRs revisados por los mantenedores del plan de estudios
|
|
- Revisiones y actualizaciones de contenido mensuales
|
|
|
|
---
|
|
|
|
**Descargo de responsabilidad**:
|
|
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción. |