Consejos
Este curso sigue una típica carrera en ciencias de la computación, desde los fundamentos hasta el aprendizaje automático. Comienza con fundamentos de programación y matemáticas discretas, y luego avanza: diseño orientado a objetos, estructuras de datos y algoritmos, arquitectura de computadoras, sistemas operativos, bases de datos y redes. Las partes posteriores cubren diseño de algoritmos, teoría de la computación y compiladores, ingeniería de software y IA y aprendizaje automático.
Dos hábitos importan más que cualquier lenguaje. Primero, escribe y ejecuta código cada semana: leer una solución no es lo mismo que producirla. Segundo, razona sobre el costo. Una respuesta universitaria debe decir cómo crece el tiempo de ejecución con la entrada, escrito como Big-O, y por qué el algoritmo es correcto, no solo porque funcionó en una prueba.
Las matemáticas discretas pueden parecer separadas de la programación. No lo son. La demostración por inducción es cómo demuestras que una función recursiva es correcta, y los grafos están detrás de mapas, redes y compiladores.
-
1
Fundamentos de programación
- 1.1 Qué es este curso y cómo usarlo
- 1.1 Valores, tipos y entrada/salida
- 1.2 Selección: elegir entre rutas
- 1.3 Iteración: repetirlo nuevamente
- 1.4 Funciones: nombrar un trabajo una sola vez
- 1.5 Colecciones: listas, diccionarios, tuplas, conjuntos
- 1.6 Archivos y errores
- 1.7 Descomposición, prueba y depuración
Cargando…
-
2
Matemáticas discretas
- 2.1 Lógica y demostraciones
- 2.2 Conjuntos, funciones y relaciones
- 2.3 Inducción y recursión
- 2.4 Conteo y combinatoria
- 2.5 Grafos y árboles
- 2.6 Probabilidad discreta
Cargando…
-
3
Fundamentos de sistemas informáticos
- 3.1 Código binario y codificación de datos
- 3.2 Puertas lógicas y bloques digitales
- 3.3 Visión general del procesador y la memoria
- 3.4 Instrucciones de máquina
- 3.5 La interfaz del sistema operativo
- 3.6 Ruta de compilación y ejecución
Cargando…
-
4
Programación orientada a objetos
- 4.1 Objetos y clases
- 4.2 Encapsulamiento
- 4.3 Composición e herencia
- 4.4 Interfaces y polimorfismo
- 4.5 Excepciones y manejo de errores
- 4.6 Pruebas y calidad del diseño
Cargando…
-
5
Estructuras de datos y algoritmos
- 5.1 Análisis asintótico
- 5.2 Listas, pilas y colas
- 5.3 Hashing
- 5.4 Árboles y montículos
- 5.5 Grafos y traversal
- 5.6 Ordenamiento
- 5.7 Búsqueda
Cargando…
-
6
Arquitectura de computadoras
- 6.1 Arquitectura de conjunto de instrucciones
- 6.2 Trazado de datos y control
- 6.3 Pipeline
- 6.4 Jerarquía de memoria
- 6.5 Entrada/salida
- 6.6 Paralelismo y rendimiento
Cargando…
-
7
Sistemas operativos
- 7.1 Procesos e hilos
- 7.2 Programación
- 7.3 Sincronización
- 7.4 Memoria virtual
- 7.5 Sistemas de archivos
- 7.6 Protección y seguridad
Cargando…
-
8
Bases de datos
- 8.1 Modelado relacional
- 8.2 Álgebra relacional y SQL
- 8.3 Normalización
- 8.4 Índices y planes de consulta
- 8.5 Transacciones y concurrencia
- 8.6 Seguridad y gobernanza de datos
Cargando…
-
9
Redes de computadoras
- 9.1 Capas y arquitectura
- 9.2 Capa de enlace e IP
- 9.3 Enrutamiento
- 9.4 Transporte (TCP/UDP)
- 9.5 Protocolos de aplicación
- 9.6 Seguridad en redes
- 9.7 Fundamentos de sistemas distribuidos
Cargando…
-
10
Diseño y análisis de algoritmos
- 10.1 Recurrencias y herramientas de análisis
- 10.2 Divide y vencerás
- 10.3 Algoritmos codiciosos
- 10.4 Programación dinámica
- 10.5 Optimización en grafos
- 10.6 Reducciones y NP-completitud
Cargando…
-
11
Teoría de la computación y compiladores
- 11.1 Autómatas y lenguajes regulares
- 11.2 Lenguajes libres de contexto y teoría del análisis sintáctico
- 11.3 Computabilidad
- 11.4 Análisis léxico
- 11.5 Análisis sintáctico
- 11.6 Análisis semántico y generación de código
Cargando…
-
12
Ingeniería de software
- 12.1 Requisitos
- 12.2 Arquitectura y diseño
- 12.3 Interacción humano-computadora y accesibilidad
- 12.4 Control de versiones y trabajo en equipo
- 12.5 Pruebas e integración continua
- 12.6 Seguridad y ética profesional
- 12.7 Proyecto en equipo
Cargando…
-
13
Inteligencia Artificial y Aprendizaje Automático
- 13.1 Buscar
- 13.2 Conocimiento y razonamiento
- 13.3 Modelos de probabilidad
- 13.4 Regresión y clasificación
- 13.5 Optimización y aprendizaje
- 13.6 Evaluación y fugas de información
- 13.7 Equidad y limitaciones
Cargando…