UNIDAD 1. FUNDAMENTOS DE PROGRAMACIÓN Y RESOLUCIÓN DE PROBLEMAS TÉCNICOS

1. Introducción de la unidad

La programación es una herramienta fundamental en la tecnología moderna. Aunque tradicionalmente se relaciona con computadoras, teléfonos y aplicaciones, su utilización también está presente en numerosos equipos electrónicos.

Los sistemas de control de una lavadora, un horno eléctrico, un sistema de iluminación automática, una alarma, un robot, una fuente de alimentación inteligente o un sistema de control de temperatura pueden utilizar programas para tomar decisiones y ejecutar determinadas acciones.

En electrónica, aprender programación no significa solamente aprender a escribir código. El estudiante debe desarrollar la capacidad de analizar problemas, identificar necesidades, organizar información, diseñar soluciones y convertir procedimientos lógicos en instrucciones que un sistema pueda ejecutar.

Por esta razón, esta unidad introduce los fundamentos necesarios para comprender cómo se transforma un problema técnico en una solución computacional.

El estudiante comenzará trabajando con problemas sencillos y progresivamente aprenderá a identificar:

Problema → Datos de entrada → Procesamiento → Resultado o salida

Este modelo será fundamental para las unidades posteriores, donde se trabajará con algoritmos, pseudocódigo, diagramas de flujo y programación aplicada a sistemas electrónicos.

 

2. Propósito de la unidad

Desarrollar en el estudiante las capacidades básicas para analizar problemas técnicos, aplicar pensamiento computacional y diseñar soluciones mediante procedimientos lógicos, reconociendo los elementos fundamentales de un programa y las características que debe cumplir una solución computacional de calidad.

 

3. Resultados de aprendizaje esperados

Al finalizar las 22 horas de esta unidad, el estudiante será capaz de:

  1. Explicar con sus propias palabras qué es la programación.
  2. Identificar aplicaciones de la programación en sistemas tecnológicos y electrónicos.
  3. Explicar la relación entre computación y resolución de problemas.
  4. Aplicar principios básicos del pensamiento computacional.
  5. Diferenciar entre un problema, una necesidad y una posible solución.
  6. Identificar datos de entrada en una situación determinada.
  7. Identificar los procesos necesarios para transformar los datos.
  8. Identificar los resultados o salidas de un sistema.
  9. Determinar requerimientos básicos de una solución.
  10. Reconocer las etapas generales para desarrollar una solución computacional.
  11. Explicar las características de un programa de calidad.
  12. Reconocer la importancia de la legibilidad, modificabilidad, fiabilidad, eficiencia y portabilidad.
  13. Identificar los elementos básicos de un entorno de desarrollo.
  14. Analizar problemas sencillos relacionados con equipos electrónicos.
  15. Diseñar una solución lógica sencilla para un problema técnico.

 

4. CONTENIDOS CONCEPTUALES

4.1. Concepto de programación

¿Qué es programar?

La programación es el proceso de diseñar y escribir instrucciones que indican a una computadora, microcontrolador u otro sistema programable qué debe hacer.

Un programa está formado por instrucciones organizadas de manera lógica.

Por ejemplo, imaginemos un sistema electrónico encargado de encender automáticamente una lámpara cuando detecta oscuridad.

El sistema debe realizar algo parecido a lo siguiente:

  1. Leer el sensor de luz.
  2. Obtener el valor medido.
  3. Comparar el valor con un límite establecido.
  4. Determinar si existe suficiente luz.
  5. Encender o apagar la lámpara.
  6. Repetir el proceso.

Esto puede representarse de manera sencilla:

Sensor → Programa → Decisión → Actuador

La programación permite convertir esta lógica en instrucciones que pueda ejecutar el sistema.

Programar no es solamente escribir código

Un error frecuente es pensar que programar consiste únicamente en escribir líneas de código.

En realidad, la programación comienza antes de escribir código.

Primero es necesario:

  • comprender el problema;
  • identificar qué se necesita;
  • determinar qué información se utilizará;
  • establecer qué resultado se espera;
  • diseñar el procedimiento;
  • comprobar si la solución funciona;
  • corregir errores;
  • mejorar la solución.

Por lo tanto:

Programación = análisis + diseño + instrucciones + pruebas + mejora.

 

5. Aplicaciones de la programación en entornos tecnológicos y electrónicos

La programación está presente en una gran cantidad de sistemas electrónicos.

5.1. Sistemas de control

Un programa puede controlar diferentes dispositivos dependiendo de determinadas condiciones.

Ejemplo:

Un sistema de control de temperatura puede:

  • medir la temperatura;
  • comparar la temperatura con un valor establecido;
  • encender un ventilador;
  • apagar el ventilador cuando la temperatura disminuya.

