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) con tools/gen_course_exercises.py; no se editan a mano salvo la explicación.

Ruta de los módulos

#MóduloDoc
00Qué es C, el compilador, historia y contexto00-que-es-c
01Variables, tipos y E/S01-variables
02Condicionales02-condicionales
03Bucles03-bucles
04Funciones04-funciones
05Arrays y cadenas05-arrays-cadenas
06Matrices (2D)06-matrices
07Punteros07-punteros
08Structs08-structs
09Lectura/escritura de archivos09-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

  1. Explica la teoría (schema-first: categoría → patrón → sintaxis) con el .md del módulo.
  2. Worked-example en vivo: compila con gcc -std=c11 -Wall (o entr para recompilar al guardar).
  3. Los alumnos abren ejNN_practica.c y suben de (facil) a (dificil).
  4. Autocomprueban con la salida esperada del .md; la solución es ejNN_modelo.c.

Setup (Ubuntu desde cero)

bash setup.sh   # instala gcc/make/gdb + entr (auto-recompila), y verifica

La 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.

Conexiones