Clase 1
03/05/2025
Capas de la computadora
1. Hardware
2. Firmware
3. Ensamblador
4. Kernel
5. Aplicaciones
Sistemas operativos
1. Windows
2. Linux
Proceso de realizar un programa:
1. Cargar el código
2. Ejecución de las instrucciones:
3. Almacenamiento de resultados
4. Control del flujo
5. Comunicación con el sistema
6. Finalización del programa
Lenguajes de programación
1. SQL
2. Swift
3. C++
4. Python
5. JavaScript
6. CSS
Resolución de problemas
1. Análisis y comprensión de requerimientos
2. Diseño y escritura de código
3. Pruebas depuración y mantenimiento
4. Colaboración en equipos y uso de herramientas de
desarrollo(frameworks, ide’s y editores)
Algoritmos
Secuencia finita y ordenada de instrucciones o pasos para realizar una
tarea especifica o resolver un problema
Los algoritmos se utilizan en:
Informática
Matemáticas
Vida cotidiana
Motores de búsqueda
Redes sociales
¿Cómo podemos medir la eficiencia?
Eficiencia = Que tan rápido y cuánta memoria el algoritmo resuelve el
problema
Ejemplo: Supongamos una lista ordenada de 1,000,000 de números
Lista = [1,2,3, 4,…,1,000,000]
y si queremos buscar el número 999,999 usando búsqueda lineal (uno
por uno) cada paso nos llevaría, por ejemplo, 1 microsegundo (MS),
entonces el tiempo seria 1,000,000 pasos * MS = 1 segundo, pero si
queremos buscar el número 999,999 usando el algoritmo búsqueda
binaria
Log2(1,000,000) =19.93
cada paso también toma un microsegundo (MS), entonces el tiempo
sería 19.93 paso * MS = 20 microsegundos aprox. Sacamos la diferencia
de tiempo
1,000,000/20 = 50000
buscar una lista ordenada con búsqueda binaria es 50,000 veces más
rápido
Algoritmos más utilizados en programación:
1. Algoritmos con ordenación como bubble sort: son útiles para
problemas simples, pero no son los más eficientes para grandes
cantidades de datos
2. Búsqueda binaria: es una técnica rápida para encontrar elementos
en listas ordenadas
3. Dijkstra
4. Recursividad
5. El algoritmo de Elucides
Proceso para la resolución de problemas en programación
1. Análisis del problema
1.1. Comprensión del enunciado
1.2. Restricciones y condiciones especiales
2. recolección y organización de datos
definir claramente los tipos de datos, sus formatos, rangos y relaciones
¿Qué información necesita el programa? ¿Qué resultados debe producir?
Establecer formulas o relaciones lógicas si las hay
3. diseño de la solución
diagrama de flujo: representación gráfica de la lógica del algoritmo.
Ayuda a visualizar el flujo del programa y tomar decisiones
Pseudocodigo
4. codificación
5. pruebas y depuración
6. documentación y mantenimiento
1. estructuras condiciones (if, if-else, if-elif-else)
2. estructuras repetitivas (bucles for y while)
3. anidamiento y combinación de estructuras