Representación:

Sensor de temperatura → Programa → Decisión → Ventilador

 

5.2. Sistemas de iluminación

Un sistema puede utilizar un sensor para determinar cuándo debe encender una lámpara.

Por ejemplo:

Si la iluminación ambiental es baja:

Encender lámpara.

Si la iluminación ambiental es suficiente:

Apagar lámpara.

 

5.3. Sistemas de seguridad

La programación permite controlar:

  • alarmas;
  • sensores de movimiento;
  • sensores de puertas;
  • sistemas de acceso;
  • cámaras;
  • detectores de humo.

Ejemplo:

Sensor de movimiento → Programa → Detecta movimiento → Activa alarma

 

5.4. Robótica

Los robots utilizan programas para determinar cómo deben responder ante diferentes situaciones.

Un robot puede:

  • detectar obstáculos;
  • mover motores;
  • encender luces;
  • emitir sonidos;
  • seguir una trayectoria;
  • recibir información de sensores.

 

5.5. Electrodomésticos

Muchos electrodomésticos modernos incorporan sistemas programables.

Entre ellos:

  • lavadoras;
  • refrigeradores;
  • hornos;
  • microondas;
  • acondicionadores de aire;
  • cafeteras;
  • sistemas de climatización.

Por ejemplo, una lavadora puede controlar mediante programación:

Nivel de agua → tiempo → velocidad del motor → drenaje → centrifugado.

 

6. Computación y resolución de problemas

La computación puede utilizarse como herramienta para resolver problemas.

Un problema técnico generalmente aparece cuando existe una diferencia entre:

Situación actual

y

Situación deseada.

Por ejemplo:

Una lámpara permanece encendida durante todo el día.

Situación actual:

La lámpara permanece encendida aunque haya suficiente luz.

Situación deseada:

La lámpara debe encenderse solamente cuando exista poca iluminación.

El problema puede solucionarse mediante un sistema que utilice:

  • sensor de luz;
  • circuito de control;
  • programa;
  • dispositivo de salida.

 

7. Pensamiento computacional

El pensamiento computacional es una forma organizada de analizar problemas para encontrar soluciones que puedan ser ejecutadas por una persona o por un sistema computacional.

No significa pensar como una computadora.

Significa organizar el pensamiento de manera lógica y estructurada.

Entre sus principales elementos se encuentran:

  • descomposición;
  • reconocimiento de patrones;
  • abstracción;
  • diseño de algoritmos.

 

7.1. Descomposición

Consiste en dividir un problema grande en problemas más pequeños.

Ejemplo

Problema:

Diseñar un sistema automático de iluminación.

Podemos dividirlo en:

  1. Detectar la iluminación.
  2. Leer el sensor.
  3. Comparar el valor.
  4. Tomar una decisión.
  5. Encender la lámpara.
  6. Apagar la lámpara.
  7. Repetir el proceso.

La descomposición facilita la comprensión y resolución del problema.

 

7.2. Reconocimiento de patrones

Consiste en identificar situaciones que se repiten o tienen características similares.

Por ejemplo:

Si se analizan diferentes sistemas automáticos:

  • sistema de iluminación;
  • sistema de temperatura;
  • sistema de alarma;

todos pueden presentar una estructura similar:

Entrada → procesamiento → salida.

 

7.3. Abstracción

La abstracción consiste en concentrarse en la información importante y evitar detalles que no son necesarios para resolver el problema.

Por ejemplo, para controlar un ventilador no necesitamos conocer todos los componentes internos del motor.

Podemos concentrarnos en:

  • temperatura;
  • límite establecido;
  • estado del ventilador.

 

7.4. Algoritmos

Un algoritmo es una secuencia ordenada de pasos utilizada para resolver un problema.

Ejemplo:

Algoritmo para encender una lámpara automáticamente

  1. Iniciar.
  2. Leer el sensor de luz.
  3. Comparar el nivel de iluminación.
  4. Si hay poca luz, encender la lámpara.
  5. Si hay suficiente luz, apagar la lámpara.
  6. Repetir.

El algoritmo representa la solución antes de escribir el programa.

 

8. Problema, necesidad y solución

Estos tres conceptos son fundamentales.

Problema

Es una situación que presenta una dificultad o condición que debe ser mejorada.

Ejemplo:

El ventilador de un equipo electrónico se activa demasiado tarde.

Necesidad

Es aquello que se requiere para solucionar o mejorar el problema.

Ejemplo:

Se necesita controlar automáticamente la temperatura y activar el ventilador cuando alcance determinado valor.

Solución

Es la propuesta que permite atender la necesidad.

Ejemplo:

