1. Introducción de la unidad
En la Unidad 1 el estudiante aprendió que programar no consiste solamente en escribir código. Antes de programar es necesario comprender el problema, analizarlo, determinar qué información se necesita y diseñar una solución lógica.
En esta segunda unidad se profundiza en esa etapa previa a la programación.
El estudiante aprenderá a representar un problema de manera organizada para comprender mejor cómo puede solucionarse mediante un programa.
En electrónica, esta capacidad es especialmente importante porque los sistemas suelen recibir información de sensores, realizar operaciones y tomar decisiones para controlar diferentes dispositivos.
Por ejemplo, un sistema de control de temperatura puede parecer sencillo:
Sensor → Controlador → Ventilador
Sin embargo, para convertir esta idea en un programa es necesario responder preguntas como:
- ¿Qué información proporciona el sensor?
- ¿Cómo se representa esa información?
- ¿Qué valor debe analizar el programa?
- ¿Qué operaciones deben realizarse?
- ¿Cuál es la temperatura límite?
- ¿Qué debe ocurrir cuando se supera?
- ¿Qué debe ocurrir cuando la temperatura disminuye?
- ¿Qué pasos debe seguir el programa?
- ¿Cómo se comprobará que la solución funciona?
El modelado permite organizar estas respuestas antes de comenzar la codificación.
2. Propósito de la unidad
Desarrollar en el estudiante la capacidad de analizar, descomponer y modelar problemas técnicos, identificando datos, información, procesos, operaciones y secuencias necesarias para preparar una solución computacional antes de convertirla en código.
3. Resultados de aprendizaje
Al finalizar esta unidad, el estudiante será capaz de:
- Explicar qué significa modelar un problema.
- Representar problemas técnicos de manera estructurada.
- Descomponer problemas complejos en partes más sencillas.
- Aplicar la abstracción para identificar los elementos importantes de un problema.
- Diferenciar datos de información.
- Identificar procesos y operaciones.
- Organizar correctamente una secuencia de procesos.
- Relacionar un problema con una posible solución computacional.
- Explicar la relación entre solución y programa.
- Aplicar estrategias básicas de resolución de problemas.
- Analizar diferentes alternativas antes de seleccionar una solución.
- Preparar una solución mediante esquemas, algoritmos o pseudocódigo antes de programar.
- Analizar problemas relacionados con equipos y sistemas electrónicos.
- Presentar y defender una propuesta de solución durante una exposición presencial en el taller.
CONTENIDOS CONCEPTUALES
4. ¿Qué es el modelado de problemas?
El modelado de problemas consiste en representar una situación real de manera simplificada para poder comprenderla, analizarla y encontrar una solución.
Cuando un problema es complejo, puede resultar difícil trabajar directamente con todos sus detalles.
El modelado permite seleccionar los elementos importantes y establecer relaciones entre ellos.
Por ejemplo:
Problema real
Un sistema electrónico se sobrecalienta.
Podemos representar una parte importante del problema como:
Temperatura → Lectura → Comparación → Decisión → Ventilador
Este modelo permite comprender la lógica general sin necesidad de conocer todavía todos los detalles del circuito.
5. ¿Por qué es importante modelar?
El modelado ayuda a:
- comprender mejor el problema;
- organizar las ideas;
- identificar información importante;
- eliminar detalles innecesarios;
- encontrar relaciones;
- detectar errores antes de programar;
- comparar diferentes soluciones;
- facilitar la codificación;
- facilitar las pruebas.
Un buen modelo puede evitar que el estudiante comience a programar sin comprender realmente lo que debe hacer.
6. Modelado aplicado a electrónica
En electrónica podemos modelar un sistema mediante tres elementos principales:
Entrada → Procesamiento → Salida
Por ejemplo:
Sistema automático de iluminación
Entrada: nivel de iluminación.
Procesamiento: comparar el nivel medido con un límite.
Salida: lámpara encendida o apagada.
Representación:
Sensor de luz
↓
Lectura del sensor
↓
Comparación
↓
Decisión
↓
Lámpara
Este modelo puede utilizarse posteriormente para desarrollar un algoritmo y finalmente un programa.
7. Descomposición de problemas
La descomposición consiste en dividir un problema grande en partes más pequeñas y fáciles de comprender.
Esta estrategia es fundamental en programación.
Ejemplo
Problema:
Diseñar un sistema automático para controlar un ventilador según la temperatura.
Podemos dividirlo en:
- Obtener la temperatura.
- Leer el sensor.
- Comparar el valor.
- Determinar si la temperatura es alta.
- Activar el ventilador.
- Determinar cuándo debe apagarse.
- Apagar el ventilador.
- Repetir el proceso.
Cada parte puede analizarse individualmente.
8. Ventajas de la descomposición
La descomposición permite:
- reducir la complejidad;
- organizar el trabajo;
- identificar errores;
- facilitar la programación;
- facilitar las pruebas;
- dividir tareas entre integrantes de un equipo;
- comprender mejor el funcionamiento del sistema.
Un problema complejo puede convertirse en varios problemas pequeños.
Problema complejo → Problemas pequeños → Solución organizada
9. Abstracción
La abstracción consiste en concentrarse en los elementos importantes del problema y dejar de lado aquellos detalles que no son necesarios para desarrollar la solución.
Ejemplo
Supongamos que queremos programar el control de un ventilador.
No necesitamos conocer inicialmente:
- el color del ventilador;
- el material de la carcasa;
- el fabricante;
- el tamaño físico del equipo.
Lo importante para el programa puede ser:
- temperatura;
- temperatura límite;
- estado del ventilador.
Por tanto:
Abstracción = concentrarse en lo necesario para resolver el problema.
10. Descomposición y abstracción juntas
Ambas estrategias trabajan de manera complementaria.
Descomposición
Divide el problema.
Abstracción
Selecciona la información importante.
Por ejemplo:
Problema: controlar la temperatura de un equipo.
Descomposición
- medir temperatura;
- comparar temperatura;
- tomar decisión;
- controlar ventilador.
Abstracción
Elementos principales:
- temperatura;
- límite;
- ventilador.
Esto produce un modelo mucho más fácil de manejar.
11. Secuencia de procesos
Una computadora o sistema programable necesita recibir instrucciones organizadas.
La secuencia indica el orden en que deben ejecutarse los procesos.
Por ejemplo:
1. Leer temperatura.
2. Comparar temperatura.
3. Tomar decisión.
4. Encender ventilador.
No siempre se puede cambiar el orden.
Por ejemplo, no sería lógico comparar la temperatura antes de obtenerla.
Por eso:
Primero se obtiene el dato → después se procesa → finalmente se produce el resultado.
12. Importancia de la secuencia
Una secuencia incorrecta puede producir:
- resultados incorrectos;
- decisiones equivocadas;
- errores de funcionamiento;
- comportamiento inesperado del sistema.
Ejemplo
Incorrecto:
Comparar temperatura
Leer temperatura
Encender ventilador
Correcto:
Leer temperatura
Comparar temperatura
Tomar decisión
Encender ventilador
13. Datos e información
Aunque ambos conceptos están relacionados, dato e información no significan exactamente lo mismo.
Dato
Es un valor o elemento que representa algo.
Ejemplo:
32
Por sí solo puede no indicar qué representa.
Información
Es un dato interpretado dentro de un contexto.
Ejemplo:
Temperatura = 32 °C
Ahora sabemos qué representa el valor.
14. Ejemplo aplicado a electrónica
Supongamos que un sensor proporciona:
35
Ese valor es un dato.
Cuando sabemos que representa:
Temperatura = 35 °C
tenemos información que puede utilizar el programa.
El sistema puede entonces realizar una operación:
35 °C > 30 °C
Resultado:
Verdadero
Decisión:
Encender ventilador.
15. Datos de entrada
Los datos de entrada son los valores que recibe un sistema para poder realizar un proceso.
Pueden proceder de:
- sensores;
- botones;
- interruptores;
- teclados;
- potenciómetros;
- archivos;
- usuarios;
- otros dispositivos.
Ejemplo
Sistema de control de temperatura:
Entrada = temperatura medida
16. Procesos y operaciones
Una vez recibidos los datos, el sistema debe realizar determinadas operaciones.
Las operaciones pueden ser:
- matemáticas;
- lógicas;
- comparaciones;
- conversiones;
- clasificación;
- decisiones.
Operaciones matemáticas
Ejemplos:
Suma
Resta
Multiplicación
División
Operaciones de comparación
Ejemplos:
- mayor que;
- menor que;
- igual a;
- diferente de.
Ejemplo
Temperatura > 30
El programa determina si la condición es verdadera o falsa.
17. Operaciones lógicas
Las operaciones lógicas permiten combinar condiciones.
Por ejemplo:
Un sistema podría activar una alarma cuando:
Puerta abierta Y sistema activado.
También podría utilizar:
Movimiento detectado O puerta abierta.
Estas operaciones serán importantes posteriormente cuando el estudiante estudie estructuras de decisión.
18. Relaciones entre problema, solución y programa
Estos tres conceptos están directamente relacionados.
Problema
Es la situación que debe resolverse.
Solución
Es la propuesta para resolver el problema.
Programa
Es la implementación de esa solución mediante instrucciones que puede ejecutar un sistema.
La relación puede representarse:
Problema
↓
Análisis
↓
Diseño de solución
↓
Programa
↓
Ejecución
↓
Resultado
19. Ejemplo completo
Problema
Una lámpara de un taller permanece encendida durante todo el día.
Necesidad
Controlar automáticamente la iluminación.
Solución
Utilizar un sensor de luz y un sistema programable.
Modelo
Sensor de luz → Programa → Lámpara
Entrada
Nivel de iluminación.
Procesamiento
Comparar el nivel con un límite.
Salida
Encender o apagar la lámpara.
Programa
Posteriormente, esta lógica puede convertirse en instrucciones de un lenguaje de programación.
20. Estrategias de resolución de problemas
No todos los problemas deben resolverse de la misma manera.
Existen diferentes estrategias que pueden ayudar.
20.1. Comprender el problema
Antes de buscar una solución es necesario saber exactamente qué ocurre.
Preguntas importantes:
- ¿Qué está sucediendo?
- ¿Qué debería suceder?
- ¿Cuál es la diferencia?
- ¿Qué información tenemos?
- ¿Qué información necesitamos?
21. Identificar entradas y salidas
Una estrategia sencilla consiste en preguntar:
¿Qué recibe el sistema?
y
¿Qué debe producir?
Por ejemplo:
Sistema de alarma
Entrada:
Sensor de movimiento.
Salida:
Alarma.
22. Dividir el problema
Si el problema es grande, se divide en partes.
Ejemplo:
Sistema de seguridad
Puede dividirse en:
- Leer sensor.
- Comprobar estado.
- Detectar evento.
- Activar alarma.
- Mostrar aviso.
- Registrar evento.
23. Buscar patrones
Si un problema es parecido a otro que ya conocemos, podemos utilizar conocimientos anteriores.
Por ejemplo:
Un sistema de control de temperatura y un sistema de iluminación automática pueden tener una estructura semejante:
Entrada → Comparación → Decisión → Salida
24. Probar diferentes alternativas
Una solución no siempre es la única posible.
Por ejemplo, para controlar un ventilador podemos utilizar:
- interruptor manual;
- temporizador;
- sensor de temperatura;
- sensor y microcontrolador.
El análisis permite seleccionar la alternativa más adecuada.
25. Verificar la solución
Una solución debe probarse antes de considerarse terminada.
Hay que preguntar:
- ¿Funciona?
- ¿Produce el resultado esperado?
- ¿Qué ocurre con valores diferentes?
- ¿Qué ocurre si el sensor falla?
- ¿Qué ocurre en condiciones extremas?
Las pruebas permiten detectar problemas antes de utilizar el sistema.
26. Preparación de una solución antes de la codificación
Una de las ideas más importantes de esta unidad es:
No comenzar directamente a escribir código sin haber diseñado primero la solución.
Antes de programar es recomendable seguir una secuencia.
Paso 1. Comprender el problema
¿Qué se necesita resolver?
Paso 2. Identificar entradas
¿Qué información recibe el sistema?
Paso 3. Identificar salidas
¿Qué resultado debe producir?
Paso 4. Identificar procesos
¿Qué operaciones deben realizarse?
Paso 5. Establecer condiciones
¿Qué decisiones debe tomar el sistema?
Paso 6. Organizar la secuencia
¿En qué orden deben realizarse las acciones?
Paso 7. Representar la solución
Utilizar:
- esquema;
- algoritmo;
- pseudocódigo;
- diagrama de flujo.
Paso 8. Revisar
Comprobar si la solución tiene sentido.
Paso 9. Codificar
Convertir el diseño en un programa.
27. Algoritmo como preparación para programar
Un algoritmo permite describir la solución mediante pasos ordenados.
Ejemplo
Problema:
Controlar un ventilador mediante temperatura.
Algoritmo
INICIO
Leer temperatura
Si temperatura es mayor que 30 °C entonces
Encender ventilador
Si no
Apagar ventilador
FIN
El algoritmo todavía no depende de un lenguaje específico.
Por eso permite concentrarse primero en la lógica.
28. Pseudocódigo
El pseudocódigo es una forma de escribir la solución utilizando instrucciones similares al lenguaje humano, pero con una estructura lógica.
Ejemplo:
INICIO
LEER temperatura
SI temperatura > 30 ENTONCES
ENCENDER ventilador
SINO
APAGAR ventilador
FIN SI
FIN
El pseudocódigo facilita posteriormente la conversión a un lenguaje de programación.
29. Diagrama de flujo como modelo
Otra herramienta para representar una solución es el diagrama de flujo.
Una representación sencilla sería:
INICIO
↓
Leer temperatura
↓
¿Temperatura > 30?
↙ ↘
Sí No
↓ ↓
Encender Apagar
ventilador ventilador
↘ ↙
↓
FIN
El estudiante aprenderá progresivamente a utilizar símbolos estandarizados para representar estas estructuras.
30. Modelo general para problemas electrónicos
Para muchos problemas de electrónica puede utilizarse el siguiente modelo:
ENTRADA
↓
Captura de datos
↓
PROCESAMIENTO
↓
Comparaciones
↓
Decisiones
↓
SALIDA
↓
Acción del sistema
Por ejemplo:
Sensor de temperatura
↓
Leer temperatura
↓
Comparar con límite
↓
Decisión
↓
Ventilador




