La siguiente es una guía como un bloque formativo de 3 semanas, 6 sesiones de 2 horas, pensado para estudiantes que vienen de Google Colab y comienzan desde cero absoluto con VSCode + Python + Streamlit + GitHub + Streamlit Community Cloud. Puede ubicarse al inicio del semestre 2026-1, teniendo presente que el calendario académico registra inicio de clases el 09 de febrero de 2026 y primer reporte del 50% para asignaturas de 16 semanas entre el 06 y el 15 de abril de 2026.
La ruta está ajustada a la documentación oficial vigente: Streamlit
recomienda trabajar localmente con venv y pip,
soporta Python 3.10 a 3.14, y permite ejecutar
aplicaciones con streamlit run app.py o
python -m streamlit run app.py. (Streamlit
Docs) Para aplicaciones multipágina, se trabajarán dos enfoques: el
tradicional mediante carpeta pages/ y el enfoque más
flexible con st.Page y st.navigation, que la
documentación presenta como el método preferido para definir navegación
personalizada. (Streamlit
Docs)
Desarrollar progresivamente una aplicación web en Python usando Streamlit, iniciando con aplicaciones simples de una sola página, avanzando hacia aplicaciones multipágina y finalizando con el despliegue público en Streamlit Community Cloud.
Al finalizar las tres semanas, el estudiante estará en capacidad de:
.venv y Streamlit.README.md,
requirements.txt y comentarios claros en el código.Cada grupo deberá entregar:
requirements.txt.README.md.Duración: 2 horas Tema central: Pasar de Colab al desarrollo local con VSCode.
Crear desde cero un proyecto local en VSCode, configurar un entorno
virtual .venv, instalar Streamlit y ejecutar la primera
aplicación.
streamlit run.| Tiempo | Actividad |
|---|---|
| 0–15 min | Explicación conceptual: de Google Colab a VSCode. |
| 15–35 min | Crear carpeta del proyecto en C:\. |
| 35–60 min | Abrir carpeta en VSCode y crear entorno virtual. |
| 60–80 min | Activar .venv e instalar Streamlit. |
| 80–105 min | Crear app.py y ejecutar la primera aplicación. |
| 105–120 min | Cierre, preguntas y verificación individual. |
cd C:\
mkdir primera_app_streamlit
cd primera_app_streamlit
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install streamlit
streamlit hello
Si streamlit hello no abre correctamente, usar:
python -m streamlit hello
app.py# app.py
# Primera aplicación con Streamlit
# Curso: Programación de Computadores / Fundamentos de Programación
import streamlit as st
# Configuración general de la página
st.set_page_config(
page_title="Mi primera app con Streamlit",
page_icon="🐍",
layout="centered"
)
# Título principal
st.title("Mi primera aplicación con Streamlit")
# Texto introductorio
st.write(
"""
Esta aplicación permite calcular un caudal aproximado a partir del área
de una sección transversal y la velocidad promedio del flujo.
"""
)
# Entrada de datos
area = st.number_input(
"Área transversal del canal o tubería (m²):",
min_value=0.0,
value=1.0,
step=0.1
)
velocidad = st.slider(
"Velocidad promedio del flujo (m/s):",
min_value=0.0,
max_value=10.0,
value=1.0,
step=0.1
)
# Cálculo
caudal = area * velocidad
# Salida
st.metric(
label="Caudal estimado",
value=f"{caudal:.2f} m³/s"
)
# Interpretación
if caudal == 0:
st.warning("El caudal es cero. Revise si el área o la velocidad son mayores que cero.")
elif caudal < 5:
st.info("El caudal calculado es bajo.")
else:
st.success("El caudal calculado es considerable.")
streamlit run app.py
O, de forma alternativa:
python -m streamlit run app.py
El estudiante debe mostrar en su computador:
.venv activado.app.py ejecutándose en el navegador.Duración: 2 horas Tema central: Agregar interactividad a una app sencilla.
Construir una aplicación aplicada a ingeniería usando controles interactivos de Streamlit.
st.title(), st.write(),
st.markdown().st.number_input().st.slider().st.selectbox().st.metric().Streamlit permite usar widgets como entradas interactivas y elementos
de salida como tablas, gráficos y métricas; por ejemplo,
st.file_uploader permite cargar archivos y los gráficos
nativos como st.line_chart facilitan visualizaciones
rápidas. (Streamlit Docs)
Nombre: Calculadora técnica básica para ingeniería.
El estudiante puede escoger una de estas situaciones:
| Programa | Situación sugerida |
|---|---|
| Ingeniería Civil | Cálculo de caudal en canal rectangular. |
| Ingeniería Agrícola | Cálculo de lámina de riego. |
| Ingeniería Agroindustrial | Cálculo de rendimiento porcentual en un proceso. |
# app.py
# Aplicación: cálculo de rendimiento de un proceso agroindustrial
import streamlit as st
st.set_page_config(
page_title="Rendimiento agroindustrial",
page_icon="🏭",
layout="centered"
)
st.title("Cálculo de rendimiento en un proceso agroindustrial")
st.write(
"""
Esta aplicación calcula el rendimiento porcentual de un proceso
a partir de la masa inicial de materia prima y la masa final obtenida.
"""
)
masa_inicial = st.number_input(
"Masa inicial de materia prima (kg):",
min_value=0.0,
value=100.0,
step=1.0
)
masa_final = st.number_input(
"Masa final del producto obtenido (kg):",
min_value=0.0,
value=75.0,
step=1.0
)
if masa_inicial > 0:
rendimiento = (masa_final / masa_inicial) * 100
st.metric(
label="Rendimiento del proceso",
value=f"{rendimiento:.2f} %"
)
if rendimiento < 50:
st.error("El rendimiento es bajo. Se recomienda revisar pérdidas del proceso.")
elif rendimiento < 80:
st.warning("El rendimiento es aceptable, pero puede optimizarse.")
else:
st.success("El rendimiento es alto.")
else:
st.warning("La masa inicial debe ser mayor que cero.")
Cada estudiante debe modificar la app para incluir:
st.metric().if, elif,
else.Archivo app.py funcional con una situación aplicada a su
programa de ingeniería.
Duración: 2 horas Tema central: Construir una app que lea datos y realice un análisis descriptivo inicial.
Crear una aplicación que permita cargar un archivo .csv,
visualizarlo, seleccionar variables numéricas y graficar resultados.
pandas.st.file_uploader().st.dataframe().st.selectbox().st.download_button().pip install pandas
# app.py
# Aplicación: explorador básico de datos en Streamlit
import streamlit as st
import pandas as pd
st.set_page_config(
page_title="Explorador de datos",
page_icon="📊",
layout="wide"
)
st.title("Explorador básico de datos")
st.write(
"""
Esta aplicación permite cargar un archivo CSV, visualizar sus datos
y realizar una exploración descriptiva inicial.
"""
)
archivo = st.file_uploader(
"Cargue un archivo CSV",
type=["csv"]
)
if archivo is not None:
# Lectura del archivo cargado
datos = pd.read_csv(archivo)
st.subheader("Vista previa de los datos")
st.dataframe(datos.head())
st.subheader("Dimensiones del conjunto de datos")
filas, columnas = datos.shape
st.write(f"El archivo tiene **{filas} filas** y **{columnas} columnas**.")
st.subheader("Resumen estadístico")
st.dataframe(datos.describe())
# Identificar columnas numéricas
columnas_numericas = datos.select_dtypes(include="number").columns
if len(columnas_numericas) > 0:
variable = st.selectbox(
"Seleccione una variable numérica para graficar:",
columnas_numericas
)
st.subheader(f"Gráfico de la variable: {variable}")
st.line_chart(datos[variable])
promedio = datos[variable].mean()
minimo = datos[variable].min()
maximo = datos[variable].max()
col1, col2, col3 = st.columns(3)
col1.metric("Promedio", f"{promedio:.2f}")
col2.metric("Mínimo", f"{minimo:.2f}")
col3.metric("Máximo", f"{maximo:.2f}")
else:
st.warning("El archivo no contiene columnas numéricas.")
else:
st.info("Por favor cargue un archivo CSV para iniciar el análisis.")
El estudiante debe probar la app con un archivo .csv
sencillo, por ejemplo:
dia,temperatura,humedad
1,30,78
2,31,75
3,29,82
4,33,70
5,32,73
Una app que carga datos, muestra tabla, resumen estadístico, métricas y gráfico.
pages/Duración: 2 horas Tema central: Organizar una app en varias páginas usando la estructura automática de Streamlit.
Transformar una aplicación de una sola página en una aplicación
multipágina usando la carpeta pages/.
La documentación de Streamlit indica que, al usar una carpeta
pages/ junto al archivo principal, cada archivo
.py dentro de esa carpeta es identificado automáticamente
como una página de la app, mientras el archivo principal funciona como
página de inicio. (Streamlit
Docs)
primera_app_streamlit/
├── app.py
├── pages/
│ ├── 1_Calculadora.py
│ ├── 2_Explorador_Datos.py
│ └── 3_Acerca_de.py
├── requirements.txt
└── README.md
app.py# app.py
# Página principal de la aplicación multipágina
import streamlit as st
st.set_page_config(
page_title="App multipágina",
page_icon="🏠",
layout="wide"
)
st.title("Aplicación multipágina con Streamlit")
st.write(
"""
Esta aplicación integra varias herramientas desarrolladas durante el curso:
1. Calculadora técnica.
2. Explorador básico de datos.
3. Página informativa del proyecto.
"""
)
st.info(
"Use el menú lateral para navegar entre las páginas de la aplicación."
)
pages/1_Calculadora.py# pages/1_Calculadora.py
# Página para cálculo de caudal
import streamlit as st
st.title("Calculadora de caudal")
st.write(
"""
Esta página calcula el caudal mediante la expresión:
Q = A × V
donde:
- Q es el caudal en m³/s.
- A es el área transversal en m².
- V es la velocidad en m/s.
"""
)
area = st.number_input(
"Área transversal (m²):",
min_value=0.0,
value=1.0
)
velocidad = st.number_input(
"Velocidad promedio (m/s):",
min_value=0.0,
value=1.0
)
caudal = area * velocidad
st.metric(
"Caudal estimado",
f"{caudal:.2f} m³/s"
)
pages/2_Explorador_Datos.py# pages/2_Explorador_Datos.py
# Página para cargar y explorar datos CSV
import streamlit as st
import pandas as pd
st.title("Explorador de datos CSV")
archivo = st.file_uploader(
"Cargue un archivo CSV",
type=["csv"]
)
if archivo is not None:
datos = pd.read_csv(archivo)
st.subheader("Datos cargados")
st.dataframe(datos.head())
st.subheader("Resumen estadístico")
st.dataframe(datos.describe())
columnas_numericas = datos.select_dtypes(include="number").columns
if len(columnas_numericas) > 0:
variable = st.selectbox(
"Seleccione una variable numérica:",
columnas_numericas
)
st.line_chart(datos[variable])
else:
st.info("Cargue un archivo CSV para iniciar.")
pages/3_Acerca_de.py# pages/3_Acerca_de.py
# Página de información general del proyecto
import streamlit as st
st.title("Acerca de esta aplicación")
st.write(
"""
Esta aplicación fue desarrollada como ejercicio académico para aprender:
- Desarrollo local con VSCode.
- Uso de entornos virtuales.
- Programación de interfaces web con Streamlit.
- Organización de aplicaciones multipágina.
- Publicación en Streamlit Community Cloud.
"""
)
st.markdown("**Autor:** Escriba aquí el nombre del estudiante o grupo.")
st.markdown("**Curso:** Programación de Computadores / Fundamentos de Programación.")
streamlit run app.py
Aplicación multipágina funcional usando carpeta
pages/.
st.Page, Git y GitHubDuración: 2 horas Tema central: Mejorar la organización del proyecto y versionarlo con GitHub.
Reorganizar el proyecto usando una estructura más profesional y preparar el repositorio para despliegue.
Streamlit documenta st.Page y st.navigation
como el método preferido para declarar páginas cuando se requiere mayor
control sobre archivos, títulos, íconos y estructura de navegación. (Streamlit
Docs)
app_streamlit_final/
├── app.py
├── vistas/
│ ├── inicio.py
│ ├── calculadora.py
│ ├── explorador.py
│ └── acerca.py
├── requirements.txt
├── README.md
└── .gitignore
vistas/inicio.py# vistas/inicio.py
# Página de inicio de la aplicación
import streamlit as st
st.title("Aplicación final con Streamlit")
st.write(
"""
Esta aplicación integra herramientas básicas para el análisis y cálculo
en situaciones de ingeniería.
Use el menú de navegación para acceder a cada módulo.
"""
)
st.success("Aplicación organizada mediante st.Page y st.navigation.")
.gitignore# Entorno virtual
.venv/
# Archivos temporales de Python
__pycache__/
*.pyc
# Configuración local sensible
.streamlit/secrets.toml
# Archivos del sistema
.DS_Store
Thumbs.db
requirements.txtstreamlit
pandas
En Streamlit Community Cloud, las dependencias Python deben
declararse normalmente en requirements.txt, ubicado en la
raíz del repositorio o junto al archivo principal de entrada. La
documentación advierte que no deben incluirse librerías incorporadas de
Python como math o random. (Streamlit
Docs)
git init
git add .
git commit -m "Primera version de la app Streamlit"
git branch -M main
git remote add origin https://github.com/USUARIO/NOMBRE_REPOSITORIO.git
git push -u origin main
Repositorio GitHub con la app organizada, documentada y lista para desplegar.
Duración: 2 horas Tema central: Publicar la aplicación para que tenga una URL pública.
Desplegar la aplicación desde GitHub en Streamlit Community Cloud.
Streamlit Community Cloud copia los archivos del repositorio y
ejecuta la app desde la raíz del proyecto; por eso es importante probar
localmente desde la raíz y mantener bien definida la ruta del archivo
principal. La documentación también recomienda usar barras
/ en rutas, porque Cloud no trabaja con rutas separadas por
\ de Windows. (Streamlit
Docs)
streamlit run app.py
git status
git add .
git commit -m "App lista para despliegue"
git push
Entrar a Streamlit Community Cloud.
Iniciar sesión con GitHub.
Seleccionar:
main.app.py.Revisar opciones avanzadas si se requiere fijar versión de Python.
La versión de Python se selecciona al momento del despliegue en las opciones avanzadas; después de desplegar, para cambiar Python se debe eliminar y volver a desplegar la app. (Streamlit Docs)
Presionar Deploy.
Copiar la URL pública de la aplicación.
| Problema | Causa probable | Solución |
|---|---|---|
| Error instalando dependencias | Falta requirements.txt |
Crear o corregir requirements.txt. |
| La app no encuentra un archivo | Ruta mal escrita | Usar rutas relativas y /, no \. |
| No aparece el repositorio | GitHub no autorizado | Revisar permisos de Streamlit Community Cloud. |
| La app funciona local, pero no en Cloud | Dependencia no declarada | Agregar la librería a requirements.txt. |
| Se eligió mal la versión de Python | Configuración inicial incorrecta | Eliminar y desplegar nuevamente con la versión correcta. |
Cada grupo debe entregar:
Nombre del grupo:
Integrantes:
Programa:
Nombre de la app:
URL de GitHub:
URL de Streamlit Community Cloud:
Descripción breve de la app:
| Criterio | Valor |
|---|---|
| Configuración correcta del entorno local en VSCode | 15% |
| App simple funcional con entradas, cálculo y salida | 15% |
| Carga y exploración básica de datos | 15% |
| Organización multipágina | 20% |
| Repositorio GitHub ordenado y documentado | 15% |
| Despliegue exitoso en Streamlit Community Cloud | 20% |
| Total | 100% |
Para estudiantes principiantes, conviene que la evaluación no se centre únicamente en que la app “se vea bonita”, sino en que puedan explicar:
Esta ruta conserva la lógica que usted suele usar: qué entra al sistema, qué hace el sistema y qué sale del sistema, pero ahora aplicada al desarrollo de una aplicación web real con Python y Streamlit.