- Fecha: 14/11/2024
- Objetivo de la Sesión: Comprender y practicar los fundamentos de la programación estructurada y aplicarlos a problemas algorítmicos básicos, especialmente el ordenamiento de datos.
Duración: 20 min (Teoría), 40 min (Práctica), 30 min (Resolución y Discusión)
-
Variables y Tipos de Datos:
- Definición de variables y su uso en un programa.
- Tipos de datos básicos: int, float, char, string.
- Ejemplos prácticos de variables para representar información de la vida cotidiana (edad, nombre, temperatura).
-
Condicionales (if, else if, else):
- Introducción a las estructuras de control condicionales.
- Ejemplo práctico: Programa que verifica si un número es positivo, negativo o cero.
-
Bucles (for, while, do-while):
- Concepto de bucle y su utilidad en la programación.
- Ejemplos de bucles sencillos:
- Imprimir una secuencia de números.
- Calcular la suma de los primeros números naturales.
-
Ejercicio 1: Variables y tipos de datos (10 min)
- Los estudiantes crearán un programa que declare e inicialice variables de diferentes tipos (int, float, string) y mostrará sus valores en pantalla.
-
Ejercicio 2: Condicionales (10 min)
- Crear un programa que determine si un número ingresado por el usuario es par o impar.
- Extensión: Programa que indica si el número es positivo, negativo o cero.
-
Ejercicio 3: Bucles (20 min)
- Bucle for: Implementar un programa que imprima los números del 1 al 10.
- Bucle while: Calcular y mostrar la suma de los primeros 5 números pares.
- Bucle do-while: Solicitar al usuario que ingrese un número hasta que introduzca el valor correcto (ej., un número mayor a 10).
-
Discusión de soluciones:
- Los estudiantes compartirán sus soluciones. Se analizarán los distintos enfoques y sus ventajas.
-
Optimización y buenas prácticas;:
- Analizar cómo mejorar la legibilidad del código, evitando redundancias y usando comentarios.
- Enfatizar la importancia de un código limpio y estructurado.
Ejercicios variables:
- Artrópodos: https://aceptaelreto.com/problem/statement.php?id=293
- Cuadrados con cerillas: https://aceptaelreto.com/problem/statement.php?id=340
- La fiesta aburrida: https://aceptaelreto.com/problem/statement.php?id=117
- Los problemas de ser rico: https://aceptaelreto.com/problem/statement.php?id=191
- Goteras: https://aceptaelreto.com/problem/statement.php?id=216
- Semanas: https://aceptaelreto.com/problem/statement.php?id=274
- Pesando carretas: https://aceptaelreto.com/problem/statement.php?id=332
- Encuesta comprometedora: https://aceptaelreto.com/problem/statement.php?id=583
Ejercicios condicionales:
- ¿Qué lado de la calle?: https://aceptaelreto.com/problem/statement.php?id=217
- Fin de mes: https://aceptaelreto.com/problem/statement.php?id=313
- Gregorio XIII: https://aceptaelreto.com/problem/statement.php?id=355
- Yo soy tu...: https://aceptaelreto.com/problem/statement.php?id=427
- Triángulos: https://aceptaelreto.com/problem/statement.php?id=180
- División euclídea: https://aceptaelreto.com/problem/statement.php?id=304
- Último dígito del factorial: https://aceptaelreto.com/problem/statement.php?id=114
- Me quiere, no me quiere: https://aceptaelreto.com/problem/statement.php?id=241
- ¿Es múltiplo de 3?: https://aceptaelreto.com/problem/statement.php?id=397
Ejercicios bucles:
- Contando en la arena: https://aceptaelreto.com/problem/statement.php?id=369&cat=6
- Los saltos de Mario: https://aceptaelreto.com/problem/statement.php?id=158&cat=6
- Timo en el cocedero de mariscos: https://aceptaelreto.com/problem/statement.php?id=359&cat=6
- Número hyperpar: https://aceptaelreto.com/problem/statement.php?id=165&cat=6
- Triángulos con piedras: https://aceptaelreto.com/problem/statement.php?id=170&cat=6
- Escudos del ejército romano: https://aceptaelreto.com/problem/statement.php?id=119&cat=6
- Números de Lychrel: https://aceptaelreto.com/problem/statement.php?id=205&cat=6
- Dividir factoriales: https://aceptaelreto.com/problem/statement.php?id=190&cat=6
- Entrando al cine: https://aceptaelreto.com/problem/statement.php?id=221&cat=6
Duración: 20 min (Teoría), 40 min (Práctica), 30 min (Resolución y Discusión)
-
Concepto de Ordenación:
- Introducción a la importancia de ordenar datos en programación.
-
Ejemplos de situaciones donde el orden es fundamental (ej., listas de estudiantes ordenadas por nota, organización de archivos en un sistema operativo).
-
Algoritmo Bubble Sort:
- Explicación paso a paso de cómo funciona Bubble Sort.
- Complejidad temporal del algoritmo y cuándo es adecuado usarlo.
- Ejemplo visual: Se utiliza una lista de 5 números para demostrar el intercambio de elementos hasta que la lista esté ordenada.
-
Ejercicio de Bubble Sort (20 min)
- Algoritmo burbuja
- Implementar Bubble Sort para ordenar un array de números enteros.
- Hacer un seguimiento de la cantidad de intercambios realizados en cada iteración para entender mejor el proceso.
-
Extensión (20 min):
- Comparar el tiempo de ejecución de Bubble Sort en listas de diferentes tamaños.
- Pedir a los estudiantes que introduzcan listas de números desordenados y vean los resultados en tiempo real.
-
Discusión de soluciones y desempeño:
- Los estudiantes compartirán sus implementaciones de Bubble Sort. Se discutirá por qué ciertos enfoques pueden ser más legibles o eficientes.
-
Comparación con algoritmos de ordenación avanzados:
- Introducir la noción de algoritmos más avanzados como Quick Sort y Merge Sort sin entrar en detalles, para que vean el crecimiento en la eficiencia de los algoritmos de ordenación.
-
Conclusión de la importancia de la ordenación:
- Reflexionar sobre cómo los métodos de ordenación afectan el rendimiento del sistema en datos grandes.
- Exploración de algoritmos de ordenación
- Investigar sobre Quick Sort y Merge Sort para tener una idea general de cómo funcionan y su eficiencia.
- Tareas opcionales
- Implementar un algoritmo de ordenación diferente y comparar sus resultados con Bubble Sort.
- Practicar con problemas de ordenación en plataformas como LeetCode o HackerRank.