Diseñar un sistema de control de temperatura mediante un sensor, un microcontrolador y un ventilador.

La relación puede representarse así:

Problema → Necesidad → Solución

 

9. Datos de entrada

Los datos de entrada son los valores o información que recibe un sistema para poder realizar un proceso.

En electrónica pueden provenir de:

  • sensores;
  • botones;
  • interruptores;
  • teclados;
  • potenciómetros;
  • dispositivos externos;
  • valores introducidos por el usuario.

Ejemplo

Un sistema de control de temperatura recibe:

Entrada: 32 °C

El programa puede utilizar ese valor para tomar una decisión.

 

10. Procesamiento

El procesamiento consiste en las operaciones que se realizan sobre los datos de entrada.

Puede incluir:

  • cálculos;
  • comparaciones;
  • decisiones;
  • conversiones;
  • operaciones matemáticas;
  • clasificación de datos.

Ejemplo

Entrada:

Temperatura = 32 °C

Condición:

Temperatura > 30 °C

Procesamiento:

La condición es verdadera.

Decisión:

Encender ventilador.

 

11. Resultados o salida

La salida es el resultado producido después del procesamiento.

En un sistema electrónico puede ser:

  • encender un LED;
  • apagar un LED;
  • activar un motor;
  • activar un relé;
  • mostrar un mensaje;
  • producir un sonido;
  • enviar información;
  • activar una alarma.

Ejemplo completo

Entrada: temperatura de 32 °C.

Procesamiento: comparar con el límite de 30 °C.

Salida: activar ventilador.

Por tanto:

Entrada → Procesamiento → Salida

 

12. Ejemplo aplicado a electrónica

Supongamos que se desea desarrollar un sistema que active un ventilador cuando la temperatura de un circuito electrónico sea demasiado alta.

Problema

El circuito puede calentarse excesivamente.

Necesidad

Se requiere controlar automáticamente la temperatura.

Entrada

Temperatura medida por un sensor.

Procesamiento

Comparar la temperatura con un límite.

Salida

Activar o desactivar el ventilador.

Representación

Sensor de temperatura

↓

Lectura del valor

↓

Comparación con temperatura límite

↓

Decisión

↓

Activar/desactivar ventilador

Este modelo será una base importante para aprender posteriormente programación de microcontroladores.

 

13. Requerimientos de una solución

Antes de desarrollar una solución es necesario determinar qué debe cumplir.

Los requerimientos son las condiciones o características que debe tener una solución para responder correctamente al problema.

Pueden incluir:

  • función que debe realizar;
  • entradas necesarias;
  • salidas esperadas;
  • límites de operación;
  • condiciones de seguridad;
  • tiempo de respuesta;
  • facilidad de uso;
  • costo;
  • confiabilidad.

Ejemplo

Para un sistema automático de ventilación:

Requerimiento 1: medir la temperatura.

Requerimiento 2: activar el ventilador cuando la temperatura sea alta.

Requerimiento 3: apagarlo cuando la temperatura disminuya.

Requerimiento 4: funcionar continuamente.

Requerimiento 5: evitar condiciones inseguras.

 

14. Etapas generales del desarrollo de una solución computacional

Una solución computacional puede desarrollarse siguiendo varias etapas.

Etapa 1. Identificación del problema

Se determina qué situación debe resolverse.

Etapa 2. Análisis

Se estudia el problema y se determina:

  • qué información se necesita;
  • cuáles son las entradas;
  • qué procesamiento debe realizarse;
  • cuáles son las salidas.

Etapa 3. Definición de requerimientos

Se establecen las condiciones que debe cumplir la solución.

Etapa 4. Diseño de la solución

Se organiza la lógica mediante:

  • algoritmos;
  • pseudocódigo;
  • diagramas de flujo.

Etapa 5. Programación

El diseño se convierte en instrucciones utilizando un lenguaje de programación.

Etapa 6. Pruebas

Se comprueba si la solución funciona correctamente.

Etapa 7. Corrección

Se identifican y corrigen errores.

Etapa 8. Documentación

Se registra información importante sobre el funcionamiento de la solución.

Etapa 9. Mantenimiento y mejora

La solución puede modificarse para corregir problemas o incorporar nuevas funciones.

Resumen

Problema → Análisis → Requerimientos → Diseño → Programación → Pruebas → Corrección → Documentación → Mantenimiento

 

15. Características de los programas de calidad

Un programa no debe funcionar solamente una vez.

Debe estar diseñado de manera que pueda comprenderse, mantenerse y utilizarse adecuadamente.

Entre las características fundamentales encontramos:

 

15.1. Legibilidad

La legibilidad indica qué tan fácil resulta comprender un programa.

