- Fecha: 21/11/2024
- Objetivo de la Sesión: Comprender el uso de arrays y vectores para almacenar y manipular datos, y aprender dos algoritmos de ordenación adicionales: Selection Sort e Insertion Sort.
Duración: 20 min (Teoría), 40 min (Práctica), 30 min (Resolución y Discusión)
-
Introducción a Arrays y Vectores:
- Definición y propósito de arrays y vectores en programación.
- Comparación entre arrays (de tamaño fijo) y vectores (de tamaño dinámico, en lenguajes que los admiten).
- Ejemplos prácticos donde se necesita almacenar múltiples valores del mismo tipo (listas de calificaciones, registros de temperaturas, etc.).
-
Operaciones Básicas en Arrays:
- Acceso a elementos, modificación y recorrido de un array.
- Ejemplo de acceso y modificación de elementos en un array de 5 enteros.
-
Ejercicio 1: Declaración y Acceso a Arrays (10 min)
- Crear un array de enteros y asignar valores a sus elementos.
- Imprimir los valores del array para visualizar su contenido.
-
Ejercicio 2: Recorrido y Operaciones en Arrays (15 min)
- Pedir a los estudiantes que recorran el array e impriman cada valor en una nueva línea.
-
Ejercicio adicional: Calcular la suma de todos los elementos de un array y el valor promedio.
-
Ejercicio 3: Uso de Vectores (15 min)
- Crear un vector e insertar valores de manera dinámica.
- Eliminar un elemento específico y ver el comportamiento del vector después de la eliminación.
- Discusión de Soluciones:
- Los estudiantes compartirán sus soluciones y se revisarán distintos enfoques para trabajar con arrays y vectores.
- Optimización de Código:
- Comentar sobre el uso eficiente de la memoria y el tiempo de ejecución al manejar estructuras como arrays y vectores.
- Buenas Prácticas:
- Destacar la importancia de nombrar correctamente los arrays y de documentar el código para mejorar su claridad.
Duración: 20 min (Teoría), 40 min (Práctica), 30 min (Resolución y Discusión)
-
Repaso de la Importancia de la Ordenación:
- Recordatorio sobre por qué es esencial ordenar datos en programación.
-
Selection Sort:
- Explicación del funcionamiento de Selection Sort:
- Selección del elemento mínimo y su colocación en la posición correcta.
- Visualización paso a paso de cómo se intercambian elementos en una lista para ordenarla.
-
Insertion Sort:
- Explicación de Insertion Sort:
- Colocación de cada elemento en su posición correcta en la parte ordenada de la lista.
- Comparación con Selection Sort en cuanto a su eficiencia y sus aplicaciones prácticas.
- Explicación de Insertion Sort:
- Ejercicio de Selection Sort (20 min)
- Implementar Selection Sort para ordenar un array de números enteros.
- Pedir a los estudiantes que impriman el array después de cada iteración para observar el proceso de ordenación.
- Ejercicio de Insertion Sort (20 min)
- Implementar Insertion Sort en un array de números.
- Comparar el número de pasos requeridos en comparación con Bubble Sort (del que aprendieron en la sesión anterior).
-
Discusión de Soluciones y Eficiencia de Algoritmos:
- Los estudiantes compartirán sus implementaciones de Selection Sort e Insertion Sort.
- Comparación entre los tres algoritmos de ordenación vistos (Bubble Sort, Selection Sort e Insertion Sort) en términos de tiempo y número de operaciones.
-
Análisis de Eficiencia:
- Explicar la complejidad de cada algoritmo (O(n²) para los tres) y discutir cuándo sería adecuado utilizar cada uno.
- Exploración Adicional de Algoritmos de Ordenación:
- Investigar sobre otros algoritmos de ordenación más eficientes (ej., Quick Sort, Merge Sort) para preparar a los estudiantes para algoritmos avanzados.
- Tareas Opcionales:
- Resolver problemas de ordenación en plataformas como LeetCode o HackerRank.
- Experimentar con la ordenación de listas de cadenas y explorar si los algoritmos aprendidos pueden adaptarse para ordenar texto.