Curso de C (puro) — índice y guía
Curso de C puro (no C++), de lo básico a archivos, con mucho ejercicio. Pensado para impartirse apoyado en la terminal de Linux y como on-ramp hacia Python y los problemas de NeetCode.
Cómo está organizado
modelo/— la teoría (.md) de cada módulo: lo que usas TÚ para enseñar.practica/<modulo>/— una nota web por ejercicio (enunciado, diagrama de flujo, explicación y el código para copiar). El alumno la abre en el navegador y resuelve sin descargar nada.- Las notas de práctica se generan desde el código del curso (
curso-c/material/, la fuente de verdad) contools/gen_course_exercises.py; no se editan a mano salvo la explicación.
Ruta de los módulos
| # | Módulo | Doc |
|---|---|---|
| 00 | Qué es C, el compilador, historia y contexto | 00-que-es-c |
| 01 | Variables, tipos y E/S | 01-variables |
| 02 | Condicionales | 02-condicionales |
| 03 | Bucles | 03-bucles |
| 04 | Funciones | 04-funciones |
| 05 | Arrays y cadenas | 05-arrays-cadenas |
| 06 | Matrices (2D) | 06-matrices |
| 07 | Punteros | 07-punteros |
| 08 | Structs | 08-structs |
| 09 | Lectura/escritura de archivos | 09-archivos |
Práctica: Ejercicios resueltos — una nota por ejercicio, para resolver directamente en el navegador (empezando por el módulo 01).
Extra (cultura): Historia de C — de dónde viene el lenguaje, su evolución a lo largo de los años y las cosas increíbles que se han construido con él.
Cómo impartir cada módulo
- Explica la teoría (schema-first: categoría → patrón → sintaxis) con el
.mddel módulo. - Worked-example en vivo: compila con
gcc -std=c11 -Wall(oentrpara recompilar al guardar). - Los alumnos abren
ejNN_practica.cy suben de (facil) a (dificil). - Autocomprueban con la salida esperada del
.md; la solución esejNN_modelo.c.
Setup (Ubuntu desde cero)
bash setup.sh # instala gcc/make/gdb + entr (auto-recompila), y verificaLa ruta completa (más allá de C)
Linux (terminal, gcc) → C (explícito) → Python (mismos conceptos, cómodo) → Python + NeetCode
- Anclado en los primeros apuntes del MOC_Linux (compilar en terminal).
- Después: puente C → Python (misma lógica, otra sintaxis) → MOC_NeetCode_150.