Skip to content

Latest commit

 

History

History

s01-20241114

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Sesión 1: Fundamentos de la programación y algoritmos básicos de ordenación


  • 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.

1. Parte: Fundamentos de programación

Duración: 20 min (Teoría), 40 min (Práctica), 30 min (Resolución y Discusión)

1.1. Teoría (20 min)

  1. 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).
  2. 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.
  3. 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.

1.2. Práctica (40 min)

  • 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).

1.3. Resolución y discusión (30 min)

  • 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 sugeridos:

Ejercicios variables:

Ejercicios condicionales:

Ejercicios bucles:


2. Parte: Algorítmica - Introducción a algoritmos de ordenación

Duración: 20 min (Teoría), 40 min (Práctica), 30 min (Resolución y Discusión)

2.1. Teoría (20 min)

  1. Concepto de Ordenación:

    • Introducción a la importancia de ordenar datos en programación.
  2. Ejemplos de situaciones donde el orden es fundamental (ej., listas de estudiantes ordenadas por nota, organización de archivos en un sistema operativo).

  3. 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.

2.2. Práctica (40 min)

  • 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.

2.3. Resolución y discusión (30 min)

  • 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.

3. Parte: Ampliación de conceptos y tareas para la próxima sesión

  • 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.

4. Conferencias

5. Recursos