Curso de Lógica de Programación – Vocabulario esencial

Día 1 – ¿Qué es un algoritmo?

  • Definición general
    • Un algoritmo es un conjunto finito y ordenado de pasos destinados a resolver un problema específico o alcanzar un objetivo.
    • Características clásicas: finitud, orden, precisión, entrada, salida y efectividad.
  • Ejemplos cotidianos mencionados
    • Cepillado de dientes
    • Entrada: cepillo, pasta, agua.
    • Pasos: abrir llave, mojar cepillo, colocar pasta, …, enjuagar.
    • Salida: dientes limpios.
    • Preparar un sándwich
    • Entrada: pan, jamón, queso…
    • Pasos: abrir pan, añadir ingredientes, cerrar, cortar.
    • Salida: sándwich listo para comer.
  • Importancia práctica
    • Facilita la automatización: cualquier computadora ejecuta exactamente los pasos.
    • Fomenta la descomposición de problemas: dividir un reto complejo en tareas simples y secuenciales.

Día 2 – Diagramas de flujo

  • Propósito
    • Representar visualmente un algoritmo para entender y comunicar su lógica.
    • Útil para detectar errores antes de programar.
  • Formas básicas y su significado
    • Óvalo (inicio/fin).
    • Rectángulo (acción o proceso).
    • Rombo (decisión, genera una bifurcación sí / no).
    • Paralelogramo (entrada o salida de datos).
  • Ejemplos trabajados
    • Diagrama completo del sándwich: muestra la secuencia de untar, agregar ingredientes, etc.
    • Explicación paso a paso sobre cómo repetir este ejercicio para el cepillado de dientes.
  • Conexión con la práctica
    • Constituyen la base para escribir código en cualquier lenguaje: cada símbolo se convierte después en instrucciones concretas.

Día 3 – Variables

  • Concepto clave
    • Una variable es una “caja” con nombre donde se almacena información que puede cambiar durante la ejecución del programa.
  • Tipos de datos comunes
    • int → números enteros (\dots,-2,-1,0,1,2,\dots).
    • float → números decimales (p. ej. 1.75).
    • string → texto (p. ej. "Hola").
    • bool → valores lógicos: true / false.
  • Ejercicio propuesto
    • Declarar las variables de una persona:
    • nombre: string
    • edad: int
    • estatura: float
    • es_estudiante: bool
  • Importancia
    • Permiten guardar estado y personalizar la ejecución de los algoritmos para datos concretos.

Día 4 – Operadores

  • Operadores aritméticos
    • Suma (+), resta (-), multiplicación (*), división (/), módulo (%).
    • El operador módulo devuelve el residuo: 7 \% 3 = 1.
  • Operadores relacionales
    • Igualdad (=), desigualdad (!=), menor (
  • Operadores lógicos
    • Y (AND), O (OR), NO (NOT).
    • Se utilizan para combinar condiciones o negarlas.
  • Ejercicios destacados
    • Determinar si un número es par: comprobar n \% 2 = 0.
    • Verificar múltiplos (p. ej. múltiplo de 3: n \% 3 = 0).
  • Conexión y utilidad
    • Sirven para formular expresiones que guían decisiones y cálculos dentro de un programa.

Día 5 – Condicionales (if)

  • Estructura básica
    • "Si (condición) entonces "
    • También se puede añadir "sino" (else) para la ruta alternativa.
  • Ejercicios prácticos
    • Detectar par / impar.
    • Comprobar múltiplo de 3.
    • Evaluar si un número está entre 10 y 20 (inclusive):
    • \text{condición} = (10 \leq n) \;Y\; (n \leq 20).
  • Buenas prácticas resaltadas
    • Usar Y para composiciones lógicas.
    • Emplear NO para negar una expresión booleana.
  • Significado conceptual
    • Permiten que el algoritmo tome decisiones dinámicas según los datos.

Errores y correcciones comentadas

  • Recordatorio de usar correctamente el operador módulo en la sintaxis de múltiples lenguajes.
  • Aclaración sobre la diferencia entre asignar (=) y comparar (== en muchos lenguajes, aunque aquí se usó “=” de forma conceptual).
  • Corregido el uso de operadores relacionales en rangos.
  • Demostración del operador Y para la conjunción de dos condiciones.
  • Ejemplo de NO para invertir un valor booleano (NO es_estudiante).

Próximos pasos adelantados

  • Introducción próxima a estructuras de repetición (bucles):
    • while, for, repetir hasta que.
    • Utilidad para automatizar tareas repetitivas sin reescribir código.
  • Recomendación previa
    • Repasar diagramas de flujo y actualizar los existentes para que incluyan ramas condicionales y futuros bucles, fortaleciendo el pensamiento algorítmico.