Introducción a la Ciencia de la Computación
Conceptos Básicos
- Error en el código: No hacer nada y ejecutar nuevamente. Si persiste, se necesita un conocimiento más profundo.
- Software Engineering: Se puede aprender a programar y conseguir un trabajo bien pagado sin saber cómo funciona todo.
Fundamentos del Computador
- Turing Machine: Puede computar cualquier cosa en teoría.
- CPU: Unidad Central de Procesamiento.
- Contiene miles de millones de transistores (interruptores microscópicos).
- Bit: El valor de uno de estos interruptores.
- Byte: Conjunto de 8 bits.
- Codificación de caracteres: ASCII, UTF-8.
- Sistema Binario: Base de conteo usada por los computadores (0 y 1).
- Representación en Hexadecimal (base 16).
- RAM: Memoria de Acceso Aleatorio, función de almacenamiento temporal de datos.
- Dispositivos de Entrada y Salida: Teclado, mouse y monitor.
- Sistemas Operativos: Linux, Mac, Windows.
Shell y Programación
- Shell: Programa que expone el sistema operativo al usuario.
- Secure Shell (SSH): Conecta computadoras remotamente.
- Lenguajes de Programación: Herramientas que abstraen la complejidad del hardware.
- Python: Interpretado.
- C++: Compilado.
- Tipos de Datos: Enteros (int), punto flotante (float), caracteres (char), cadenas de texto (string).
- Variables: Almacenan datos bajo un nombre específico.
- Gestión de Memoria: Garbage Collector (recolección de basura).
Estructuras de Datos
- Array/List: Lista ordenada de elementos con un índice.
- Linked List: Lista donde cada elemento apunta al siguiente.
- Stack: Último en entrar, primero en salir (LIFO).
- Queue: Primero en entrar, primero en salir (FIFO).
- Hash/Map/Dictionary: Colección de pares clave-valor.
- Trees: Nodos organizados en una jerarquía.
- Graphs: Nodos conectados de forma arbitraria.
Algoritmos y Funciones
- Algoritmos: Código que resuelve un problema.
- Funciones: Bloques de código con nombre, input y output.
- Comparaciones usando operadores.
- Booleanos: true/false.
- Condicionales: if, else.
- Loops: while, for.
- Recursión: Función que se llama a sí misma.
- Big-O Notation: Mide complejidad temporal/espacial de un algoritmo.
- Tipos de Algoritmos: Fuerza bruta, divide y vencerás, programación dinámica, greedy, backtracking.
Paradigmas de Programación
- Declarativo: Describe qué hace el programa sin preocuparse por el control de flujo.
- Imperativo: Usa statements explícitos sobre cómo producir un resultado.
- Programación Orientada a Objetos (OOP): Uso de clases y objetos.
- Clases: Plantillas para datos y funciones.
- Instanciación: Creación de objetos.
- Heap Memory: Memoria de larga duración.
- Herencia: Compartir comportamientos entre clases.
Concurrencia y Computación en la Nube
- Hilos: Ejecución paralela en CPU.
- Modelos de Concurrencia: Event loop, co-rutinas.
- Máquina Virtual: Software que simula hardware.
- IP y DNS: Direcciones y servicios de nombres de dominio.
- TCP Handshake y SSL: Seguridad y comunicación en la red.
- HTTP y APIs: Protocolo de transferencia de hipertexto y interfaces de programación de aplicaciones.
- Carga Útil: Implementación práctica y uso de impresoras.
Conclusión
- Impresoras: Comprender su funcionamiento para resolver problemas comunes.
¡Gracias por ver y nos vemos en el próximo video!