Un programa legible utiliza:

  • nombres claros;
  • estructura organizada;
  • instrucciones comprensibles;
  • comentarios cuando sean necesarios;
  • formato consistente.

Por ejemplo, una variable llamada:

temperatura

es más fácil de comprender que:

x1.

 

15.2. Modificabilidad

Un programa debe poder modificarse sin necesidad de reconstruirlo completamente.

Por ejemplo, si el sistema originalmente activa un ventilador a 30 °C, debería ser posible cambiar el límite a 35 °C sin tener que desarrollar nuevamente todo el programa.

La organización del código facilita estas modificaciones.

 

15.3. Fiabilidad

La fiabilidad indica la capacidad del programa para funcionar correctamente y producir resultados esperados.

En electrónica es especialmente importante.

Un programa que controla un sistema electrónico debe responder correctamente ante las condiciones previstas.

Por ejemplo:

Si la temperatura aumenta, el sistema debe activar el mecanismo de enfriamiento cuando corresponda.

 

15.4. Eficiencia

La eficiencia se relaciona con el uso adecuado de:

  • tiempo;
  • memoria;
  • capacidad de procesamiento;
  • recursos del sistema.

Una solución eficiente evita realizar operaciones innecesarias.

 

15.5. Portabilidad

La portabilidad es la capacidad de adaptar o utilizar un programa en diferentes entornos compatibles con pocos cambios.

Por ejemplo, un programa diseñado de manera organizada puede resultar más sencillo de adaptar a otra plataforma o sistema.

 

16. Entorno básico de desarrollo

Para crear programas se utiliza un entorno de desarrollo.

Este proporciona herramientas para escribir, ejecutar y comprobar programas.

Dependiendo de la plataforma, puede incluir:

  • editor de código;
  • compilador o intérprete;
  • área de mensajes;
  • herramientas de depuración;
  • explorador de archivos;
  • terminal;
  • simulador.

 

16.1. Editor de código

Es el espacio donde se escriben las instrucciones del programa.

Ejemplo:

Inicio

   Leer temperatura

   Si temperatura > 30 entonces

      Encender ventilador

   Fin Si

Fin

 

16.2. Compilador

Es una herramienta que traduce un programa escrito en determinado lenguaje a una forma que pueda ser ejecutada por el sistema correspondiente.

 

16.3. Intérprete

Ejecuta las instrucciones de un programa utilizando un proceso de interpretación.

La forma exacta de ejecución dependerá del lenguaje utilizado.

 

16.4. Consola o terminal

Permite introducir comandos y observar información generada durante la ejecución.

Puede utilizarse para:

  • mostrar resultados;
  • observar mensajes;
  • detectar errores;
  • realizar pruebas.

 

16.5. Depurador

Permite analizar la ejecución de un programa para localizar errores.

La depuración es una parte importante del desarrollo.

Un programa puede presentar:

  • errores de sintaxis;
  • errores lógicos;
  • errores durante la ejecución.

 

17. Programación aplicada a la electrónica

La programación adquiere especial importancia cuando se trabaja con sistemas electrónicos programables.

Un sistema básico puede estar compuesto por:

Entrada

Sensor o dispositivo de entrada.

↓

Control

Microcontrolador o sistema programable.

↓

Salida

Actuador o dispositivo controlado.

Por ejemplo:

Sensor de temperatura → Microcontrolador → Ventilador

El programa determina qué debe hacer el controlador cuando recibe diferentes valores.

 

18. Ejemplo integrador

Problema

Un equipo electrónico necesita un sistema que active un ventilador cuando alcance una temperatura elevada.

Paso 1: identificar el problema

El equipo puede alcanzar una temperatura que afecte su funcionamiento.

Paso 2: determinar la necesidad

Se necesita controlar automáticamente la temperatura.

Paso 3: determinar la entrada

Sensor de temperatura.

Paso 4: determinar el procesamiento

Comparar la temperatura con un valor límite.

Paso 5: determinar la salida

Activar o desactivar el ventilador.

Paso 6: definir el requerimiento

El sistema debe activar el ventilador cuando la temperatura sea superior al límite establecido.

Paso 7: diseñar la lógica

INICIO

 

Leer temperatura

 

SI temperatura > límite

    Encender ventilador

SI NO

    Apagar ventilador

 

FIN

Paso 8: programación

Posteriormente esta lógica puede convertirse en código utilizando el lenguaje correspondiente.

Paso 9: prueba

Se comprueba el comportamiento del sistema con diferentes temperaturas.

Paso 10: mejora

Se pueden incorporar funciones adicionales, como:

  • mostrar la temperatura;
  • generar una alarma;
  • registrar valores;
  • utilizar diferentes velocidades del ventilador.