Llegamos a un punto estratégico del semestre. En la Semana 14, las rutas de Ingeniería Civil y Agroindustrial vuelven a unirse bajo una misma metodología: aprender a conectar sus “motores de cálculo” (el backend matemático que desarrollaron) con una interfaz visual amigable (el frontend en Streamlit). Este es el banderazo de salida para la construcción de su Proyecto Final integrador.
A continuación, presento la estructura de la guía para esta semana, diseñada para que cada estudiante genere la plantilla base de su aplicación.
Asignatura: Programación de Computadores / Fundamentos de Programación Programas: Ingeniería Agrícola, Civil y Agroindustrial
Durante las últimas dos semanas construimos el “motor” de nuestras aplicaciones: funciones para calcular el secado de alimentos y algoritmos simbólicos para resolver vigas isostáticas. Sin embargo, un motor no sirve de mucho sin un volante y un tablero de control.
El propósito de esta semana es aprender la Arquitectura de Software básica para integrar nuestra lógica matemática (Backend) con una interfaz gráfica web (Frontend) usando Streamlit. Esta arquitectura garantizará que el código del proyecto final sea ordenado, profesional y escalable.
st.sidebar) para
organizar las entradas de datos del usuario sin saturar la pantalla
principal.st.metric,
st.columns).Se debe explicar a los estudiantes que una aplicación web bien
diseñada nunca mezcla todo el código de forma desordenada. Se rige por 5
bloques fundamentales: 1. Importación de Librerías: Las
herramientas necesarias (streamlit, sympy,
etc.). 2. El “Cerebro” (Funciones de Cálculo): Aquí
residen las funciones creadas en las semanas 12 y 13. La regla de oro es
que el cerebro no imprime en pantalla, solo recibe variables,
procesa y retorna resultados (return). 3. El
“Rostro” (Interfaz Streamlit): Títulos, descripciones y
configuración de la página web. 4. El Panel de Control
(Entradas): Controles interactivos reubicados en un panel
lateral (st.sidebar.number_input) para mayor limpieza
visual. 5. El Botón de Acción y Salidas: El disparador
(st.button) que toma los datos del panel, invoca al
cerebro, y muestra los resultados de forma elegante.
En Colab (o VSCode), cada estudiante estructurará el esqueleto de su aplicación específica.
Para Ingeniería Civil (Ruta A) -
app_civil.py: Se integra la función
resolver_viga_simple() que utiliza sympy y
Beam. La interfaz captura la longitud y la carga
distribuida, y al presionar el botón, la aplicación despliega las
reacciones en los apoyos A y B utilizando el componente visual
st.metric organizado en dos columnas
(st.columns(2)).
Para Ingeniería Agrícola/Agroindustrial (Ruta B) -
app_agro.py: Se integran las funciones
agua_a_evaporar() y calcular_caudal(). El
panel lateral captura la masa de producto, humedades y temperaturas
(ambiente y del colector). Al ejecutar, el sistema valida lógicamente
las temperaturas y, si son correctas, muestra un tablero con el agua a
evaporar, la energía requerida y el volumen de aire necesario.
Al igual que en semanas pasadas, los estudiantes utilizarán
localtunnel (o la terminal de VSCode directamente) para
lanzar su aplicación base, interactuar con la barra lateral y confirmar
que los datos viajan correctamente desde los deslizadores/cajas de texto
hasta las funciones matemáticas, y regresan como resultados a la
pantalla principal.
La arquitectura de software y la experiencia de usuario (UX) van de la mano. Los estudiantes utilizarán este prompt para planificar las mejoras visuales de su proyecto:
“Actúa como un Diseñador de Interfaces de Usuario (UI/UX) especializado en software de ingeniería. Estoy armando la estructura en Streamlit de mi proyecto final universitario. 1) Explícame por qué es una buena práctica de programación separar las funciones matemáticas complejas (backend) de los comandos visuales (frontend). 2) En el código usamos
st.sidebarpara poner los controles a la izquierda. ¿Qué ventajas tiene esto para la experiencia del usuario que usará mi calculadora? 3) Mi aplicación mostrará varios resultados numéricos clave. ¿Qué elementos visuales de Streamlit me recomiendas para que los resultados no se vean como simple texto aburrido? (Háblame dest.metricost.columns). Después hazme 2 preguntas sobre cómo pienso organizar visualmente mi proyecto final.”
El esquema final para el cierre cognitivo debe enfocarse en el diseño
estructural: 1. Fundamento de Arquitectura: El concepto
de separación entre Frontend (lo que ve el usuario) y Backend (la lógica
matemática que corre en el servidor). 2. Organización de
Interfaz: Para qué sirve la barra lateral
(st.sidebar) y por qué mejora la usabilidad de una
herramienta de ingeniería. 3. Flujo de Ejecución:
Explicación del ciclo: El usuario ingresa datos \(\rightarrow\) presiona el botón \(\rightarrow\) Streamlit envía datos a la
función \(\rightarrow\) la función
retorna el cálculo \(\rightarrow\)
Streamlit muestra la métrica. 4. Reto de Diseño (Reverso de la
hoja): El estudiante debe actuar como arquitecto de software y
dibujar el Wireframe (boceto visual final) de cómo
quiere que se vea su aplicación en la sustentación de la Semana 16. Debe
señalar dónde irán los controles de entrada, cómo se organizarán las
tarjetas de resultados numéricos, y dejar el espacio preparado para las
gráficas que se integrarán la próxima semana.
El camino queda despejado para la Semana 15, la cual
sugiero que se aborde como un “Taller de Integración Gráfica”. En esa
sesión, el objetivo será tomar las librerías gráficas (los diagramas de
sympy para Civil y las curvas de
matplotlib/pandas para Agro) y aprender a incrustarlas
dentro de este esqueleto web usando st.pyplot(), dejando el
proyecto listo para su despliegue final en la Semana 16.