Introducción a la Programación
Calendario
Cada semana: una sesión de teoría (2 h) y un laboratorio (2 h). Los temas marcados con ✂️ pueden pasar a lectura autónoma si se pierden clases.
Repaso y entornosMemoria y abstracciónRecursiónUn intérprete
- 01
Repaso: lo esencial de C
Repaso y entornos- Teoría
- Presentación · Repaso: tipos, control, funciones y assert
- Laboratorio
- Entorno y programas de repaso
- 02
Repaso: datos y lectura de código
Repaso y entornos- Teoría
- Repaso: arreglos, cadenas, struct y archivos · Cómo leer código
- Laboratorio
- Leer un programa ajeno y extenderlo
- 03
El modelo de entornos
Repaso y entornos- Teoría
- El modelo de entornos: marcos, alcance y tiempo de vida
- Laboratorio
- Imágenes: filtros y marcos en gdb
- 04
Punteros
Memoria y abstracción- Teoría
- Punteros: paso por puntero, arreglos y punteros, const
- Laboratorio
- Transformar imágenes con punteros
Práctica 1ApuntesDiapositivasCódigo - 05
Memoria dinámica
Memoria y abstracción- Teoría
- Memoria dinámica: malloc, free, ownership, ASan y valgrind
- Laboratorio
- Imágenes de cualquier tamaño y cacería de fugas
- 06
Programas en varios archivos
Memoria y abstracción- Teoría
- Varios archivos: encabezados, make, tipos opacos y pruebas por la interfaz
- Laboratorio
- Dividir un programa en módulos con sus pruebas
- 07
- Teoría
- Tipos: typedef, enum, uniones etiquetadas · Conversiones · Comportamiento indefinido
- Laboratorio
- Un valor con varios tipos
Práctica 2ApuntesDiapositivasCódigo - 08
- 09
Recursión
Recursión- Teoría
- Recursión: caso base, razonar por inducción, recursión e iteración
- Laboratorio
- Recursión en arreglos y cadenas
- 10
- Teoría
- Recursión en árbol: flood fill, cuadrículas · Memoización
- Laboratorio
- Buscaminas
- 11
Backtracking
Recursión- Teoría
- Backtracking: permutaciones, subconjuntos, N reinas y poda
- Laboratorio
- Resolver sudokus
Práctica 3ApuntesDiapositivasCódigo - 12
Funciones como valores
Recursión- Teoría
- Funciones como valores: punteros a función, callbacks, qsort y contexto void
- Laboratorio
- Un solucionador genérico
- 13
- Teoría
- Datos recursivos: árboles de expresión, evaluar · Simplificar
- Laboratorio
- Álgebra de expresiones
- 14
Análisis léxico y sintáctico
Un intérprete- Teoría
- Análisis léxico y análisis sintáctico descendente recursivo
- Laboratorio
- Parser del lenguaje Mini
Práctica 4ApuntesDiapositivasCódigo - 15
El intérprete
Un intérprete- Teoría
- El intérprete: variables, funciones y marcos · Repaso
- Laboratorio
- Terminar y probar el intérprete
- 16